因此,感谢danger89对上一篇文章Stanford Parser and NLTK的回答,我得到了“标准”斯坦福解析器。
但是,我现在正试图让依赖关系解析器工作,并且在前面的链接中突出显示的方法似乎不再工作。这是我的代码:
import nltk
import os
java_path = "C:\\Program Files\\Java\\jre1.8.0_51\\bin\\java.exe"
os.environ['JAVAHOME'] = java_path
from nltk.parse import stanford
os.environ['STANFORD_PARSER'] = 'path/jar'
os.environ['STANFORD_MODELS'] = 'path/jar'
parser = stanford.StanfordDependencyParser(model_path="path/jar/englishPCFG.ser.gz")
sentences = parser.raw_parse_sents(nltk.sent_tokenize("The iPod is expensive but pretty."))
我得到以下错误:“module”对象没有属性“StanfordDependencyParser”
我唯一改变的是“StanfordDependencyParser”中的“StanfordParser”。有什么办法可以让它工作吗?
我还尝试了Stanford神经依赖性解析器,如这里的文档所示导入它:http://www.nltk.org/_modules/nltk/parse/stanford.html
这个也没用。
对NLTK来说很陌生。提前感谢您的帮助。
如果您只更改了'StanfordDependencyParser'和错误状态:
module' object has no attribute 'StanfordDependencyParser'
,我会假设StanfordDependencyParser
是错误的更改。你把所有链接到的代码都一字不差地复制了吗?StanfordDependencyParser
API是自NLTK 3.1版以来创建的一个新类对象。确保通过pip获得最新的NLTK
或者通过linux包管理器,例如:
或者在windows中,下载https://pypi.python.org/pypi/nltk并安装,它应该会覆盖以前的NLTK版本。
然后您可以使用文档中所示的API:
[出局]:
(注意:确保获得jar的路径并且
os.environ
正确,在Windows中是something\\something\\some\\path
,在unix中是something/something/some/path
)另请参见https://github.com/nltk/nltk/wiki/Installing-Third-Party-Software#stanford-tagger-ner-tokenizer-and-parser,当您需要TL;DR解决方案时,请参见https://github.com/alvations/nltk_cli
相关问题 更多 >
编程相关推荐