美文网首页
【python】【notebook】小细跟口红评论内容——词云图

【python】【notebook】小细跟口红评论内容——词云图

作者: 自由而灿烂的神 | 来源:发表于2021-01-05 19:56 被阅读0次

工具:jupyter notebook

现有excel表格数据,如下图:

现在我们需要绘制词云图——评论内容rateContent数据。

步骤:

先导入pandas包,获取到rateContent评论内容一整列的数据

import pandas as pd

import re

读取数据:

#读取perfectdiary_data的excel表格

df=pd.read_excel('perfectdiary_data.xlsx')

#计算rateContent列的长度,确保数据正确

print(len(df['rateContent']))

#打印该列的值

df['rateContent'].values

结果如下图(代码小错误,rateDate改为rateContent ):

列表转字符串:

content = ''

for i in df['rateContent'].values:

    content += i

print(content)

结果如图。可以看出,目前还没有做数据清洗,评论内容中有很多表情包符号,不利于后面计算词云。

数据清洗。

进行文本预处理,去除一些无用的字符,只提取出中文出来;用“/”进行字符串之间的连接,以便后面以此为标记计算词云;由下面的截图可知,“整体评价”、“保湿效果”、“唇膏质地”、“上嘴效果”、“实物颜色”四字是淘宝客户端引导用户评价的词语,并不是我们想要的计算的词云,所以用replace()方法去掉。

(该图片在淘宝手机端获取到)

new_data = re.findall('[\u4e00-\u9fa5]+',content, re.S)

new_data = "/".join(new_data).replace('整体评价','').replace('保湿效果','').replace('唇膏质地','').replace('上嘴效果','').replace('实物颜色','')

print(new_data)

结果如下图:

导入绘制词云所需要的包:

import os

import sys

import json

import numpy as np

from PIL import Image

from scipy.misc import imread

from matplotlib import colors

import matplotlib.pyplot as plt

from matplotlib.font_manager import FontProperties

from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS

单独导入:

from __future__ import division

其中wordcloud如果出现“no mol...”,可以采用:!pip install wordcloud。(其中 “!”为英文输入法下的叹号)

写绘制的函数代码:

def simpleWC1(sep=' ',back='white',freDictpath='data_fre.json',savepath='res.png'):

    '''

词云可视化Demo

    '''

    try:

        with open(freDictpath) as f:

            data=f.readlines()

            data_list=[one.strip().split(sep) for one in data if one]

        fre_dict={}

        for one_list in data_list:

            fre_dict[unicode(one_list[0])]=int(one_list[1])

    except:

        fre_dict=freDictpath

wc=WordCloud(font_path='font/simhei.ttf',#设置字体  #simhei

background_color=back, #背景颜色

max_words=1300,#词云显示的最大词数

max_font_size=120, #字体最大值

margin=3,  #词云图边距

width=1800,  #词云图宽度

height=800,  #词云图高度

                random_state=42)

wc.generate_from_frequencies(fre_dict)  #从词频字典生成词云

    plt.figure()  

    plt.imshow(wc)

    plt.axis("off")

    wc.to_file(savepath)

执行函数:

if __name__ == "__main__":

    word_list=new_data.split('/')

    fre_dict={}

    for one in word_list:

        if one in fre_dict:

            fre_dict[one]+=1

        else:

            fre_dict[one]=1

simpleWC1(sep=' ',back='white',freDictpath=fre_dict,savepath='simpleWC1.png')

得到的simpleWC1.png图片如下图:

完结,撒花花。

(正在加急更新中.....)

相关文章

网友评论

      本文标题:【python】【notebook】小细跟口红评论内容——词云图

      本文链接:https://www.haomeiwen.com/subject/zswwoktx.html