使用pynlpir加強jieba分詞的準確度

在使用jieba分詞時,發現分詞準確度不高。特別是一些專業詞彙,好比堡壘機,只能分出堡壘,並不能分出堡壘機。這樣致使的問題是不少時候檢索並不許確。
通過對比測試,發現nlpir進行分詞效果更好。可是nlpir的效率和各類支持又沒有jieba那麼好,所以採用了一種折中的方案。
就是先用nlpir生成字典,而後使用jieba利用字典進行分詞。html

首先安裝pynlpir。pynlpir的相關說明能夠參考https://pynlpir.readthedocs.io/en/latest/index.html。python

// 安裝
$ pip install pynlpir
// 證書更新
$ pynlpir update

然後爲jieba生成字典。jieba支持的字典格式爲單詞 詞頻,中間用空格隔開,每行一個單詞。
使用pynlpir生成詞典的方式以下:git

import pynlpir
pynlpir.open()
f = open("doc.txt", "r")
s= f.readlines()
s = '\n'.join(s)
f.close()
key_words = pynlpir.get_key_words(s, max_words=1000, weighted=True)
for key_word in key_words:
    print '%s %s' % (key_word[0], int(key_word[1]*10))

這裏之因此爲每一個詞頻*10,主要是爲了增強其權重。然後再使用jieba利用該字典進行分詞。至於jieba分詞如何使用詞典,能夠參考https://github.com/fxsjy/jieba/blob/master/test/test_userdict.py。這裏就再也不重複了。github

對於sphinx-doc,其最新版本也是使用的jieba分詞。一樣可使用本方法來提高其分詞的準確率。
中文分詞引入能夠參考https://www.chenyudong.com/archives/sphinx-doc-support-chinese-search.html。
在conf.py中,配置html_search_options = {'dict': '/usr/lib/jieba.txt'},加入字典的路徑。這裏必定要絕對路徑。相對路徑不能生效。測試

相關文章
相關標籤/搜索