使用pynlpir增強jieba分詞的准確度


在使用jieba分詞時,發現分詞准確度不高。特別是一些專業詞匯,比如堡壘機,只能分出堡壘,並不能分出堡壘機。這樣導致的問題是很多時候檢索並不准確。
經過對比測試,發現nlpir進行分詞效果更好。但是nlpir的效率和各種支持又沒有jieba那么好,因此采用了一種折中的方案。
就是先用nlpir生成字典,然后使用jieba利用字典進行分詞。

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

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

而后為jieba生成字典。jieba支持的字典格式為單詞 詞頻,中間用空格隔開,每行一個單詞。
使用pynlpir生成詞典的方式如下:

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。這里就不再重復了。

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


免責聲明!

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



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