情感分析(Sentiment analysis,SA),又称倾向性分析、意见抽取(Opinion extraction)、意见挖掘(Opinion mining)、情感挖掘(Sentiment mining)、主观分析(Subjectivity analysis)
情感分析是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程
情感分析的目的是为了找出说话者/作者在某些话题上或者针对一个文本两极观点的态度。这个态度或许是他或她的个人判断或是评估,也许是他当时的情感状态(就是说,作者在做出这个言论时的情绪状态),或是作者有意向的情感交流(就是作者想要读者所体验的情绪)
文本情感分析的应用非常广泛,如网络舆情风险分析,信息预测等。如通过Twitter用户情感预测股票走势,电影票房、选举结果等,均是将公众情绪与社会事件对比,发现一致性,并用于预测
首先安装SnowNLP中文情感分析库:
SnowNLP(Simplified Chinese Text Processing),是一个python语言编写的类库,可以方便的处理中文文本内容,其开发受到了TextBlob的启发
In [1]:
数据载入
In [2]:
Out[2]:
数据预处理
In [3]:
In [4]:
Out[4]:
In [7]:
Out[7]:
将所有数据打分
In [9]:
Out[9]:
将分数合并会原表格
In [11]:
Out[11]:
计算指标
In [12]:
Out[12]:
In [13]:
Out[13]:
In [14]:
Out[14]:
基础结论:中位数比平均值高很多,说明有少量异常低的评分拉低了均值
In [16]:
Out[16]:
看分数分布情况,直方图最合适
In [17]:
Out[17]:
少量数据,柱状图也可以
In [18]:
Out[18]:
In [19]:
Out[19]:
In [20]:
以分数排序,查看打分准确率
In [22]:
Out[22]:
好评
In [23]:
Out[23]:
In [24]:
Out[24]:
差评
In [25]:
Out[25]:
In [26]:
Out[26]:
In [27]:
Out[27]:
In [28]:
Out[28]:
In [29]:
Out[29]:
In [30]:
Out[30]:
结论
准确率比瞎猜高,但达不到人工打分准确率
SnowNLP库的训练基准数据是基于电商销售产品训练的,对饭店留言数据的打分准确率一般
做情感分析最好用户自行实现(网站增加打分功能,用户自行打分)