Python "Could not find or load main class" 中的 StandPOSTagger
StandPOSTagger in Python "Could not find or load main class"
我最近尝试通过http://textminingonline.com/dive-into-nltk-part-v-using-stanford-text-analysis-tools-in-python学习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 文件:
path to Maxent Tagger
请问如何设置正确的 class 路径?或其他方式来解决这个问题。
P.S。 : 我没有 Java 的经验,但是 Python。
问题是您无权访问这些 jars,所以这是一个 CLASSPATH 问题。我不确定这是否适用于 nltk
,但我已经看到以前的答案,其中设置 os.environ["CLASSPATH"]= "/path/to/stanford-corenlp-full-2016-10-31"
解决了这个问题。
您可以从这里下载 Stanford CoreNLP 3.7.0:
http://stanfordnlp.github.io/CoreNLP/download.html
如果您想在 Python 中使用我们的工具,我建议您使用 Stanford CoreNLP 3.7.0 服务器并发出小型服务器请求(或使用 stanza
库)。
如果你使用 nltk
我相信会发生 Python 只是用 subprocess
调用我们的 Java 代码,这实际上可能非常低效,因为不同的调用会重新加载所有的模型。
这是我之前给出的一个回答,更详尽地描述了这一点:
cannot use pycorenlp for python3.5 through terminal
我最近尝试通过http://textminingonline.com/dive-into-nltk-part-v-using-stanford-text-analysis-tools-in-python学习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 文件: path to Maxent Tagger
请问如何设置正确的 class 路径?或其他方式来解决这个问题。 P.S。 : 我没有 Java 的经验,但是 Python。
问题是您无权访问这些 jars,所以这是一个 CLASSPATH 问题。我不确定这是否适用于 nltk
,但我已经看到以前的答案,其中设置 os.environ["CLASSPATH"]= "/path/to/stanford-corenlp-full-2016-10-31"
解决了这个问题。
您可以从这里下载 Stanford CoreNLP 3.7.0:
http://stanfordnlp.github.io/CoreNLP/download.html
如果您想在 Python 中使用我们的工具,我建议您使用 Stanford CoreNLP 3.7.0 服务器并发出小型服务器请求(或使用 stanza
库)。
如果你使用 nltk
我相信会发生 Python 只是用 subprocess
调用我们的 Java 代码,这实际上可能非常低效,因为不同的调用会重新加载所有的模型。
这是我之前给出的一个回答,更详尽地描述了这一点:
cannot use pycorenlp for python3.5 through terminal