python使用結巴分詞(jieba)創建自己的詞典/詞庫


為什么需要在python使用結巴分詞(jieba)創建自己的詞典/詞庫,因為很多時候分詞給我們的結果了能剛好相反,如:不回家變成了不,回家;從上一篇文章文章我們已經講訴了python使用結巴中文分詞以及訓練自己的分詞詞典,基本的安裝和基本使用大家直接去看那篇文章即可,我們主要介紹如何python創建自己的詞典。

一、創建分詞字典

1、准備詞典

創建一個dict.txt,然后寫入你的分詞,一個詞占一行;每一行分三部分:詞語、詞頻(可省略)、詞性(可省略),用空格隔開,順序不可顛倒。file_name 若為路徑或二進制方式打開的文件,則文件必須為 UTF-8 編碼。

不處理 nr
不還款
中國銀行
根本打不開

2、編寫python代碼

在分詞前通過jieba.load_userdict(file_name)來加載分詞字典:

#-*- coding:utf-8 -*-
import jieba

jieba.load_userdict("./dict.txt")
word_list = jieba.cut("我今天不處理逾期信用貸款,因為你們中國銀行的APP根本打不開")
print("|".join(word_list))

3、分詞對比

第一張,未添加字典

 

 第二張:添加了字典

 

 

可以看出,我們更加明確了用戶的意圖,不處理我們識別為處理,這樣的事情在識別意圖的時候還是比較坑的!

二、使用add_word和suggest_freq

  • 使用add_word(word, freq=None, tag=None)del_word(word)可在程序中動態修改詞典。
  • 使用suggest_freq(segment, tune=True)可調節單個詞語的詞頻,使其能(或不能)被分出來。

實現代碼:

#-*- coding:utf-8 -*-
import jieba

jieba.suggest_freq('不處理',True)
jieba.add_word('不處理',tag='d')
jieba.add_word('中國銀行APP',tag='d')
word_list = jieba.cut("我今天不處理逾期信用貸款,因為你們中國銀行APP根本打不開")
print("|".join(word_list))

實現的結果和上面的相同,所以不做過多的對比描述

注意:
add_word只是一次性的添加分詞字典,不是直接將內容添加到結巴庫中了;同時此方法的代碼可能比較多,所以感覺沒有方法一好

 

https://ptorch.com/news/204.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM