title: Incorrect output while using Stanford CoreNLP Sentiment Analysis
body: <p>When I input the sentence : </p>
  
  <blockquote>
    <p>"So excited to be back! We're here to reconnect with &amp; meet new
    innovators at ghc16"</p>
  </blockquote>
  
  <p>Then the sentiment returned is negative. Can't understand the reason why this is happening. The statement is positive but it still returns negative value.</p>
  
  <pre><code>    class SentimentAnalyzer {
  
          public TweetWithSentiment findSentiment(String line) {
  
          if(line == null || line.isEmpty()) {
            throw new IllegalArgumentException("The line must not be null or empty.");
          }
  
          Annotation annotation = processLine(line);
  
          int mainSentiment = findMainSentiment(annotation);
  
          if(mainSentiment &lt; 0 || mainSentiment &gt; 4) { //You should avoid magic numbers like 2 or 4 try to create a constant that will provide a description why 2
             return null; //You should avoid null returns 
          }
  
          TweetWithSentiment tweetWithSentiment = new TweetWithSentiment(line, toCss(mainSentiment));
          return tweetWithSentiment;
  
      }
  
      private String toCss(int sentiment) {
          switch (sentiment) {
          case 0:
              return "very negative";
          case 1:
              return "negative";
          case 2:
              return "neutral";
          case 3:
              return "positive";
          case 4:
              return "very positive";
          default:
              return "default";
          }
  
       }
  
  
       private int findMainSentiment(Annotation annotation) {
  
          int mainSentiment = Integer.MIN_VALUE;
          int longest = Integer.MIN_VALUE;
  
  
          for (CoreMap sentence : annotation.get(CoreAnnotations.SentencesAnnotation.class)) {
  
              for (CoreLabel token : sentence.get(CoreAnnotations.TokensAnnotation.class)) {
  
                  String word = token.get(CoreAnnotations.TextAnnotation.class);
                  String pos = token.get(CoreAnnotations.PartOfSpeechAnnotation.class);
                  String ne = token.get(CoreAnnotations.NamedEntityTagAnnotation.class);
                  String lemma = token.get(CoreAnnotations.LemmaAnnotation.class);
  
                  System.out.println("word: " + word);
                  System.out.println("pos: " + pos);
                  System.out.println("ne: " + ne);
                  System.out.println("Lemmas: " + lemma);
  
              }      
  
             int sentenceLength = String.valueOf(sentence).length();
  
             if(sentenceLength &gt; longest) {
  
               Tree tree = sentence.get(SentimentCoreAnnotations.SentimentAnnotatedTree.class);
  
               mainSentiment = RNNCoreAnnotations.getPredictedClass(tree);
  
               longest = sentenceLength ;
  
              }
          }
  
          return mainSentiment;
  
       }
  
  
       private Annotation processLine(String line) {
  
          StanfordCoreNLP pipeline = createPieline();
  
          return pipeline.process(line);
  
       }
  
       private StanfordCoreNLP createPieline() {
  
          Properties props = createPipelineProperties();
  
          StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
  
          return pipeline;
  
       }
  
       private Properties createPipelineProperties() {
  
          Properties props = new Properties();
          props.setProperty("annotators", "tokenize, ssplit, pos, lemma, ner, parse, sentiment");
  
          return props;
  
       }
  
  
   }
  </code></pre>