无法预测表情符号的情绪

问题描述 投票:0回答:1

我试图用维达情绪分析工具[1]来预测facebook评论的情绪,但它无法预测表情符号的情绪,它在某些评论中起作用,而在其他一些评论中却没有。

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 Sentiment Analysis tool

python-3.x machine-learning utf-8 nltk sentiment-analysis
1个回答
1
投票

您的代码似乎没问题,但不是您的示例。如果您浏览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}

希望这能解决你的问题。

© www.soinside.com 2019 - 2024. All rights reserved.