2014-04-14 15 views
6

Sto cercando di implementare l'analizzatore di sentimento coreNLP in eclissi. Ottenere l'errore:Stanford CoreNLP sentimento

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

Come percorso classe, nome file o URL. Ho installato tutti i file NLP usando Maven, quindi non sono sicuro del motivo per cui sta cercando qualcos'altro. Ecco il codice su cui sto ottenendo l'errore.

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

Risulta avevo bisogno di aggiungere la Stanford-corenlp-3.3.1-models.jar sul buildpath e ha funzionato. –

risposta

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

auguro che possa aiutare .. :)

Problemi correlati