2015-05-05 24 views
0

我是standford-nlp API的新手。我正在嘗試使用斯坦福API進行感性分析,但它引發異常。請看下面的日誌。使用standford-nlp API進行感傷分析時的java.lang.NullPointerException

Adding annotator tokenize 
Adding annotator ssplit 
Adding annotator pos 
Reading POS tagger model from edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger ... done [1.4 sec]. 
Adding annotator lemma 
Adding annotator ner 
Loading classifier from edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz ... done [5.3 sec]. 
Loading classifier from edu/stanford/nlp/models/ner/english.muc.7class.distsim.crf.ser.gz ... done [2.3 sec]. 
Loading classifier from edu/stanford/nlp/models/ner/english.conll.4class.distsim.crf.ser.gz ... done [4.7 sec]. 
Adding annotator parse 
Loading parser from serialized file edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz ... done [1.1 sec]. 
Adding annotator dcoref 
Adding annotator sentiment 
Exception in thread "main" java.lang.NoClassDefFoundError: org/ejml/simple/SimpleBase 
    at edu.stanford.nlp.pipeline.SentimentAnnotator.<init> (SentimentAnnotator.java:48) 
    at edu.stanford.nlp.pipeline.StanfordCoreNLP$14.create(StanfordCoreNLP.java:850) 
    at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:81) 
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:262) 
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:129) 
    at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:125) 
    at io.stanford.NLP.findSentiment(NLP.java:30) 
    at io.stanford.TestStanford.main(TestStanford.java:8) 
Caused by: java.lang.ClassNotFoundException: org.ejml.simple.SimpleBase 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    ... 8 more 

回答

1

什麼是產生這種輸出的代碼?我強烈的懷疑是,您沒有在註釋器列表中包含「情感」註釋器,無論是在用於運行代碼的屬性文件中,還是已經傳遞到註釋管道中的屬性對象。如果不運行情感註釋器,文檔將不會附加情緒註釋,因此在嘗試檢索它們時會因此爲空指針。

+0

謝謝Gabor。 「情緒」註釋員失蹤。我加了這個,但現在我又有一個例外。請參閱編輯的問題。謝謝你提前 –

+0

謝謝Gabor。現在它工作正常 –

2

對於Stanford CoreNLP 3.5.2版本,應該有一個名爲ejml-0.23.jar的.jar文件,其中包含缺少的類;一定要把這個jar放到你的類路徑中,實際上你可能需要在你的類路徑中包含斯坦福CoreNLP 3.5.2的所有jar包!