当前位置: 首页 > 知识库问答 >
问题:

Malt解析器抛出未找到类异常

方安怡
2023-03-14

我正在尝试用NLTK中的Malt Parser解析句子。当我执行raw_parse(发送)时,它给出了一个错误,退出代码为1。我在终端上执行了java命令,它给出了“未找到”类异常,我不明白现在是怎么了?

java-Xmx1024m-jar/usr/local/bin/malt。jar-w/home/abc/maltparser-1.7.2-c engmalt.linear-1.1-i/home/abc/martparser-1.7.2/malt_input。conllrPZgwc-o/home/abc/maltparser-1.7.2/malt_output。conllDMSKpg-m线程“main”java.lang.NoClassDefFoundError中的解析异常:org/apache/log4j/Layout

共有1个答案

徐皓君
2023-03-14

您的工作目录设置不正确。Log4j 是麦芽解析器使用的软件包(参见:麦芽解析器-1.7.2/lib/log4j.jar)。用于逻辑日志记录。

为了在 NLTK 中运行麦芽分析器,工作目录应设置为此文件夹(在您的情况下:/home/abc/麦芽分析器-1.7.2)。

因此,第一步是从git获取最新的NLTK:

git克隆https://github.com/nltk/nltk.git

安装NLTK:

苏多蟒蛇 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),可以从这里下载:http://www.maltparser.org/mco/english_parser/engmalt.html

将此mco文件移动到/home/abc/maltparser-1.7.2目录。

最后NLTK只除了malt.jar.所以创建一个副本(或重命名):

麦芽芝麻-1.7.2.jar麦芽.jar

它仍然可以位于您的 /home/abc/maltparser-1.7.2.jar目录中。

希望你能让它运行起来!

 类似资料:
  • 我有一个包含OClass对象的列表。我想创建这个对象的JSON。下面是我的代码: com.fasterxml.jackson.databind.jsonMappingException:未发现用于com.ontotext.trree.owlim_ext.r类的序列化程序,也未发现用于创建BeanSerializer的属性(为了避免异常,禁用serializationconfig.serializa

  • 我正在尝试用jackson SAX解析器实现JSON数组迭代器(请不要问为什么)。我的应用程序应该处理巨大的文件(高达5 MiB),这是一个问题。 这就是我初始化JsonParser和调用迭代器创建的方式。我创建了InputStream,使用放在\raw文件夹中的JSON初始化。 这是我的迭代器类。 它似乎运转良好...哦,等等。 我在某个巨大的文件中有3个部分(命名数组)。它首先成功解析(一个很

  • 问题内容: 在Grails中,我可以在 BootStrap的 内存dataSource中创建到H2的域对象,并使结果恢复正常,但是一旦应用启动(例如,从GSP或控制器查询),然后尝试运行查询,我得到以下信息: 我已经清理了构建 运行Grails 2.0.0 我有多个SQL Server DB的数据源,这些数据源仅对StoredProcedures进行了调用,现在发现了一个用例,它使用良好的旧Dom

  • 问题内容: 我试图在Netbeans中重构一个大型程序,但我有点迷茫。我从来没有非常模块化,但是现在通过实际学习如何做到这一点来尝试纠正这种情况,并在将来纠正这种情况。不幸的是,我在将某些教程翻译成我的程序时遇到了麻烦。所以我希望这里有人可以帮忙。目前,我正在尝试分解一部分采用特定格式的文件并制成表格的代码。我知道我需要创建一个类并使用它来创建表对象,但是我不确定如何做。我有一个主文件,用于获取文

  • 问题内容: 我从这篇博客文章中获得了帮助: 但是我发现com.mysql.jdbc.driver类未找到异常。那篇博客文章的不同之处在于,在我的案例中,他们尝试连接到mysql而不是MS SQL。到目前为止,这是我的代码:package com.example.dbtry; 请告诉我我在做什么错。我还在清单中添加了对Internet的许可。 问题答案: 从以下位置下载jar:http://www.

  • 我在将Web应用程序部署到WebLogic服务器12c时遇到问题。Web应用程序依赖于服务jar(内部依赖于Hibernate类)。当我构建战争时,它不包括Web应用程序的WEB-INF/lib/文件夹中的hibernate-entitymanager.jar,并且它的部署失败,例外是“ClassNotFoundExceptionorg.hibernate.ejb.HibernatePeraxy”