2012-03-02 133 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。