pandas之中文分词,词云,情感分析,语义分析4

中文情感分析 - SnowNLP


情感分析(Sentiment analysis,SA),又称倾向性分析、意见抽取(Opinion extraction)、意见挖掘(Opinion mining)、情感挖掘(Sentiment mining)、主观分析(Subjectivity analysis)

情感分析是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程

情感分析的目的是为了找出说话者/作者在某些话题上或者针对一个文本两极观点的态度。这个态度或许是他或她的个人判断或是评估,也许是他当时的情感状态(就是说,作者在做出这个言论时的情绪状态),或是作者有意向的情感交流(就是作者想要读者所体验的情绪)

文本情感分析的应用非常广泛,如网络舆情风险分析,信息预测等。如通过Twitter用户情感预测股票走势,电影票房、选举结果等,均是将公众情绪与社会事件对比,发现一致性,并用于预测

 

首先安装SnowNLP中文情感分析库:

pip install snownlp

SnowNLP(Simplified Chinese Text Processing),是一个python语言编写的类库,可以方便的处理中文文本内容,其开发受到了TextBlob的启发

import pandas as pd
import matplotlib.pyplot as plt
from snownlp import SnowNLP

 

案例分析

  1. 数据载入  
  2. 数据预处理
  3. 将所有数据打分
  4. 将分数合并会原表格
  5. 计算指标
df = pd.read_excel('data/饭店留言数据.xlsx')
# 截取一部分 columns(comments&date)
0	这辈子最爱吃的火锅,一星期必吃一次啊!最近才知道他家还有免费鸡蛋羹………………炒鸡好吃炒鸡嫩...	2017-05-14 16:00:00
1	第N次来了,还是喜欢?……<br><br>从还没上A餐厅的楼梯开始,服务员已经在那迎宾了,然...	2017-05-10 16:00:00
2	大姨过生日,姐姐定的这家A餐厅的包间,服务真的是没得说,A餐厅的服务也是让我由衷的欣赏,很久...	2017-04-20 16:00:00
3	A餐厅的服务哪家店都一样,体贴入微。这家店是我吃过的排队最短的一家,当然也介于工作日且比较晚...	2017-04-25 16:00:00
4	因为下午要去天津站接人,然后我倩前几天就说想吃A餐厅,然后正好这有,就来这吃了。<br>来的...	2017-05-21 16:00:00
5	A餐厅是我们的定点单位,单位大聚小聚都来这,所以享受VIP待遇,来了不用等位。这的菜品新鲜,...	2017-05-05 16:00:00

# 2
df.info()

# 3
def aaa(x):
    return SnowNLP(x).sentiments

grade = df['comments'].apply(aaa)
grade  # 科学计数法

# 4 
df['grade'] = grade
df.head()

# 5
# 平均分
df.grade.mean()
# 中位数
df.grade.median()
# 快速分布
df.grade.describe()
基础结论:中位数比平均值高很多,说明有少量异常低的评分拉低了均值

可视化

df2 = df[['date', 'grade']].set_index('date').sort_index()
# 看分数分布情况,直方图最合适
df2.plot.hist()
df2.plot.kde()
plt.scatter(df2.index, df2['grade'])
plt.boxplot(
    df['grade'],  # 数据
    showmeans = True, # 是否显示平均值,默认不显示

    widths = 0.5, # 柱子宽度

    vert = True, # 默认True纵向,False横向
    patch_artist = True,  # 是否填充颜色
    boxprops = {'facecolor':'#ffff00','color':'green'}, # 箱体样式
)

plt.grid(linewidth=0.2)

#以分数排序,查看打分准确率、

结论

准确率比瞎猜高,但达不到人工打分准确率

SnowNLP库的训练基准数据是基于电商销售产品训练的,对饭店留言数据的打分准确率一般

做情感分析最好用户自行实现(网站增加打分功能,用户自行打分)

  

  

 

posted @ 2020-10-05 14:09  亚洲哈登  阅读(775)  评论(0编辑  收藏  举报