斯坦福的CoreNLP情绪分析工具有多快?

时间:2015-12-12 07:09:00

标签: stanford-nlp text-mining sentiment-analysis

  1. 我试图找出在大小相当于大约100万次IMDB评论的数据集上使用CoreNLP情绪分析工具(http://nlp.stanford.edu/sentiment/code.html)是否可行。< / LI>

    我无法在网上找到任何关于平均时间的绝对指标。如果有人能指出我关于速度的这些统计数据,我将不胜感激。

    1. 此外,我正在尝试 - 通过单独使用文本,即通过总结评论中每个句子的分数来查看是否可以估算电影评级。我的想法或下面的代码片段中的任何内容看起来都很愚蠢(应该做得更好)?我觉得我可能会使用这个工具来做一些它不适合的事情,或者我做错了。

      public static double getTextSentimentScore(String text){
      Annotation annotation = pipeline.process(text);
      double sum = 0;
      List<CoreMap> sentences = (List<CoreMap>) annotation.get(CoreAnnotations.SentencesAnnotation.class);
      int i = 0;
      for (CoreMap sentence : sentences) {
          String sentiment = sentence.get(SentimentCoreAnnotations.SentimentClass.class);
          int sentimentScore = 0;
          if (sentiment.equals("Very positive"))
              sentimentScore = 5;
          if (sentiment.equals("Positive"))
              sentimentScore = 4;
          if (sentiment.equals("Neutral"))
              sentimentScore = 3;
          if (sentiment.equals("Negative"))
              sentimentScore = 2;
          if (sentiment.equals("Very negative"))
              sentimentScore = 1;
          sum += sentimentScore;
          System.out.println(sentiment + "\t" + sentimentScore);
      }
      return (sum/sentences.size());
      

      }

1 个答案:

答案 0 :(得分:2)

如果您运行此命令:

java -Xmx5g -cp "stanford-corenlp-full-2015-12-09/*" edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,parse,sentiment -filelist list-of-sample-docs.txt

最终输出将为您提供时间信息

所以你要做的就是:

  1. 进行100次IMDB评论,将其放入名为imdb_review_1,imdb_review_2等的文件中......

  2. 将每个文件名的每行放入list-of-sample-docs.txts

  3. 运行该命令,最终输出将显示每个注释器的总时间和总时间