jieba之sedict(自定義字典)
阿新 • • 發佈:2018-12-26
程式碼:
import jieba string = "李小福是創新辦主任也是雲端計算方面的專家" # 精確模式分詞 cut_result = jieba.cut(string) print("===" * 20) print("/".join(cut_result)) # 創新辦沒有識別出來 # 用自定義詞典來定義創新辦 # 創新辦 3 i jieba.load_userdict("userdict.txt") cut_result = jieba.cut(string) print("===" * 20) # 已經識別出來了 print("/".join(cut_result)) print("===" * 20) # 搜尋模式 print(jieba.lcut_for_search(string)) # 具有一定的新詞識別能力 string = "李老福是創新辦主任也是雲端計算方面的專家" cut_result = jieba.cut(string) print("===" * 20) print("/".join(cut_result))
執行結果:
============================================================ 李小福/是/創新辦/主任/也/是/雲/計算/方面/的/專家 ============================================================ 李小福/是/創新辦/主任/也/是/雲/計算/方面/的/專家 ============================================================ ['李小福', '是', '創新', '創新辦', '主任', '也', '是', '雲', '計算', '方面', '的', '專家'] ============================================================ 李老福/是/創新辦/主任/也/是/雲/計算/方面/的/專家
程式碼:
# 動態調整詞的方法 # 希望 “小王仁莊” 不被分開, 如今被分開了 string = "我住在小王仁莊" cut_result = jieba.cut(string) print("===" * 20) print("/".join(cut_result)) # 新增到自定義詞典 jieba.add_word("小王仁莊") cut_result = jieba.cut(string) print("===" * 20) # 哈哈,分隔開了吧 print("/".join(cut_result)) # 詞頻和詞性 # 如果詞頻太小也不會被分開 jieba.add_word("小王仁莊", freq=0.1, tag=None) cut_result = jieba.cut(string) print("===" * 20) # 怎麼樣,沒有分開 print("/".join(cut_result)) # 那麼,該如何尋找詞頻呢? print("===" * 20) # 詞頻為1 print(jieba.suggest_freq("小王仁莊", tune=True)) # 將詞頻設定為1看看可不可以分開 jieba.add_word("小王仁莊", freq=1, tag=None) cut_result = jieba.cut(string) print("===" * 20) # 成功分開 print("/".join(cut_result))
執行結果:
============================================================
我/住/在/小王仁莊
============================================================
我/住/在/小王仁莊
============================================================
我/住/在/小/王仁莊
============================================================
1
============================================================
我/住/在/小王仁莊
程式碼:
# 刪除字典中的一些詞
jieba.del_word("小王仁莊")
# 看看還能不能識別出來
cut_result = jieba.cut(string)
print("/".join(cut_result))
執行結果:
我/住/在/小/王仁莊
程式碼:
# 總結
# 自定義詞典中:詞語、詞頻(可省略)、詞性(可省略),用空格隔開,順序不可顛倒
# 李小福 2 nr
# file_name為檔案類物件或自定義詞典的路徑
jieba.load_userdict(file_name)
# 動態新增自定義詞
jieba.add_word(word, freq=None, tag=None)
# 動態刪除自定義詞
jieba.del_word(word)
# 找到合適詞頻
jieba.suggest_freq(segment, tune=True)