vaderSentiment实现文本情感分析

vaderSentiment是一个基于词典和规则的英文情感分析工具,适用于社交媒体文本。它无需特征工程或训练模型,通过简单的Python代码即可进行情感分析,输出包括消极、中性和积极情绪的分数,以及复合情感得分。该库速度快,表现良好,且支持emoji,广泛应用于文本情感理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 引入

做文本情感分析(sentiment analysis),一般是需要自己标注数据,做特征工程,再训练模型,这样成本就很高。
当我们拿到一段文本,没有标注,也没有训练模型,有没有可能直接调用一个库来输出情感分析结果呢?

2. vaderSentiment介绍

vaderSentiment(参考1)是一个基于词典和规则的情感分析工具,作者专门对社交媒体信息做过调优,并在2014年发表过一篇文章(参考2),目前文章的引用量已经高达2680了(截止到20211105)。

vaderSentiment目前只支持英文,他的词典(参考3)中有7000多个词。

因为是基于词典和规则的分类器,所以并不需要特征工程、训练模型等步骤。而且作者再文章(参考2)中对多个数据集对比过SVM等分类器的结果,vaderSentiment表现还是很不错的。再加上目前github上对其关注量很大,所以给了我们比较高的信心直接拿来用。

除了支持python,vaderSentiment也支持Java, JS, C#等其他编程语言。

3. vaderSentiment使用

vaderSentiment这种基于词典和规则的原理,保证了他的运行速度很快,使用起来也很方便,只需要如下简单几行代码,就能得出结果。

from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
analyzer = SentimentIntensityAnalyzer()
vs = analyzer.polarity_scores('I like you')
print("{0}:{1}".format(sentence, str(vs)))
# Not bad at all:{'neg': 0.0, 'neu': 0.444, 'pos': 0.556, 'compound': 0.3612}

结果中,有4个label

  • neg: 表示消极情绪
  • neu: 表示中性情绪(就是没有情绪)
  • pos: 表示积极情绪
  • compound: 取值为-1到+1,-1表示最消极,+1表示最积极

如果只想用一个值来表示情绪,就用compound。

  • 积极情绪:compound >= 0.05
  • 中立情绪:(compound > -0.05) and (compound < 0.05)
  • 消极情绪:compound <= -0.05

目前vaderSentiment也支持emoji符号了,更多案例见参考4.

4. 总结

使用vaderSentiment,三行代码就能实现情感分析!

5. 参考

  1. project. https://github.com/cjhutto/vaderSentiment
  2. paper, http://comp.social.gatech.edu/papers/icwsm14.vader.hutto.pdf
  3. lexicon, https://github.com/cjhutto/vaderSentiment/blob/master/vaderSentiment/vader_lexicon.txt
  4. example, https://github.com/cjhutto/vaderSentiment#code-examples
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值