結巴分詞是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