[英]Stanford Sentiment Analysis is biased towards negative?
我正在对现有的情绪分析器应用程序进行一些研究。 我目前正在查看Stanford CoreNlp /情感分析3.8.0,我在测试数据中注意到的预测似乎偏向负面。 这是一些负面的例子:
我检查了一下,只有一种可能的模型可以使用(因此,我认为没有任何方法可以推动使用-我不想训练模型)。 我可以使用其他/更好的(也许是?)POS,这可能会给我带来不同的预测,但是由于我读到的有关斯坦福图书馆的所有博客/评论都是积极的,而我的结果却很糟糕,我对此感到有些困惑。 我想念什么吗?
编码:
Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, parse, sentiment");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
Annotation document = pipeline.process(text);
pipeline.annotate(document);
List<CoreMap> sentences = document.get(CoreAnnotations.SentencesAnnotation.class);
int mainSentiment=0; int longest = 0;
SimpleMatrix matrix = null;
for (CoreMap sentence : sentences) {
String s_sentiment = sentence.get(SentimentCoreAnnotations.SentimentClass.class);
Tree tree = sentence
.get(SentimentCoreAnnotations.SentimentAnnotatedTree.class);
int sentiment = RNNCoreAnnotations.getPredictedClass(tree);
matrix = RNNCoreAnnotations.getPredictions(tree);
System.out.println(sentence);
System.out.println(sentiment + "-" +s_sentiment + "\t" + matrix.elementMaxAbs());
}
分数的可能值:0非常负1负2中性3正4非常正
如果您在生产应用程序中使用此库,您是否发现可靠的结果以推动执行该库?
首先,从3.3.1
版本开始,不仅有一个模型作为参数传递给optioniment.model选项 ,还传递了两个模型(遗憾的是,似乎在网站上的任何地方都没有提到):
edu/stanford/nlp/models/sentiment/sentiment.ser.gz
edu/stanford/nlp/models/sentiment/sentiment.binary.ser.gz
这不是标准模型集的一部分,而是其他models-english
模型 ; 为了使用它,您需要获取它,可以做一些更好的记录。 适当的Maven工件依赖关系为
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>${stanford-corenlp.version}</version>
<classifier>models-english</classifier>
<scope>runtime</scope>
</dependency>
正如在描述他们的2013纸 ,他们用电影的语料库审查,以建立自己的模型(一个或多个),这是非常可能的,这个数据是次优的分析你的语言的类型:例如, 找好得尽管这是一个相对普遍的名词,但他们的语料库中的拒绝根本没有任何结果 。
我本人也曾尝试使用其预先训练的模型来分析对话语言,其结果也不错,但也并不令人惊讶:创建正负模式列表并在我的文本中寻找它们的准确性是与使用情绪分析器没有太大区别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.