python做情感分析【中、英文都有】

对于英文的情感分析

基于TextBlob包

from textblob import TextBlob

text = "I am happy today. I feel sad today."
blob = TextBlob(text)
blob
# 运行结果
# TextBlob("I am happy today. I feel sad today.")

blob.sentences
# [Sentence("I am happy today."), Sentence("I feel sad today.")]

对第一句话的情感分析,说明一下,情感极性的变化范围是[-1, 1],-1代表完全负面,1代表完全正面。

blob.sentences[0].sentiment
# Sentiment(polarity=0.8, subjectivity=1.0)
# 情感极性0.8,主观性1.0。

对第一句话的情感分析:

blob.sentences[1].sentiment
# Sentiment(polarity=-0.5, subjectivity=1.0)

还可以让TextBlob综合分析出整段文本的情感:

blob.sentiment
# Sentiment(polarity=0.15000000000000002, subjectivity=1.0)

不同极性的词,在数值上是有区别的。我们应该可以找到比“沮丧”更为负面的词汇。而且这也符合逻辑,谁会这么“天上一脚,地下一脚”矛盾地描述自己此时的心情呢?

对于中文的情感分析

基于SnowNLP包

from snownlp import SnowNLP

text = "我今天很快乐。我今天很愤怒。"
s = SnowNLP(text)
s.sentences
# ['我今天很快乐', '我今天很愤怒']

第一句的情感分析结果:

SnowNLP(s.sentences[0]).sentiments
# 0.971889316039116

第二句的情感分析结果:

SnowNLP(s.sentences[1]).sentiments
# 0.07763913772213482

这里你肯定发现了问题——“愤怒”这个词表达了如此强烈的负面情感,为何得分依然是正的?

这是因为SnowNLP和textblob的计分方法不同。SnowNLP的情感分析取值,表达的是“这句话代表正面情感的概率”。也就是说,对“我今天很愤怒”一句,SnowNLP认为,它表达正面情感的概率很低很低。

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值