问题描述
我在运行斯坦福大学的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 (将#修改为@)