Java Malt解析器引发类未找到异常
我正在尝试用NLTK中的Malt解析器解析句子。当我执行Java Malt解析器引发类未找到异常,java,python,nltk,Java,Python,Nltk,我正在尝试用NLTK中的Malt解析器解析句子。当我执行raw_parse(sent)时,它给出了一个退出代码1的错误。我在终端上执行了java命令,它给出了类NotFoundException,我不明白现在出了什么问题 java-Xmx1024m-jar/usr/local/bin/malt.jar-w/home/abc/maltparser-1.7.2-c engmalt.linear-1.7-i/home/abc/maltparser-1.7.2/malt_input.conllrPZgw
raw_parse(sent)
时,它给出了一个退出代码1的错误。我在终端上执行了java命令,它给出了类NotFoundException,我不明白现在出了什么问题
java-Xmx1024m-jar/usr/local/bin/malt.jar-w/home/abc/maltparser-1.7.2-c engmalt.linear-1.7-i/home/abc/maltparser-1.7.2/malt_input.conllrPZgwc-o/home/abc/maltparser-1.7.2/malt_output.conllDMSKpg-m parse
线程“main”java.lang.NoClassDefFoundError中出现异常:org/apache/log4j/Layout
您的工作目录设置不正确。Log4j是Malt解析器使用的包(请参阅:maltparser-1.7.2/lib/Log4j.jar)。用于逻辑记录 为了在NLTK中运行maltparser,应将工作目录设置为此文件夹(在您的情况下为:/home/abc/maltparser-1.7.2) 因此,第一步是从git获得最新的NLTK: git克隆 安装NLTK: sudo python setup.py安装 要使用NLTK运行Malt解析器,请尝试以下代码示例:
import os
import nltk
os.environ['MALTPARSERHOME']="/home/abc/maltparser-1.7.2"
verbose = False
maltParser = nltk.parse.malt.MaltParser(working_dir="/home/abc/maltparser-1.7.2",
mco="engmalt.linear-1.7",
additional_java_args=['-Xmx512m'])
print(maltParser.raw_parse('This is a test sentence', verbose=verbose).tree().pprint())
您可能会注意到,我使用的是预先学习的mco文件(engmalt.linear-1.7),可以从这里下载:
将此mco文件移动到:/home/abc/maltparser-1.7.2目录
最后,NLTK仅限于malt.jar之外。因此,创建一个副本(或重命名):
cp maltparser-1.7.2.jar malt.jar
它仍然可以位于/home/abc/maltparser-1.7.2.jar目录中
希望你能让它运行起来 您的工作目录设置不正确。Log4j是Malt解析器使用的包(请参阅:maltparser-1.7.2/lib/Log4j.jar)。用于逻辑记录 为了在NLTK中运行maltparser,应将工作目录设置为此文件夹(在您的情况下为:/home/abc/maltparser-1.7.2) 因此,第一步是从git获得最新的NLTK: git克隆 安装NLTK: sudo python setup.py安装 要使用NLTK运行Malt解析器,请尝试以下代码示例:
import os
import nltk
os.environ['MALTPARSERHOME']="/home/abc/maltparser-1.7.2"
verbose = False
maltParser = nltk.parse.malt.MaltParser(working_dir="/home/abc/maltparser-1.7.2",
mco="engmalt.linear-1.7",
additional_java_args=['-Xmx512m'])
print(maltParser.raw_parse('This is a test sentence', verbose=verbose).tree().pprint())
您可能会注意到,我使用的是预先学习的mco文件(engmalt.linear-1.7),可以从这里下载:
将此mco文件移动到:/home/abc/maltparser-1.7.2目录
最后,NLTK仅限于malt.jar之外。因此,创建一个副本(或重命名):
cp maltparser-1.7.2.jar malt.jar
它仍然可以位于/home/abc/maltparser-1.7.2.jar目录中
希望你能让它运行起来 请注意,最新版本的NLTK对该模块进行了很好的修补,请参阅。请注意,最新版本的NLTK对该模块进行了很好的修补,请参阅