中文分詞是中文文本處理的一個基礎性工作,結巴分詞利用進行中文分詞。其基本實現原理有三點:
- 基於Trie樹結構實現高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構成的有向無環圖(DAG)
- 采用了動態規划查找最大概率路徑, 找出基於詞頻的最大切分組合
- 對於未登錄詞,采用了基於漢字成詞能力的HMM模型,使用了Viterbi算法
安裝(Linux環境)
下載工具包,解壓后進入目錄下,運行:python setup.py install
模式
- 默認模式,試圖將句子最精確地切開,適合文本分析
- 全模式,把句子中所有的可以成詞的詞語都掃描出來,適合搜索引擎
接口
- 組件只提供jieba.cut 方法用於分詞
- cut方法接受兩個輸入參數:
- 第一個參數為需要分詞的字符串
- cut_all參數用來控制分詞模式
- 待分詞的字符串可以是gbk字符串、utf-8字符串或者unicode
- jieba.cut返回的結構是一個可迭代的generator,可以使用for循環來獲得分詞后得到的每一個詞語(unicode),也可以用list(jieba.cut(...))轉化為list
實例
#! -*- coding:utf-8 -*- import jieba seg_list = jieba.cut("我來到北京清華大學", cut_all = True) print "Full Mode:", ' '.join(seg_list) seg_list = jieba.cut("我來到北京清華大學") print "Default Mode:", ' '.join(seg_list)
結果
實現原理
1. Trie樹:參考http://www.cnblogs.com/kaituorensheng/p/3602155.html