Я использую Stanford NLP v3.6 (JAVA) для вычисления настроения из английского предложения.Stanford NLP настроение неоднозначен результат
Стэнфорд NLP вычисляет полярность предложения от 0 до 4.
- -очень отрицательной
- 1 отрицательного
- 2 нейтрального
- 3 положительного
- -очень положительной
Я запускаю несколько очень простых тестовых примеров, но получил очень большую nge.
Пример:
- Текст = Jhon является хорошим человеком, Настроения = 3 (то есть положительным)
- Текст = Дэвид хороший человек, Настроения = 2 (т.е. нейтрального)
В приведенном выше примере предложения такие же, другие, что и имя David
, Jhon
, но значения настроений различны. Разве это не двусмысленность?
Я использовал этот Java код для вычисления настроения:
public static float calSentiment(String text) {
// pipeline must get initialized before proceeding further
Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, parse, sentiment");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
int mainSentiment = 0;
if (text != null && text.length() > 0) {
int longest = 0;
Annotation annotation = pipeline.process(text);
for (CoreMap sentence : annotation.get(CoreAnnotations.SentencesAnnotation.class)) {
Tree tree = sentence.get(SentimentCoreAnnotations.SentimentAnnotatedTree.class);
int sentiment = RNNCoreAnnotations.getPredictedClass(tree);
String partText = sentence.toString();
if (partText.length() > longest) {
mainSentiment = sentiment;
longest = partText.length();
}
}
}
if (mainSentiment > 4 || mainSentiment < 0) {
return -9999;
}
return mainSentiment;
}
ли я что-то в коде Java недостающее?
У меня также было отрицательное чувство (то есть менее 2), когда предложение было положительным и наоборот.
Спасибо.
Ниже приведены результаты, которые я получил с помощью простых английских предложений:
Sentence: Tendulkar is a great batsman
Sentiment: 3
Sentence: David is a great batsman
Sentiment: 3
Sentence: Tendulkar is not a great batsman
Sentiment: 1
Sentence: David is not a great batsman
Sentiment: 2
Sentence: Shyam is not a great batsman
Sentiment: 1
Sentence: Dhoni loves playing football
Sentiment: 3
Sentence: John, Julia loves playing football
Sentiment: 3
Sentence: Drake loves playing football
Sentiment: 3
Sentence: David loves playing football
Sentiment: 2
Sentence: Virat is a good boy
Sentiment: 2
Sentence: David is a good boy
Sentiment: 2
Sentence: Virat is not a good boy
Sentiment: 1
Sentence: David is not a good boy
Sentiment: 2
Sentence: I love every moment of life
Sentiment: 3
Sentence: I hate every moment of life
Sentiment: 2
Sentence: I like dancing and listening to music
Sentiment: 3
Sentence: Messi does not like to play cricket
Sentiment: 1
Sentence: This was the worst movie I have ever seen
Sentiment: 0
Sentence: I really appreciated the movie
Sentiment: 1
Sentence: I really appreciate the movie
Sentiment: 3
Sentence: Varun talks in a condescending way
Sentiment: 2
Sentence: Ram is angry he did not win the tournament
Sentiment: 1
Sentence: Today's dinner was awful
Sentiment: 1
Sentence: Johny is always complaining
Sentiment: 3
Sentence: Modi's demonetisation has been very controversial and confusing
Sentiment: 1
Sentence: People are left devastated by floods and droughts
Sentiment: 2
Sentence: Chahal did a fantastic job by getting the 6 wickets
Sentiment: 3
Sentence: England played terribly bad
Sentiment: 1
Sentence: Rahul Gandhi is a funny man
Sentiment: 3
Sentence: Always be grateful to those who are generous towards you
Sentiment: 3
Sentence: A friend in need is a friend indeed
Sentiment: 3
Sentence: Mary is a jubilant girl
Sentiment: 2
Sentence: There is so much of love and hatred in this world
Sentiment: 3
Sentence: Always be positive
Sentiment: 3
Sentence: Always be negative
Sentiment: 1
Sentence: Never be negative
Sentiment: 1
Sentence: Stop complaining and start doing something
Sentiment: 2
Sentence: He is a awesome thief
Sentiment: 3
Sentence: Ram did unbelievably well in this year's exams
Sentiment: 2
Sentence: This product is well designed and easy to use
Sentiment: 3
Я получаю аналогичные абсурдные результаты с версией 3.7.0 и Python. Я думаю, что это ошибка. – sds
См. Https://github.com/stanfordnlp/CoreNLP/issues/351 – sds