使用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'},加入字典的路径。这里必定要绝对路径。相对路径不能生效。测试

相关文章
相关标签/搜索