问题描述
作为某一产品的区域经理,假如需要通过顾客使用评价来做出运营调整或者大酬宾以增加业绩。之前呢,没有太多评论,看来看去也没多少东西。现在网络购物、产品网站等等,海量数据一下扑面而来,我们应该怎么来快速有效的获取有效数据并做出较为准确的决策呢?
你需要情感分析
这个好用的自动化工具
数据及环境准备
那你可能会问这些评论怎么让工具去使用呢? 想来想去还是去网上借一点可能来的更快一些。。。
因为我们是基于时间序列所做的分析,所以只需要时间和评论就够了。
在本次实践中我们需要对中文评论做分析,故而使用软件包为SnowNLP,情感分析的基础方法
使用的其他软件包为:snownlp、pandas、ggplot
开始干活
- 数据文件读入
import pandas as pd
df = pd.read_csv()
- 时间字段处理
如果你文件里时间列的时间格式包含了日期和时间 如2017-06-04-14:13:00
,则恭喜你pandas会自动识别时间格式。
假如你文件里时间列的时间格式只精确到日期 如2017-06-04
,那么你将需要对该字符串进行特殊处理,也许你需要如下方法:
from dateutil import parser
df['date'] = df.date.apply(parse.parse)
- 情感分析
做完上述工作数据预处理工作就已经完成了,接下来我们就来调用SnowNLP情感分析工具
from snownlp import SnowNLP
首先,定义函数,以便批量处理所有评论信息
def get_sentiment(comment):
s = SnowNLP(comment)
return s.sentiments
然后,再次借助python强大的apply函数,实现批量处理。
df['sentiment'] = df.comment.apply(get_sentiment)
最后,我们来看看情感分析结果
# 查看帧顶部行
df.head()
# 描述显示数据快速统计摘要
df.describe()
- ggplot 绘图
from ggplot import *
ggplot(aes(x="date", y="sentiment"), data=df) + geom_point() + geom_line(color = 'blue') + scale_x_date(labels = date_format("%Y-%m-%d"))
效果展示