VADER polar_scores在大多数情况下以“ Neutral”返回输出

时间:2019-07-25 12:38:19

标签: python nlp sentiment-analysis vader

在大多数情况下,我发现polarity_scores返回的输出为“ Neutral”,而应该突出显示一定百分比的负面和正面情绪,例如考虑以下情况,对于下面提到的所有3种情况,我发现{'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound': 0.0}

  • 情况1:续约经理完全没有资格胜任工作
  • 情况2:John在提供信息和建立协作会议方面非常透明并且非常勤奋
  • 情况3:“仍然无法访问所订购的产品。自签署文档以来已经有一个多星期了”

代码:

    from nltk.sentiment.vader import SentimentIntensityAnalyzer
    sid = SentimentIntensityAnalyzer()
    a = "Our sales representative, Tom, was very attentive to our needs."
    sid.polarity_scores(a)

输出:

{'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound': 0.0}

我希望上面的例子突出显示一定百分比的负面和正面情绪,而不是'neu'= 1.0和'compound'= 0.0。

有人可以建议如何获得与给定文本字符串的实际情绪匹配的更好结果吗?如果它们比Vader更好,我愿意探索其他库或软件包。

感谢您的咨询。

1 个答案:

答案 0 :(得分:0)

Vader是一个基于词典的情感分析库。在您提到的句子中,唯一不中立的单词是“专心”,但正如您在此处看到的:https://github.com/cjhutto/vaderSentiment/blob/master/vaderSentiment/vader_lexicon.txt单词中未包含“专心”一词,这就是为什么它表示您的句子是中立的。