在使用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'}
,加入字典的路徑。這裏必定要絕對路徑。相對路徑不能生效。測試