【问题标题】:Error in Stanford CoreNLP: java.lang.NoClassDefFoundError斯坦福 CoreNLP 中的错误:java.lang.NoClassDefFoundError
【发布时间】:2012-03-02 04:40:10
【问题描述】:

我下载了 Stanford CoreNLP,并在运行 website 中给出的代码时。我在这一行得到一个错误

StanfordCoreNLP pipeline = new StanfordCoreNLP(props);

报错如下

Exception in thread "main" java.lang.NoClassDefFoundError: nu/xom/Node at sample1.main(sample1.java:35)
Caused by: java.lang.ClassNotFoundException: nu.xom.Node
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more

我使用 Eclipse IDE,我应该做一些配置吗?请帮帮我!

【问题讨论】:

  • 你的类路径设置正确了吗?
  • 我尝试了另一个不使用 stanfordcorenlp 类的程序 .. 但是导入 import edu.stanford.nlp.ling.*;效果很好。我不明白出了什么问题。 :(

标签: java stanford-nlp


【解决方案1】:

我已从您提供的链接下载了 stanford-corenlp-2012-01-08.tgz。使用 7-zip 我解压了它,找到了另一个名为 stanford-corenlp-2012-01-08 的压缩文件,并再次使用 7-zip 解压它。内容如下图:

然后我在eclipse中创建了一个新的Java项目,并在该项目中创建了一个新的文件夹lib并放

  • joda-time.jar
  • stanford-corenlp-2011-12-27-models.jar
  • stanford-corenlp-2012-01-08.jar
  • xom.jar

jar 到库中。然后将项目 Java Build Path 设置为这些 jar。

接下来我用 main 方法创建了一个测试类。

import java.util.Properties;

import edu.stanford.nlp.pipeline.StanfordCoreNLP;


public class NLP {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
        StanfordCoreNLP coreNLP = new StanfordCoreNLP(props);
    }

}

最后运行应用程序。输出如下图所示:

运行成功。

希望这会对你有所帮助。

【讨论】:

  • 谢谢搞定了!但是说堆溢出,所以我将其简化为 props.put("annotators", "tokenize, ssplit, pos, lemma") 并且它有效! :)
  • 使用这个 API 的机器最好有 8GB 内存和 64 位操作系统。
【解决方案2】:

我在使用 stanford-corenlp-full-2014-10-31 时遇到了同样的问题。

Tapas Bose 的回答非常好,但是对于这个当前版本(可能还有其他更早的版本),您还需要包含另外两个 .jar 文件以消除错误:

  • ejml-0.23.jar
  • jollyday.jar

开发人员也在website 上更新了此信息:

要使用 Stanford CoreNLP 处理一个文件,请使用以下命令行(将 JAR 文件的日期扩展名调整为您下载的版本):

java -cp stanford-corenlp-VV.jar:stanford-corenlp-VV-models.jar:xom.jar:joda-time.jar:jollyday.jar:ejml-VV.jar -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP [ -props <YOUR CONFIGURATION FILE> ] -file <YOUR INPUT FILE>

【讨论】:

    【解决方案3】:

    您还需要将 xom.jar 添加到构建路径。

    【讨论】:

      【解决方案4】:

      请在您的库中包含 ejml-0.23.jar。

      【讨论】:

        猜你喜欢
        • 2012-02-03
        • 2019-03-17
        • 2012-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多