最近采集了天猫上搜索页面关于风衣的宝贝信息以及14676条评论数据。于是就想着做个关于评论数据的词云图看看
先来看看效果图:
从上图可以看出衣服、好、质量、不错、喜欢等关键词的较大,说明这些宝贝在天猫上应该是卖的比较好的。下面记录具体的实现过程。
[TOC]
python版本3.4.4;分词库:jieba;词云图库:pytagcloud
import pandas as pd
from pandas import DataFrame,Series
import numpy as np
import jieba
from ciyuntu_class import ciyuntu_class
cyt = ciyuntu_class()
from pytagcloud import make_tags,create_tag_image
from random import sample
comment = pd.read_csv('电商评论数据.csv',encoding='gbk')
应为有1W多条评论数据,全部分词的话需要耗费许多时间,于是在全部评论数据中随机抽取了5000条评论数据进comment = comment.drop(['Unnamed: 0'],axis=1)
# df_comment = comment[['评价内容']].ix[0:30]
index_5000 = sample(list(comment.index),5000)
df_comment = comment[['评价内容']].ix[index_5000]
df_comment.index = range(df_comment.shape[0])
# 分词
df_freq = cyt.fenci(df_comment.ix[0][0])
# 转换成数据框
df_freq = cyt.sta_list(df_freq)
for i in range(df_comment.shape[0])[1:]:
print(i)
try:
df_freq0 = cyt.fenci(df_comment.ix[i][0])
df_freq0 = cyt.sta_list(df_freq0)
# 合并数据框
df_freq = cyt.bind_df(df_freq,df_freq0)
except:
print(df_comment.ix[i][0])
pass
# 画词云图
tuple_list = cyt.df2tuple_list(df_freq)
tags = make_tags(tuple_list,maxsize=80)
create_tag_image(tags,'comment_cloud.png',size=(900,600),fontname='simhei')
先是选取了1000条评论数据,画出词云图后:
可以看出一些中性词,像:很、的、都、了、买、也,这些词不能体现出评论人的态度,但是它们的词频却比较大,对结果有干扰,于是在分词的过程中将这些词进行剔除,下面是剔除后的效果图:
可以看出,剔除后的词云图的主题以及评论的态度信息都比较好的显示在了图中。