2014-04-14 19 views
6

Tôi đang cố gắng triển khai máy phân tích tâm lý coreNLP trong nhật thực. Nhận được lỗi:Ý kiến ​​của Stanford CoreNLP

Unable to resolve "edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz" 

Là đường dẫn lớp, tên tệp hoặc URL. Tôi đã cài đặt tất cả các tập tin NLP bằng cách sử dụng maven vì vậy tôi không chắc chắn tại sao nó đang tìm kiếm cái gì khác. Đây là mã tôi nhận được lỗi trên.

import java.util.Properties; 


import edu.stanford.nlp.ling.CoreAnnotations; 
import edu.stanford.nlp.neural.rnn.RNNCoreAnnotations; 
import edu.stanford.nlp.pipeline.Annotation; 
import edu.stanford.nlp.pipeline.StanfordCoreNLP; 
import edu.stanford.nlp.sentiment.SentimentCoreAnnotations; 
import edu.stanford.nlp.trees.Tree; 
import edu.stanford.nlp.util.CoreMap; 

public class StanfordSentiment { 


StanfordCoreNLP pipeline; 



public StanfordSentiment(){ 
    Properties props = new Properties(); 
    props.setProperty("annotators", "tokenize, ssplit, parse, sentiment"); 

    pipeline = new StanfordCoreNLP(props); 


} 

public float calculateSentiment (String text) { 


     float mainSentiment = 0; 

     int longest = 0; 
     Annotation annotation = pipeline.process(text); 
     for (CoreMap sentence : annotation.get(CoreAnnotations.SentencesAnnotation.class)) { 
      Tree tree = sentence.get(SentimentCoreAnnotations.AnnotatedTree.class); 
      int sentiment = RNNCoreAnnotations.getPredictedClass(tree) - 2; 
      String partText = sentence.toString(); 
      if (partText.length() > longest) { 
       mainSentiment = sentiment; 
       longest = partText.length(); 
      } 

     } 

     return mainSentiment; 



} 
} 
+6

Hóa ra tôi cần phải thêm stanford-corenlp-3.3.1-models.jar vào buildpath và nó làm việc. –

Trả lời

6
public class SentimentAnalysis { 

    public static void main(String[] args) throws IOException { 
     String text = "I am very happy"; 
     Properties props = new Properties(); 
     props.setProperty("annotators", 
       "tokenize, ssplit, pos, lemma, parse, sentiment"); 
     StanfordCoreNLP pipeline = new StanfordCoreNLP(props); 

     Annotation annotation = pipeline.process(text); 
     List<CoreMap> sentences = annotation 
       .get(CoreAnnotations.SentencesAnnotation.class); 
     for (CoreMap sentence : sentences) { 
      String sentiment = sentence 
        .get(SentimentCoreAnnotations.ClassName.class); 
      System.out.println(sentiment + "\t" + sentence); 
     } 
    } 
} 

Hy vọng nó sẽ giúp .. :)

Các vấn đề liên quan