在 python 3.4 中使用 java 和 nltk

use java in python 3.4 with nltk

我想在我的项目中使用 stanford-tagger 但出现以下错误。

  File "C:\Python34\lib\site-packages\nltk\tag\stanford.py", line 59, in tag
    return self.tag_sents([tokens])[0]
  File "C:\Python34\lib\site-packages\hazm\POSTagger.py", line 25, in tag_sents
    return super(stanford.POSTagger, self).tag_sents(refined)
  File "C:\Python34\lib\site-packages\nltk\tag\stanford.py", line 64, in tag_sents
    config_java(options=self.java_options, verbose=False)
  File "C:\Python34\lib\site-packages\nltk\internals.py", line 82, in config_java
    _java_bin = find_binary('java', bin, env_vars=['JAVAHOME', 'JAVA_HOME'], verbose=verbose, binary_names=['java.exe'])
  File "C:\Python34\lib\site-packages\nltk\internals.py", line 544, in find_binary
    binary_names, url, verbose))
  File "C:\Python34\lib\site-packages\nltk\internals.py", line 538, in find_binary_iter
    url, verbose):
  File "C:\Python34\lib\site-packages\nltk\internals.py", line 517, in find_file_iter
    raise LookupError('\n\n%s\n%s\n%s' % (div, msg, div))
LookupError: 

===========================================================================
NLTK was unable to find the java file!
Use software specific configuration paramaters or set the JAVAHOME environment variable.
===========================================================================

NLTK 找不到 java 文件! 使用软件特定的配置参数或设置 JAVAHOME 环境变量。

请帮我设置 java 变量。我使用 windows 8 64 位和 python 3.4

Here's the Java documentation for setting your path.

Windows 8

  • 将鼠标指针拖动到屏幕的右下角
  • 单击“搜索”图标并键入:控制面板
  • 点击 -> 控制面板 -> 系统 -> 高级
  • 点击Environment Variables,在System Variables下,找到PATH,点击它。
  • 在编辑 windows 中,通过将 class 的位置添加到 PATH 的 * 值来修改 PATH。如果您没有项目 PATH,您可以 select 添加一个新变量并添加 PATH 作为名称和 class 的位置作为值。
  • 关闭 window.
  • 重新打开命令提示符 window,然后 运行 您的 java 代码。

将其添加到您的代码中:

java_path = "C:/Program Files/Java/jdk1.8.0_191/bin/java.exe"
os.environ['JAVAHOME'] = java_path

您的 nltk 库在您的计算机中找不到 java 目录。

在你的 venv 中找到 nltk 库文件并在文件中找到 internals.py 在代码中找到这一行:

def config_java(bin=None, options=None, verbose=False)

像这样更改代码:

java_path = "C:/Program Files/Java/jre1.8.0_281/bin/java.exe" #your java file address
os.environ['JAVAHOME'] = java_path
def config_java(bin=java_path, options=None, verbose=False):
...