无法运行Stanford CoreNLPDependency解析器,找不到jar版本4.1.0

问题描述

我在运行斯坦福大学的CoreNLPDependencyParser时遇到问题。我正在Windows 10安装程序的Python 3 Jupyter Notebook中运行此程序。

我需要返回我正在使用的RDF三元组提取工具的依赖树,仅英文文本。

我未成功尝试的操作如下:

以下导入之后:

from nltk.parse import CoreNLPDependencyParser
from nltk.parse.corenlp import CoreNLPServer
import os

这似乎使我最接近,因为它实际上找到了文件路径:

os.environ['CLAsspATH'] = r'C:\Users\XXX\YYY\ZZZ\stanford-corenlp-4.1.0'

jar = r'C:\\Users\\XXX\\YYY\\ZZZ\\stanford-corenlp-4.1.0\\stanford-corenlp-4.1.0.jar'
model = r'C:\\Users\\XXX\\YYY\\ZZZ\\stanford-corenlp-4.1.0\\stanford-corenlp-4.1.0-models.jar'

with CoreNLPServer(path_to_jar=jar,path_to_models_jar=model) as server:
    dep_parser = CoreNLPDependencyParser(url=server.url)

但出现以下错误

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-da573f299428> in <module>
      2 jar = r'C:\\Users\\XXX\\YYY\\ZZZ\\stanford-corenlp-4.1.0\\stanford-corenlp-4.1.0.jar'
      3 model = r'C:\\Users\\XXX\\YYY\\ZZZ\\stanford-corenlp-4.1.0\\stanford-corenlp-4.1.0-models.jar'
----> 4 with CoreNLPServer(path_to_jar=jar,path_to_models_jar=model) as server:
      5     dep_parser = CoreNLPDependencyParser(url=server.url)

~\Anaconda3\lib\site-packages\nltk\parse\corenlp.py in __init__(self,path_to_jar,path_to_models_jar,verbose,java_options,corenlp_options,port)
     71 
     72         # find the most recent code and model jar
---> 73         stanford_jar = max(jars,key=lambda model_name: re.match(self._JAR,model_name))
     74 
     75         if port is None:

TypeError: '>' not supported between instances of 'nonetype' and 'nonetype'

错误和类使我认为我需要仅包含jar文件目录的路径,如下所示:

os.environ['CLAsspATH'] = r'C:\Users\XXX\YYY\ZZZ\stanford-corenlp-4.1.0'
jar = r'C:\\Users\\XXX\\YYY\\ZZZ\\stanford-corenlp-4.1.0'
model = r'C:\\Users\\XXX\\YYY\\ZZZ\\stanford-corenlp-4.1.0'
with CoreNLPServer(path_to_jar=jar,path_to_models_jar=model) as server:
    dep_parser = CoreNLPDependencyParser(url=server.url)

但是找不到jar文件

LookupError: Could not find stanford-corenlp-(\d+)\.(\d+)\.(\d+)\.jar jar file at C:\\Users\\XXX\\YYY\\ZZZ\\stanford-corenlp-4.1.0

尽管我使用nltk的内部文件find_jars_within_path方法显示的jar文件

>>> from nltk.internals import find_jars_within_path
>>> find_jars_within_path(r'C:\Users\XXX\YYY\ZZZ\stanford-corenlp-4.1.0')
['C:\\Users\\XXX\\YYY\\ZZZ\\stanford-corenlp-4.1.0\\stanford-corenlp-4.1.0-models.jar','C:\\Users\\XXX\\YYY\\ZZZ\\stanford-corenlp-4.1.0\\stanford-corenlp-4.1.0.jar']

我想要使它起作用,但是我对采用所有RDF提取的更简单方法感到满意。我正在尝试利用parse.triples() method

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)