NLTK找不到java.exe(自动路径缩减)

2024-09-30 20:36:11 发布

您现在位置:Python中文网/ 问答频道 /正文

类似的问题被张贴在{a1}和{a2}上,我的问题实际上是基于对这些问题的回答中提出的建议

我尝试使用斯坦福解析器和NLTK解析一些德语文本

from nltk.parse.stanford import StanfordParser
import os
os.environ['STANFORD_PARSER'] ='C:\PretestKorpus\stanford-parser-full-2018-10-17'
os.environ['STANFORD_MODELS'] = 'C:\PretestKorpus\stanford-parser-full-2018-10-17'
parser=StanfordParser(model_path="C:\PretestKorpus\germanPCFG.ser.gz")
new=list(parser.raw_parse("Es war einmal ein Bauer"))

然后,当然,我得到了NLTK was unable to find the java file!错误:

所以我设置如下配置:

nltk.internals.config_java('C:\Program Files (x86)\Java\jre1.8.0_251\bin\java.exe')

但它又回来了

NLTK was unable to find the C:\Program Files (x86)\Java\jre1.8.0_251in\java.exe file!
Use software specific configuration paramaters or set the JAVAHOME environment variable.

因此,Python以某种方式将路径\\jre1.8.0_251\bin\java.exe减少为\\jre1.8.0_251in\java.exe

看起来像这样:

enter image description here

设置环境变量也没有帮助(返回NLTK was unable to find the java file!错误)。显然,python无法正确读取路径。但原因是什么?如何解决?任何帮助都将不胜感激


Tags: thetoparserparseosjavafindexe
1条回答
网友
1楼 · 发布于 2024-09-30 20:36:11

在python中\b内的字符串被解析为退格字符。因此,您可以在图片中看到白色的BS,因为控制台试图表示这个特殊字符(BS表示退格)。
您需要做的是像这样转义字符串中的\

nltk.internals.config_java('C:\\Program Files (x86)\\Java\\jre1.8.0_251\\bin\\java.exe')

总是转义所有反斜杠字符是一种很好的做法,因此您可以确保像这样的问题永远不会发生

相关问题 更多 >