我正在研究斯坦福大学nlp情绪分析。我已经从一个博客尝试过此代码,但是我无法获得“正”或“负”之类的语句的情感价值或某些分数。
以下是代码。
public class SemanticAnalysis {
public static void main(String args[]) {
sentimentAnalysis sentiments = new sentimentAnalysis();
sentiments.findSentiment("Stanford University is located in California. " +
"It is a great university");
}
}
class sentimentAnalysis {
public String findSentiment(String line) {
Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, parse, sentiment");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
int mainSentiment = 0;
if (line != null && line.length() > 0) {
int longest = 0;
Annotation annotation = pipeline.process(line);
for (CoreMap sentence : annotation.get(CoreAnnotations.SentencesAnnotation.class)) {
Tree tree = sentence.get(SentimentCoreAnnotations.AnnotatedTree.class);
int sentiment = RNNCoreAnnotations.getPredictedClass(tree);
String partText = sentence.toString();
if (partText.length() > longest) {
mainSentiment = sentiment;
longest = partText.length();
}
}
}
if (mainSentiment == 2 || mainSentiment > 4 || mainSentiment < 0) {
return null;
}
return "";
}
}
最佳答案
您究竟希望这样做吗?您在那里的sentimentAnalysis
类仅处理情感并返回null
或""
,并且您没有使用该返回值做任何事情。此代码不会向用户提供任何反馈。
也许您应该在调试器中运行它或在其中抛出几个打印语句,以便您可以弄清楚它在做什么并找到合理的返回值。
您可以阅读大量文档以查找所需内容。如果API for the Stanford NLP library不能告诉您所有您需要知道的内容,我会感到惊讶。
关于java - 如何使用stanford nlp情感库获取诸如肯定或否定之类的情感陈述?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23493343/