情感分析工具测评

情感分析

情感倾向分析针对带有主观描述的中文文本,可自动判断该文本的情感极性类别并给出相应的置信度。情感类型分为积极、消极、中性。情感倾向分析能够帮助企业理解用户消费习惯、分析热点话题和危机舆情监控,为企业提供有力的决策支持。本文主要对两个情感分析的工具进行测评。

SnowNLP

是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。
SnowNLP还提供了用于中文情感分类的接口,分类器主要基于淘宝评论数据用机器学习训练而成,使用起来非常方便。

  • 如何安装
pip install snownlp
  • 如何进行情感分析
from snownlp import SnowNLP
s = SnowNLP(u'这个东西真心很赞')
s.sentiments # 0.9769663402895832 positive的概率

Senta

百度在2018年7月开源了其基于语义和大数据的情感分类系统——Senta,将模型和源码通过Github进行免费技术开放。如果觉得拿模型跑太麻烦,百度AI开放平台上也免费开放了评论观点抽取服务,直接调用其api就能够实现情感分类,能够实现快速的原型开发。

  • 安装
pip install paddlepaddle
pip install paddlehub
  • 如何进行情感分析
import paddlehub as hub
senta = hub.Module(name= "senta_bilstm")#也可以加载其它分类模型,如gru,lstm等
result = senta.sentiment_classify(data={
     "text":["这个东西真心很赞"]})
result
#[{'text': '这个东西真心很赞', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.9963, 'negative_probs': 0.0037}]

结果分析

对上述两个分类器进行多次测试,有以下结果:
情感分析工具测评_第1张图片可以发现,SnowNLP的分类结果偏正向,而Senta的分类结果偏负向,因此,对于具体的业务数据,是否以0.5为分类界限还有待商榷。

另外,以上使用仅仅为单纯调用,可在此基础上优化,比如去除一些无情感的词语(停用词,情感无关的名词等);更进一步地,若文本过长,还可以考虑提取关键词或抽取文本摘要后再进行情感分析。

你可能感兴趣的:(自然语言处理,人工智能,深度学习,情感分析,自然语言处理,人工智能,机器学习,深度学习)