Tho*_*Chu 21 python java tags config nltk
我正在使用NLTK的nltk.tag.stanford,它需要调用java可执行文件.
我将JAVAHOME设置为安装了我的jdk的C:\ Program Files\Java\jdk1.6.0_25,但是在运行程序时出现错误
"NLTK was unable to find the java executable! Use the config_java() or set the JAVAHOME variable"
Run Code Online (Sandbox Code Playgroud)
然后我花了3个小时来调试它并尝试了
config_java("C:/Program Files/Java/jdk1.6.0_25/")
config_java("C:/Program Files/Java/jdk1.6.0_25/bin/")
and those without the ending "/".
Run Code Online (Sandbox Code Playgroud)
然而,nltk仍然无法找到它.
任何人都知道出了什么问题?谢谢你的loooot!
Ala*_*lan 54
如果设置JAVA_HOME环境对您没有帮助,请尝试以下操作:
config_java()不适合我.我将以下代码添加到我的代码中并且它有效:
import os
java_path = "C:/Program Files/Java/jdk1.7.0_11/bin/java.exe"
os.environ['JAVAHOME'] = java_path
Run Code Online (Sandbox Code Playgroud)
我正在运行Windows 7 64位
我花了大约七个小时来解决这个问题,最后找到了解决方案.您可以将java目录直接写入internals.py文件(build 2.0.4)的第69和72行,如下所示:
##########################################################################
# Java Via Command-Line
##########################################################################
_java_bin = 'C:\Program Files\Java\jdk1.7.0_25\\bin\java.exe'
_java_options = []
# [xx] add classpath option to config_java?
def config_java(bin='C:\Program Files\Java\jdk1.7.0_25\\bin\java.exe', options=None, verbose=True):
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题.(我在32位Windows环境下工作)
protos1210的提示对我有用,只有一些小的改动.完整的答案是:
import nltk
nltk.internals.config_java("C:/Program Files/Java/jdk1.6.0_30/bin/java.exe")
Run Code Online (Sandbox Code Playgroud)
重新启动IDLE后,以下代码有效.
import nltk
path_to_model = "C:/Program Files/stanford-postagger-2012-05-22/models/english-bidirectional-distsim.tagger"
path_to_jar = "C:/Program Files/stanford-postagger-2012-05-22/stanford-postagger.jar"
tagger = nltk.tag.stanford.POSTagger(path_to_model, path_to_jar)
tokens = nltk.tokenize.word_tokenize("I hope this works!")
print tagger.tag(tokens)
Run Code Online (Sandbox Code Playgroud)
输出是:[('I','PRP'),('希望','VBP'),('this','DT'),('works','VBZ'),('!',' .')].
我永远无法识别我的JAVAHOME环境变量.
我看了这里,文档似乎表明这个论点应该看起来像
config_java("C:/Program Files/Java/jdk1.6.0_25/bin/java")
Run Code Online (Sandbox Code Playgroud)