stanford nlp核心出错

我下载了stanford nlp,当我运行他们网站上给出的代码时。

我在这行中收到错误:

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,我应该做一些配置吗? 请帮帮我吧!

我从你提供的链接下载了stanford-corenlp-2012-01-08.tgz。 使用7-zip我没有压缩它,发现另一个名为stanford-corenlp-2012-01-08的压缩文件,并再次使用7-zip解压缩。 内容如下所示: 在此处输入图像描述

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

  • 乔达-time.jar
  • 斯坦福大学corenlp-2011-12-27-models.jar
  • 斯坦福大学corenlp-2012-01-08.jar
  • xom.jar

jars到lib。 然后将项目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); } } 

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

在此处输入图像描述

它运行成功。

希望这会帮助你。

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

Tapas Bose的答案非常好,但对于当前版本(以及其他早期版本),您还需要包含另外两个.jar文件来消除错误:

  • ejml-0.23.jar
  • jollyday.jar

开发人员也在网站上更新了这些信息:

要使用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  ] -file  

你还需要添加xom.jar来构建路径。

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