Java Python中的StandPOSTagger“;无法找到或加载主类“;

Java Python中的StandPOSTagger“;无法找到或加载主类“;,java,python,stanford-nlp,text-mining,Java,Python,Stanford Nlp,Text Mining,我最近试图通过学习nltk软件包。 但是我遇到了一个关于用Python执行JAVA代码的问题: import os java_path = "C:\Program Files (x86)\Java\jre1.8.0_121\\bin\java.exe" os.environ['JAVAHOME'] = java_path os.environ['JAVAHOME'] 结果是: 'C:\\Program Files (x86)\\Java\\jre1.8.0_121\\bin\\java.exe

我最近试图通过学习nltk软件包。 但是我遇到了一个关于用Python执行JAVA代码的问题:

import os
java_path = "C:\Program Files (x86)\Java\jre1.8.0_121\\bin\java.exe"
os.environ['JAVAHOME'] = java_path
os.environ['JAVAHOME']
结果是:

'C:\\Program Files (x86)\\Java\\jre1.8.0_121\\bin\\java.exe'
然后我运行nltk代码:

import nltk
from nltk.tag.stanford import StanfordPOSTagger
english_postagger=StanfordPOSTagger('models/english-bidirectional-distsim.tagger','stanford-postagger.jar')
english_postagger.tag('hi')
然而:

`Error: Could not find or load main class`edu.stanford.nlp.tagger.maxent.MaxentTagger
我查看了“stanford postagger.jar”中的文档,MaxentTagger文件就在那里:

我可以知道如何设置正确的类路径吗?或者用其他方法来解决这个问题。
注:我没有Java方面的经验,但是Python方面的经验

问题是您没有访问JAR的权限,因此这是一个类路径问题。我不确定这是否适用于
nltk
,但我已经看到了前面的答案,其中设置
os.environ[“CLASSPATH”]=“/path/to/stanford-corenlp-full-2016-10-31”
解决了这个问题

您可以从此处下载斯坦福CoreNLP 3.7.0:

如果您想在Python中使用我们的工具,我建议您使用Stanford CoreNLP 3.7.0服务器并发出小型服务器请求(或使用
库)

如果您使用
nltk
,我相信会发生的是Python只是用
subprocess
调用我们的Java代码,这实际上可能非常低效,因为不同的调用会重新加载所有模型

下面是我之前给出的一个答案,它更全面地描述了这一点:


非常感谢您的帮助!我没有JAVA方面的经验,所以看起来我需要学习它。我会尝试stanza明确了解问题。有关服务器的更多信息: