最近採集了天貓上搜尋網頁面關於風衣的寶貝資訊以及14676條評論資料。於是就想著做個關於評論資料的詞雲圖看看
先來看看效果圖:
從上圖可以看出衣服、好、品質、不錯、喜歡等關鍵詞的較大,說明這些寶貝在天貓上應該是賣的比較好的。下面記錄具體的實現過程。
[TOC] 資料預覽:
python版本3.4.4;分詞庫:jieba;詞雲圖庫:pytagcloud 資料預先處理:資料讀入、分詞
import pandas as pdfrom pandas import DataFrame,Seriesimport numpy as npimport jiebafrom ciyuntu_class import ciyuntu_classcyt = ciyuntu_class()from pytagcloud import make_tags,create_tag_imagefrom random import samplecomment = 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條評論資料,畫出詞雲圖後:
可以看出一些中性詞,像:很、的、都、了、買、也,這些詞不能體現出評論人的態度,但是它們的詞頻卻比較大,對結果有幹擾,於是在分詞的過程中將這些詞進行剔除,下面是剔除後的效果圖:
可以看出,剔除後的詞雲圖的主題以及評論的態度資訊都比較好的顯示在了圖中。