Ty *_*ten 1 python nltk python-2.7 textblob
查看我们最近所做的一项调查的回应。我认为这位受访者并没有那么高兴。在这里,TextBlob 会让我相信他的情绪已经达到了积极的上限。如果我从字符串情绪分数中删除“最佳”这个词,它就会变成“0”。
你能帮我重新灌输我的信任是 TextBlob,我在这个非常简单的应用程序中做错了什么?
a = "Follow on rounds for the best prospects. Some choke to death now."
b = TextBlob(a)
print b.sentiment
Run Code Online (Sandbox Code Playgroud)
情感(极性=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)
Run Code Online (Sandbox Code Playgroud)
对于您的示例(我个人认为这不是一个好的示例,即使对人类来说也令人困惑),结果如下:
Sentiment(classification='pos', p_pos=0.5730186699265399, p_neg=0.42698133007345906)
它仍然是正数,但您可以看到 pos 和 neg 分数之间的差异。对我来说,它在大多数情况下都是成功的,相关且有意义的句子。
有关代码更改内容的说明,请参见下文:
textblob.sentiments 模块包含两个情感分析实现,PatternAnalyzer(基于模式库)和 NaiveBayesAnalyzer(在电影评论语料库上训练的 NLTK 分类器)。
默认实现是 PatternAnalyzer,但您可以通过将另一个实现传递到 TextBlob 的构造函数来覆盖分析器。
| 归档时间: |
|
| 查看次数: |
2224 次 |
| 最近记录: |