TextBlob,完全不准确

时间:2017-04-24 14:11:16

标签: python python-2.7 nltk textblob

观察我们最近的调查回复。我认为这位受访者并不高兴。在这里,TextBlob会让我相信他的情绪达到了正面上限。如果我从字符串情感分数中删除“最佳”一词,则转为“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)

谢谢,

1 个答案:

答案 0 :(得分:3)

你需要明白机器,即使在学习了很少的东西之后,也不是人。声明“关注最好的前景。现在有些人会窒息死亡。”甚至让人类识别情绪也有点混乱,因为第一和第二陈述之间的关系似乎较少或没有。

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

def DrawCircle():
glBegin(GL_POINTS)
for i in range(0,300,10):
    angle = 2 * 3.14 * i / 300
    x = cos(angle)
    y = sin(angle)
    glVertex3d(x, y, 0)
glEnd()

对于你的例子(我个人认为这不是一个好人,甚至对人类来说都很困惑),结果如下:
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)

它仍然是积极的,但你可以看到pos和neg分数之间的差异。对我而言,大部分时间都是相关的&有意义的句子。

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

  

textblob.sentiments模块包含两个情感分析实现,PatternAnalyzer(基于模式库)和NaiveBayesAnalyzer(一个在电影评论语料库中训练的NLTK分类器)。

     

默认实现是PatternAnalyzer,但您可以通过将另一个实现传递给TextBlob的构造函数来覆盖分析器。