1. 程式人生 > >基於python的中文分詞庫:jieba

基於python的中文分詞庫:jieba

簡介

分詞共分三種模式:

  1. 精確模式: 試圖將句子最精確的切開
  2. 全模式:掃描出句子中所有可能的詞語,速度快
  3. 搜尋引擎模式:在精確模式的基礎上,對長詞再次切分適合用於搜尋引擎分詞

例子:

import jieba
string = '結巴這個分詞工具真的特別的好玩兒'
# 精確模式:cut_all=False
words_list = jieba.lcut(string, cut_all=False)
print(“精確模式:”,words_list)
# 全模式:cut_all=True
words_list = jieba.lcut(string, cut_all=True)
print(“全模式:”,words_list)
精確模式: ['結巴', '這個', '分詞', '工具', '真的', '特別', '的', '好玩兒']
全模式:['結巴', '這個', '分詞', '工具', '真的', '特別', '別的', '好玩', '好玩兒', '玩兒']

新增自定義詞典

可以指定自己自定義的詞典,以便包含 jieba 詞庫裡沒有的詞。 用法: jieba.load_userdict(my_dict.txt) 詞典格式:一個詞佔一行,每行分三部分:詞語、詞頻(可省略)、詞性(可省略),用空格隔開,順序不可顛倒。 例如:  創新辦 3 i  雲端計算 5

import jieba
string = '李小福是創新辦主任也是雲端計算方面的專家'
print(jieba.lcut(string))
輸出結果: ['李小福', '是', '創新', '辦', '主任', '也', '是', '雲', '計算', '方面', '的', '專家']
jieba.load_userdict('my_dict.txt')
print(jieba.lcut(string))
輸出結果: ['李小福', '是', '創新辦', '主任', '也', '是', '雲端計算', '方面', '的', '專家']

或者用 add_word(word, freq=None, tag=None) 可在程式中動態修改詞典

jieba.add_word('創新辦', freq=3)
jieba.add_word('雲端計算', freq=3)
print(jieba.lcut(string))
輸出結果: ['李小福', '是', '創新辦', '主任', '也', '是', '雲端計算', '方面', '的', '專家']

或者用 suggest_freq(segment, tune=True)可調節單個詞語的詞頻,使其能(或不能)被分出來

jieba.suggest_freq('創新辦', tune=True)
jieba.suggest_freq('雲端計算', tune=True)
print(jieba.lcut(string))
輸出結果: ['李小福', '是', '創新辦', '主任', '也', '是', '雲端計算', '方面', '的', '專家']

具體深入學習請參考官方github