@(Python)
[TOC]
1. 技術(shù)背景
import jieba
jieba.load_userdict("100MB.txt")
問題來源 相信大家對上面2句話很熟悉,jieba分詞加載自定義詞庫,但是每次加載自定義詞庫都會花費大量的時間
100MB的自定義詞庫大概加載了10多分鐘,嚴(yán)重影響了服務(wù)上線和調(diào)試
,本篇文章主要解決上述問題志珍,并提供一種快速的加載、啟動方案
2. 結(jié)巴分詞加載自身詞庫方法介紹
Building prefix dict from the default dictionary ...
Loading model from cache
C:\Users\90541\AppData\Local\Temp\jieba.cache
Loading model cost 0.773 seconds.
- 首先來看看jieba分詞每次啟動時膀曾,做了件什么事情概耻,它做了2件事情:
- 加載結(jié)巴自身的默認(rèn)詞庫
- 將默認(rèn)詞庫模型 加載到本機緩存测砂,之后每次都從本地緩存中去加載默認(rèn)詞庫
緩存文件: jieba.cache
其實看到這里,目標(biāo)很明確了. 修改結(jié)巴的默認(rèn)詞庫玉罐,將我們的自定義詞庫提前導(dǎo)入進去奥喻,然后加載到緩存就行了
結(jié)巴默認(rèn)詞庫位置: {basepath}\Lib\site-packages\jieba\dict.txt
3. 修改jieba默認(rèn)詞庫
-
打開一下dict.txt 文件看一下是什么東西
jieba 默認(rèn)有349046個詞,然后每行的含義是
詞 詞頻 詞性
,如果你新加的詞匯不知道該怎么設(shè)置的話婿牍,可以寫成詞 3 n
def run():
# 將自定義詞庫中的詞 按規(guī)范寫入到 dict.txt 中
4. 清除 jieba.cache緩存,重啟jieba
修改完 dict.txt文件還沒結(jié)束哦监嗜,需要刪除jieba的本地緩存文件
jieba.cache
,然后刪除緩存谐檀,重啟jieba程序。
5.效果展示
**讓我們來看一下這波操作的可行性 **
5.1 沒修改詞庫前
In [1]:
import jieba
[ word for word in jieba.cut("我想知道區(qū)塊鏈?zhǔn)鞘裁?) ]
Out[1]:
['我', '想', '知道', '區(qū)塊', '鏈?zhǔn)?, '什么']
5.2 修改詞庫后
加入了 "區(qū)塊鏈 3 n"
6. 結(jié)論
修改完jieba默認(rèn)詞庫,就不需要再使用 jieba.load_userdict 方法去加載自定義詞庫了裁奇。省去了大筆自定義詞庫加載的時間成本桐猬。
如果文章幫助了你,請點贊哦~ 有其它jieba相關(guān)的問題,也可以咨詢本人
微信:w63594021