结巴分词是Python语言中效果最好的分词工具,其功能包括:分词、词性标注、关键词抽取、支持用户词表等。python
官网地址:https://github.com/fxsjy/jiebagit
一、安装。github
按照官网上的说法,有三种安装方式,函数
- 第一种是全自动安装:
easy_install jieba
或者 pip install jieba
,推荐用第一种。
- 第二种方法是半自动安装:先下载http://pypi.python.org/pypi/jieba/ ,解压后在cmd命令行中运行 python setup.py install。
- 第三种方法是手动安装:将jieba目录放置于当前目录或者site-packages目录。把下载到的jieba-0.30.zip解压后,里面有个jibba的文件夹,把它复制到与你的Python程序相同的位置,这样在程序中就能够执行“import jieba”了。
二、关于分词的实现工具
官网提供了分词的基本用法示例 :搜索引擎
- #encoding=utf-8
- import jieba
-
- seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
- print "Full Mode:", "/ ".join(seg_list) # 全模式
-
- seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
- print "Default Mode:", "/ ".join(seg_list) # 精确模式
-
- seg_list = jieba.cut("他来到了网易杭研大厦") # 默认是精确模式
- print ", ".join(seg_list)
-
- seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式
- print ", ".join(seg_list)
程序能够执行,可是在MyEclipse中显示中文为Unicode编码,这不科学。编码
可是继续执行另外一个词性标注的示例却很是正常:.net
- import jieba.posseg as pseg
- words = pseg.cut("我爱北京天安门")
- for w in words:
- print w.word, w.flag
因此我就想去分析一下它的源代码,结果发如今jiba/_init_.py文件(这是实现分词的文件)的第209行(cut函数)中有关于检查编码的语句块:命令行
- if not isinstance(sentence, unicode):
- try:
- sentence = sentence.decode('utf-8')
- except UnicodeDecodeError:
- sentence = sentence.decode('gbk','ignore')
而在jieba/posseg/_init_.py文件(这是实现词性标注的文件)第158行的cut函数中却没有发现此类代码。code