HarvestText icon indicating copy to clipboard operation
HarvestText copied to clipboard

三元组抽取是报错了,不知道你有没有遇到?网上没有找到解决方法

Open jxz542189 opened this issue 5 years ago • 3 comments

Traceback (most recent call last): File "/root/PycharmProjects/entity_extract/test.py", line 82, in SVOs += ht2.triple_extraction(sent.strip()) File "/root/anaconda3/envs/tensorflow/lib/python3.6/site-packages/harvesttext-0.5.4-py3.6.egg/harvesttext/harvesttext.py", line 577, in triple_extraction arcs = self.dependency_parse(sent, standard_name, stopwords) File "/root/anaconda3/envs/tensorflow/lib/python3.6/site-packages/harvesttext-0.5.4-py3.6.egg/harvesttext/harvesttext.py", line 550, in dependency_parse sentence = HanLP.parseDependency(sent2) jpype._jexception.NoSuchElementExceptionPyRaisable: java.util.NoSuchElementException

jxz542189 avatar May 07 '19 08:05 jxz542189

根据错误信息,问题是出在我调用的pyhanlp的接口上。 建议首先检查一下pyhanlp的安装情况,可以尝试重装我本人使用的版本:

pip uninstall pyhanlp
pip install pyhanlp==0.1.44

再试试看。

如果还是不行的情况: pyhanlp依赖于hanlp这个JAVA库的代码,这个错误好像就是没有找到对应的JAVA元素。 所以,建议检查一下对应的JAVA版hanlp的安装情况,命令行里输入:

hanlp -v

正常情况下会显示版本,类似:

jar  1.6.7: D:\Program files\Anaconda2\envs\py36\lib\site-packages\pyhanlp\static\hanlp-1.6.7.jar
data 1.6.7: D:/Program files/Anaconda2/envs/py36/lib/site-packages/pyhanlp/static\data
config    : D:\Program files\Anaconda2\envs\py36\lib\site-packages\pyhanlp\static\hanlp.properties

看看有没有问题。如果这里也没有问题,考虑参照这个教程,配置跟我一样的hanlp版本。

希望能够解决你的问题

blmoistawinde avatar May 07 '19 11:05 blmoistawinde

没有解决,如果不是用harvesttext直接使用HanLP.parseDependency是正常的,相当奇怪。大神,要是能对各个模块都有说明文档就更好了,真的是不错的项目,厉害

jxz542189 avatar May 09 '19 06:05 jxz542189

最近在用另一台电脑的时候,发现了同样的问题。然后发现是hanLP自身的一个问题,参考这个issue后我修复了这个问题。 只要下载这个文件 https://github.com/hankcs/HanLP/files/3357416/hanlp-1.7.4.jar.zip 将解压后的jar文件覆盖掉 [你的python环境]/Lib/site-packages/pyhanlp/static/hanlp-1.7.4.jar 即可。 希望也能解决你的问题。

blmoistawinde avatar Sep 18 '19 03:09 blmoistawinde