Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
语法分析器在Python NLTK中不起作用_Python_Parsing_Nltk - Fatal编程技术网

语法分析器在Python NLTK中不起作用

语法分析器在Python NLTK中不起作用,python,parsing,nltk,Python,Parsing,Nltk,我很难让语法分析器与Python NLTK一起工作 以下是我目前的代码: import nltk os.environ["MALT_PARSER"] = "C:/Python34/maltparser-1.8.1" os.environ["MALTPARSERHOME"] = "C:/Python34/maltparser-1.8.1" parser8 = nltk.parse.malt.MaltParser( ... working_dir="C:/Python34/malt

我很难让语法分析器与Python NLTK一起工作

以下是我目前的代码:

import nltk

os.environ["MALT_PARSER"] = "C:/Python34/maltparser-1.8.1"
os.environ["MALTPARSERHOME"] = "C:/Python34/maltparser-1.8.1"

parser8 = nltk.parse.malt.MaltParser(
...        working_dir="C:/Python34/maltparser-1.8.1", mco="engmalt.poly-1.7", 
...        additional_java_args=['-Xmx512m'])

txt = "This is a test sentence"

parser8.raw_parse(txt)
我已下载并选择使用预先培训的模型

这是我得到的答复:

runfile('C:/Anaconda/Lib/site-packages/nltk/malt2.py', wdir='C:/Anaconda/Lib/site-packages/nltk')
Traceback (most recent call last):

  File "<ipython-input-38-73069e4ee673>", line 1, in <module>
    runfile('C:/Anaconda/Lib/site-packages/nltk/malt2.py', wdir='C:/Anaconda/Lib/site-packages/nltk')

  File "C:\Anaconda\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 580, in runfile
    execfile(filename, namespace)

  File "C:/Anaconda/Lib/site-packages/nltk/malt2.py", line 14, in <module>
    parser8.raw_parse(txt)

  File "C:\Anaconda\lib\site-packages\nltk\parse\malt.py", line 139, in raw_parse
    return self.parse(words, verbose)

  File "C:\Anaconda\lib\site-packages\nltk\parse\malt.py", line 126, in parse
    return self.parse_sents([sentence], verbose)[0]

  File "C:\Anaconda\lib\site-packages\nltk\parse\malt.py", line 114, in parse_sents
    return self.tagged_parse_sents(tagged_sentences, verbose)

  File "C:\Anaconda\lib\site-packages\nltk\parse\malt.py", line 194, in tagged_parse_sents
    "code %d" % (' '.join(cmd), ret))

Exception: MaltParser parsing (java -Xmx512m -jar C:/Python34/maltparser-1.8.1\malt.jar -w C:/Python34/maltparser-1.8.1 -c engmalt.poly-1.7.mco -i C:\Python34\maltparser-1.8.1\malt_input.conllqgpbye -o C:\Python34\maltparser-1.8.1\malt_output.conllib1nx0 -m parse) failed with exit code 2
runfile('C:/Anaconda/Lib/site packages/nltk/malt2.py',wdir='C:/Anaconda/Lib/site packages/nltk')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
runfile('C:/Anaconda/Lib/site packages/nltk/malt2.py',wdir='C:/Anaconda/Lib/site packages/nltk')
文件“C:\Anaconda\lib\site packages\spyderlib\widgets\externalshell\sitecustomize.py”,第580行,在runfile中
execfile(文件名、命名空间)
文件“C:/Anaconda/Lib/site packages/nltk/malt2.py”,第14行,在
parser8.raw_parse(txt)
文件“C:\Anaconda\lib\site packages\nltk\parse\malt.py”,第139行,原始解析
返回self.parse(单词、详细信息)
文件“C:\Anaconda\lib\site packages\nltk\parse\malt.py”,第126行,在parse中
返回self.parse_sents([句子],详细)[0]
文件“C:\Anaconda\lib\site packages\nltk\parse\malt.py”,第114行,parse\u sents
返回self.tagged_parse_sents(tagged_句子,verbose)
文件“C:\Anaconda\lib\site packages\nltk\parse\malt.py”,第194行,在taged\u parse\u sents中
“代码%d”%(''.join(cmd),ret))
异常:MaltParser解析(java-Xmx512m-jar C:/Python34/MaltParser-1.8.1\malt.jar-w C:/Python34/MaltParser-1.8.1-C engmalt.poly-1.7.mco-ic:\Python34\MaltParser-1.8.1\malt_input.conllqgpbye-o C:\Python34\MaltParser-1.8.1\malt_output.conllib1nx0-m parse)失败,退出代码为2
我遵循了这篇文章的所有建议

具体而言:

-我下载了MaltParser的最新版本

-使用Pip,我卸载并重新安装了NLTK以获得最新版本,其中包括malt/py中添加的允许将“额外的java参数”添加为参数

-我将jar文件重命名为“malt.jar”

-我设置了一个环境变量,将MALT_PARSER和MALTPARSERHOME都指向工作目录

-我试过线性和多边形预训练模型

-可以在此处找到malt.py的代码

如果没有明显的解决方案,我如何继续自己调试


似乎有一些斜杠(/)与引发的异常不一致。不过,我所做的一切似乎都无法解决这个问题

设置环境,一切都乱七八糟,正在开发的malt.py解决了这一问题,但仍有一些悬而未决的问题,请参阅注意,最新版本的NLTK已经很好地修补了此模块,请参阅try and just run“java-Xmx512m-jar C:/Python34/maltparser-1.8.1\malt.jar-w C:/Python34/maltparser-1.8.1-C engmalt.poly-1.7.mco-ic:\Python34\maltparser-1.8.1\malt_input.conllqgpbye-o C:\Python34\maltparser-1.8.1\malt_output.conllib1nx-m parse可能会说错误的jave版本,因为它应该是1.8或更高