观察我们最近的调查回复。我认为这位受访者并不高兴。在这里,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)
谢谢,
答案 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的构造函数来覆盖分析器。