按照这个例子 这里 你需要运行情绪分析。
java -cp "*" -mx5g edu.stanford.nlp.sentiment.SentimentPipeline -file input.txt
显然这是一个内存昂贵的操作,它可能不完整只有1千兆字节。 然后你可以使用“评估工具”
java -cp "*" edu.stanford.nlp.sentiment.Evaluate edu/stanford/nlp/models/sentiment/sentiment.ser.gz input.txt
这对我来说很好 -
Maven依赖:
<dependency> <groupId>edu.stanford.nlp</groupId> <artifactId>stanford-corenlp</artifactId> <version>3.5.2</version> <classifier>models</classifier> </dependency> <dependency> <groupId>edu.stanford.nlp</groupId> <artifactId>stanford-corenlp</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>edu.stanford.nlp</groupId> <artifactId>stanford-parser</artifactId> <version>3.5.2</version> </dependency>
Java代码:
public static void main(String[] args) throws IOException { String text = "This World is an amazing place"; Properties props = new Properties(); props.setProperty("annotators", "tokenize, ssplit, pos, lemma, parse, sentiment"); StanfordCoreNLP pipeline = new StanfordCoreNLP(props); Annotation annotation = pipeline.process(text); List<CoreMap> sentences = annotation.get(CoreAnnotations.SentencesAnnotation.class); for (CoreMap sentence : sentences) { String sentiment = sentence.get(SentimentCoreAnnotations.SentimentClass.class); System.out.println(sentiment + "\t" + sentence); } }
结果:
非常积极这个世界是一个了不起的地方
您需要将“情绪”注释器添加到注释器列表中:
-annotators tokenize,ssplit,pos,lemma,parse,sentiment
这将为XML中的每个句子节点添加“情绪”属性。
您可以在代码中执行以下操作:
String text = "I am feeling very sad and frustrated."; Properties props = new Properties(); props.setProperty("annotators", "tokenize, ssplit, pos, lemma, parse, sentiment"); StanfordCoreNLP pipeline = new StanfordCoreNLP(props); <...> Annotation annotation = pipeline.process(text); List<CoreMap> sentences = annotation.get(CoreAnnotations.SentencesAnnotation.class); for (CoreMap sentence : sentences) { String sentiment = sentence.get(SentimentCoreAnnotations.SentimentClass.class); System.out.println(sentiment + "\t" + sentence); }
它将打印句子和句子本身的情绪,例如: “我感到非常伤心和沮丧。”:
Negative I am feeling very sad and frustrated.