2012-03-02 132 views
4

我下载了斯坦福nlp,当我运行在他们的website给出的代码。斯坦福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,我应该做一些配置?请帮助我吧!

+0

您是否正确设置了类路径? – 2012-03-02 04:43:47

+0

是的。它是正确的。 – CTsiddharth 2012-03-02 05:25:59

+0

我试过另一个不使用stanfordcorenlp类的程序..但是导入import edu.stanford.nlp.ling。*;这工作正常。我不明白哪里出了问题。 :( – CTsiddharth 2012-03-02 06:04:06

回答

29

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

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

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

罐到lib。然后将项目Java Build Path设置为这些罐子。

enter image description here

接着我创建了一个测试类主要方法。

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); 
    } 

} 

最后运行应用程序。下面的输出描述:

enter image description here

它成功运行。

希望这会帮助你。

+0

感谢它做到了!但说堆溢出,所以我把它减少到props.put(“annotators”,“tokenize,ssplit,pos,引理”),它的工作原理!:) – CTsiddharth 2012-03-02 09:40:08

+3

如果您发现我的答案有用,请upvote它。 – 2012-03-02 10:07:41

+0

对于使用此API,具有8GB内存和64位操作系统的机器是最佳选择。 – 2012-03-02 10:24:30

1

我有同样的问题,使用stanford-corenlp-full-2014-10-31

小吃Bose的答案是非常好的,但对于这个最新的版本(也许其他更早的),你还需要包括另外两个.jar文件摆脱错误的:

  • ejml-0.23的.jar
  • jollyday.jar

开发者更新了这个信息对website,太:

To process one file using Stanford CoreNLP, use the following sort of command line (adjust the JAR file date extensions to your downloaded release):

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> 
0

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

0

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