查看最近一次调查的反馈,我们做到了。我认为这个受访者并不高兴。在这里,TextBlob让我相信他的情绪已经达到了积极的极限。如果我从字符串中删除单词“ best”,则情感得分将变为“ 0”。

您是否会帮助我重新建立对TextBlob的信任,在这个非常简单的应用程序中我在做什么错?

a = "Follow on rounds for the best prospects. Some choke to death now."
b = TextBlob(a)
print b.sentiment


情绪(极性= 1.0,主观= 0.3)

谢谢,

最佳答案

您需要了解,即使学习了很少的东西,机器也不是人类。声明:“为最好的前景而努力。现在有些窒息而死。”甚至对于人类来说,也难以识别情绪,因为第一和第二陈述之间似乎没有联系或几乎没有联系。

此外,您可能还会看到许多其他真实情况,其中极性与某些非常明显的事物相反。如果您需要处理许多此类情况,则可以使用以下代码来显着改善结果。

from textblob import TextBlob
from textblob.sentiments import NaiveBayesAnalyzer
a = "Follow on rounds for the best prospects. Some choke to death now."
b = TextBlob(a, analyzer=NaiveBayesAnalyzer()))
print(b.sentiment)


对于您的示例(我个人认为这不是一个很好的示例,甚至对于人类来说也令人困惑),结果如下:
Sentiment(classification='pos', p_pos=0.5730186699265399, p_neg=0.42698133007345906)

它仍然是积极的,但您可以看到pos分数和neg分数之间的差异。对我而言,大多数情况下,通过有意义且有意义的句子,它是成功的。

有关代码更改的说明,请参见以下内容:


  textblob.sentiments模块包含两个情感分析实现,PatternAnalyzer(基于模式库)和NaiveBayesAnalyzer(经过电影评论语料库训练的NLTK分类器)。
  
  默认实现是PatternAnalyzer,但是您可以通过将另一个实现传递给TextBlob的构造函数来覆盖分析器。

关于python - TextBlob,完全不准确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43590397/

10-10 19:10