文章目录
前面谈到分词:
HanLP安装与使用-python版和java版
pynlpir中文分词+加载用户自定义词典
我比较喜欢用HanLP,它的粒度刚刚好。 pynlpir太细了,词全切开了。
1. 分词重要性
分错了可不好搞。
2. 词典说明
用户自定义词典 第8点。 - 1.x
2.1 CustomDictionary
- CustomDictionary 是一份全局的用户自定义词典,可以随时增删,影响全部分词器。
- 另外可以在任何分词器中关闭它。通过代码动态增删不会保存到词典文件。
- 中文分词≠词典,词典无法解决中文分词,Segment提供高低优先级应对不同场景,可参考 为什么修改了词典还是没有效果? - FAQ
- 代码动态添加词典方法:demo_custom_dictionary.py - github
2.2 追加词典
- CustomDictionary主词典文本路径是
data/dictionary/custom/CustomDictionary.txt
,用户可以在此增加自己的词语(不推荐)
我的文件位置是C:\Users\ASUS\Anaconda3\Lib\site-packages\pyhanlp\static\data\dictionary\custom
,如图:
- 也可以单独新建一个文本文件,通过配置文件
CustomDictionaryPath=data/dictionary/custom/CustomDictionary.txt; 我的词典.txt;
来追加词典(推荐)。 - 始终建议将相同词性的词语放到同一个词典文件里,便于维护和分享。
2.3 词典格式
- 每一行代表一个单词,格式遵从
[单词] [词性A] [A的频次] [词性B] [B的频次] ...
如果不填词性则表示采用词典的默认词性。 - 词典的默认词性默认是名词n,可以通过配置文件修改:
全国地名大全.txt ns;
如果词典路径后面空格紧接着词性,则该词典默认是该词性。 - 在统计分词中,并不保证自定义词典中的词一定被切分出来。用户可在理解后果的情况下通过
Segment#enableCustomDictionaryForcing
强制生效。 - 关于用户词典的更多信息请参考词典说明一章。 词典说明 - 词典说明
字典样例:
万死 a 2 v 1
三冬 n 1
三天两头儿 nz 1
三星堆遗址 n 1
三键 a 1 n 1
上口字 n 1
所有词典统一使用UTF-8编码
2.4 添加词典
-
打开
C:\Users\ASUS\Anaconda3\Lib\site-packages\pyhanlp\static\hanlp.properties
文件,找到第20~21行:#另外data/dictionary/custom/CustomDictionary.txt是个高质量的词库,请不要删除。所有词典统一使用UTF-8编码。 CustomDictionaryPath=data/dictionary/custom/CustomDictionary.txt; 现代汉语补充词库.txt; 全国地名大全.txt ns; 人名词典.txt; 机构名词典.txt; 上海地名.txt ns;data/dictionary/person/nrf