使用JPype的斯坦福解析器

1 投票
2 回答
1955 浏览
提问于 2025-04-16 21:45

当我尝试使用Stanford解析器和jpype时,出现了以下错误:

文件 "C:\Python26\lib\site-packages\stanford_parser\parser.py",第103行, 在初始化

self.parser = self.package_lexparser.LexicalizedParser(self.pcfg_model_fname)

文件 "C:\Python26\lib\site-packages\jpype_jpackage.py",第55行, 在调用

raise TypeError, "Package "+self.__name+" is not Callable"

类型错误:包edu.stanford.nlp.parser.lexparser.LexicalizedParser不可调用

2 个回答

2

这个问题已经问了很久,但如果还有人路过的话,我之前也遇到过同样的问题,后来通过修正“stanford-parser.jar”的路径解决了。在我的情况下(Ubuntu系统),我在“parser.py”文件中修正了这一行:

os.environ.setdefault("STANFORD_PARSER_HOME", "../3rdParty/stanford-parser/stanford-parser-2010-08-20")

然后错误就不再出现了。只要确保你给出的“stanford-parser.jar”和PCFG文件的路径是正确的就可以了。

2

我也遇到过同样的情况。

问题出在路径不正确。

你确认一下jar文件的路径对不对吗?

要启动JVM,我们会像这样调用startJVM():

jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % (jar_path),)

如果"jar_path"不正确,那就无法正常工作。

撰写回答