美文网首页
【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