Невозможно предсказать настроение смайликов - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь предсказать настроение комментария в Facebook, используя инструмент анализа настроений вейдера [1], но он не может предсказать настроение смайликов, он работает в некоторых комментариях, а в других - нет.

result=db.post.find() 
analyzer=SentimentIntensityAnalyzer()
for sentence in sentences:
    vs=analyzer.polarity_scores(sentence)
    print("{:-<65} {}".format(sentence,str(vs)))

выдержка из выходных данных -

I am rishav ?---------------------------------------------------- {'neg': 0.0, 'neu': 0.615, 'pos': 0.385, 'compound': 0.3612}
Woohooo?✌️------------------------------------------------------- {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound': 0.0}

Он работает на некоторых предложениях, но не на других, я перебираю из базы данных. Также, в некоторых случаях, когда я использую только 1 смайлик, он работает, но при использовании несколько раз, он не работает.

Как устранить эту ошибку?

[1]: Инструмент анализа настроений Vader !

1 Ответ

0 голосов
/ 11 марта 2019

Ваш код выглядит нормально, но не ваш пример. Если вы просматриваете код VADER, сначала он получает оценку каждого слова из своего словаря. Для этого предложение нарезается пробелами. В приведенном вами примере между смайликами нет пробелов, даже слов. Поэтому VADER считает это одним словом.

Вы можете проверить это, используя свой код

analyzer=SentimentIntensityAnalyzer()

sentences = ["Woohooo?✌️", "Woohooo ? ✌️"]

for sentence in sentences:
    vs=analyzer.polarity_scores(sentence)
    print("{:-<65} {}".format(sentence,str(vs)))

Вывод:

Woohooo?✌️------------------------------------------------------- {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound': 0.0}
Woohooo ? ✌️----------------------------------------------------- {'neg': 0.0, 'neu': 0.446, 'pos': 0.554, 'compound': 0.7351}

Надеюсь, это решит вашу проблему.

...