天天看點

python lcut精确分詞_python 分詞

中文分詞是中文文本處理的一個基礎性工作,然而長久以來,在Python程式設計領域,一直缺少高準确率、高效率的分詞元件。結巴分詞正是為了滿足這一需求。

特性:

支援兩種分詞模式:

預設模式,試圖将句子最精确地切開,适合文本分析;

全模式,把句子中所有的可以成詞的詞語都掃描出來,适合搜尋引擎。

用法:

全自動安裝:easy_install jieba

半自動安裝:先下載下傳http://pypi.python.org/pypi/jieba/ ,解壓後運作python setup.py install

手動安裝:将jieba目錄放置于目前目錄或者site-packages目錄,通過import jieba 來引用 (第一次import時需要建構Trie樹,需要幾秒時間)

算法:

基于Trie樹結構實作高效的詞圖掃描,生成句子中漢字構成的有向無環圖(DAG)

采用了記憶化搜尋實作最大機率路徑的計算, 找出基于詞頻的最大切分組合

對于未登入詞,采用了基于漢字位置機率的模型,使用了Viterbi算法

接口:

元件隻提供jieba.cut 方法用于分詞

cut方法接受兩個輸入參數:

1) 第一個參數為需要分詞的字元串

2) cut_all參數用來控制分詞模式

待分詞的字元串可以是gbk字元串、utf-8字元串或者unicode

jieba.cut傳回的結構是一個可疊代的generator,可以使用for循環來獲得分詞後得到的每一個詞語(unicode),也可以用list(jieba.cut(...))轉化為list

>>> import jieba

>>> seg_list = jieba.cut("我來到北京清華大學",cut_all=True)

>>> print "Full Mode:", "/ ".join(seg_list) #全模式

Building Trie..., from /usr/local/lib/python2.7/dist-packages/jieba-0.32-py2.7.egg/jieba/dict.txt

dumping model to file cache /tmp/jieba.cache

loading model cost 2.90168094635 seconds.

Trie has been built succesfully.

Full Mode: 我/ 來到/ 北京/ 清華/ 清華大學/ 華大/ 大學

>>> seg_list = jieba.cut("我來到北京清華大學",cut_all=False)

>>> print "Default Mode:", "/ ".join(seg_list) #預設模式

Default Mode: 我/ 來到/ 北京/ 清華大學

>>> seg_list = jieba.cut("他來到了網易杭研大廈")

>>> print ", ".join(seg_list)

他, 來到, 了, 網易, 杭研, 大廈