Python自然語言處理(二):使用jieba進行中文斷詞

Yanwei Liu
5 min readJan 6, 2020

原本打算用英文寫的,可是jieba是在斷中文,還用英文寫就有點怪XD

Jieba提供了三種分詞模式:

  • 精確模式:試圖將句子最精確地切開,適合文本分析。
  • 全模式:把句子中所有可以成詞的詞語都掃描出來,速度非常快,但是不能解決歧義。
  • 搜尋引擎模式:在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞。

安裝

pip install jieba

使用範例

設定詞庫

#下載繁體中文詞庫後,使用set_dictionary()方法匯入jieba.set_dictionary('dict.txt.big')  #不一定要設定詞庫,內建的效果也不錯

斷詞模式

#默認使用精確模式(一般直接使用精確模式即可)
import jieba
text = '我來到北京清華大學'
print('預設:', '|'.join(jieba.cut(text, cut_all=False, HMM=True)))
print('全關閉:', '|'.join(jieba.cut(text, cut_all=False, HMM=False)))
print('全關閉:', '|'.join(jieba.cut(text, cut_all=True, HMM=True)))
#輸出
預設: 我|來到|北京|清華|大學
全關閉: 我|來到|北京|清華|大學
全關閉: 我來|來到|北京|清華|華大|大學
搜尋引擎: 我|來到|北京|清華|大學

使用者字典:

有時候,一些專業詞彙jieba無法進行處理,我們可以自建詞表,讓jieba學著處理

#建立userDict.txt
#並在檔案中加入詞彙和詞頻,如下所示
高雄發大財 3000#回到程式:
import jieba
jieba.load_userdict('userDict.txt')
print(jieba.lcut(text))

--

--