我正在使用stanford-corenlp-3.4.1版本。我有问题,如果我们给出句子有多个句子,我该如何计算预测。
例如: String text =" IT是非常棒的体验。这是一种可怜的经历&#34 ;;
我正在预测
非常棒的体验:积极的。
这是一种悲观的经历:消极。
我正在根据每个句子级别进行预测。如何获得文档级别。
基于阅读总文本我需要得到正面或负面。
以下是示例代码:
Properties props = new Properties();
props.setProperty("annotators","tokenize, ssplit, pos, lemma, parse, sentiment");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
Annotation annotation = new Annotation("IT was very fantastic experience. it was a pathetice experience");
pipeline.annotate(annotation);
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);
}
结果:
非常积极:非常棒的经历。 否定这是一种可怜的经历
感谢
答案 0 :(得分:2)
据我所知,斯坦福NLP并未提供高于句子水平的情绪分析。一种解决方案是计算文本中所有句子的某种平均情绪值,但显然这只能让您大致了解整体情绪。
答案 1 :(得分:0)
Yvespeirsman走在正确的轨道上。您可以计算整个文档中术语的平均值。如果你将整个文件分解成句子然后计算每个句子的情绪并计算平均值,这应该让你对整个研究文档中关于该术语的情绪有一个很好的了解
我们使用可查看的源代码实现了他的实现:https://algorithmia.com/algorithms/nlp/SentimentByTerm