hankcs / HanLP

Natural Language Processing for the next decade. Tokenization, Part-of-Speech Tagging, Named Entity Recognition, Syntactic & Semantic Dependency Parsing, Document Classification
https://hanlp.hankcs.com/en/
Apache License 2.0
33.91k stars 10.15k forks source link

stopwords能不能像自定义字典一样在配置里自定义新文件 #977

Closed skyrusai closed 6 years ago

skyrusai commented 6 years ago

注意事项

请确认下列注意事项:

版本号

pyhanlp 当前最新版本号是:1.6.8 我使用的版本是:1.6.8

我的问题

stopwords 能不能自定义文件 print(HanLP.Config.CoreStopWordDictionaryPath) /home/q/pyhanlp/data/dictionary/stopwords.txt; stop_dict.txt; 能不能这样配置 这样配置,下面这段代码会报错,也就是不能这样配置吗?


from pyhanlp import * NotionalTokenizer = JClass("com.hankcs.hanlp.tokenizer.NotionalTokenizer") text = "小区居民有的反对喂养流浪猫,而有的居民却赞成喂养这些小宝贝" print(NotionalTokenizer.segment(text))


java.lang.NullPointerExceptionPyRaisable Traceback (most recent call last)

in () 4 5 text = "小区居民有的反对喂养流浪猫,而有的居民却赞成喂养这些小宝贝" 6 print(NotionalTokenizer.segment(text)) java.lang.NullPointerExceptionPyRaisable: java.lang.NullPointerException ---------------------------------------- ## 我的问题2 win10也同样配置了hanlp.properties CustomDictionaryPath=data/dictionary/custom/CustomDictionary.txt; Custom.txt; 现代汉语补充词库.txt; 全国地名大全.txt ns; 人名词典.txt; 机构名词典.txt; 上海地名.txt ns; my.txt; feature_dict.txt; data/dictionary/person/nrf.txt nrf; 同样删除了缓存文件,不知为什么,生成出来的地址始终没有feature_dict.txt, Custom.txt; ----------------------------------- print(HanLP.Config.CustomDictionaryPath) ('d:/applications/pyhanlp/data/dictionary/custom/CustomDictionary.txt', 'd:/applications/pyhanlp/data/dictionary/custom/现代汉语补充词库.txt', 'd:/applications/pyhanlp/data/dictionary/custom/全国地名大全.txt ns', 'd:/applications/pyhanlp/data/dictionary/custom/人名词典.txt', 'd:/applications/pyhanlp/data/dictionary/custom/机构名词典.txt', 'd:/applications/pyhanlp/data/dictionary/custom/上海地名.txt ns', 'd:/applications/pyhanlp/data/dictionary/person/nrf.txt nrf') ----------------------------------- 上面就原始的七个,有什么检查方法吗,java也不是特别熟。
AnyListen commented 6 years ago

问题 1: 貌似 停用词词典不支持配置多个路径,你可以指定单个文件试一下。

问题 2: 你的 上海地名.txt ns 是不是配置有问题;此外 my.txt; feature_dict.txt; 这两个文件的目录需要在data/dictionary/custom/ 下面。

skyrusai commented 6 years ago

default

另外data/dictionary/custom/CustomDictionary.txt是个高质量的词库,请不要删除。所有词典统一使用UTF-8编码。

CustomDictionaryPath=data/dictionary/custom/CustomDictionary.txt; Custom.txt; 现代汉语补充词库.txt; 全国地名大全.txt ns; 人名词典.txt; 机构名词典.txt; 上海地名.txt ns; my.txt; feature_dict.txt; data/dictionary/person/nrf.txt nrf;

hankcs commented 6 years ago
  1. 停用词典的确不支持多个路径,请合并到stopwords.txt
  2. 你的配置文件没有编辑或编辑错了。hanlp -v获取hanlp.properties的路径,修改
CustomDictionaryPath=data/dictionary/custom/CustomDictionary.txt; my.txt; 全国地名大全.txt ns;data/dictionary/person/nrf.txt nr;

注意放到CustomDictionary.txt;的后面,加空格,加英文分号结束。

skyrusai commented 6 years ago

tempsnip 这里面的地址和斜杠的顺序有关系么,导致读不到。

hankcs commented 6 years ago

没关系,你应该检查是否编辑了正确的配置文件,site-packages\pyhanlp\static下面有hanlp.properties和hanlp.properties.in,第一个才是正确的配置文件。你需要显示文件拓展名。 2018-10-06_18-47-22

skyrusai commented 6 years ago

隔了几天,又跑了下代码,没问题了,感谢大佬耐心解答