美文网首页我爱编程
【python词云】豆瓣小组成员昵称词云

【python词云】豆瓣小组成员昵称词云

作者: GaGLee | 来源:发表于2018-04-08 23:05 被阅读0次

    关于我们

    作者:python爱好者、自学ing
    个人网站 :到哪儿找导航 欢迎访问!
    联系交流:QQ群726693257

    背景说明

    本篇文章是上一篇【python爬虫】豆瓣小组成员列表信息的后续数据分析处理篇。
    数据来源:豆瓣小组成员信息
    核心模块:python-wordcloud
    运行环境:Anaconda python3.6

    安装

    说明:wordcloud不是python3和anaconda的默认模块,需要自行安装
    step1:

    pip install worldcloud
    

    失败……官方源
    step2:

    conda install worldcloud
    

    失败……清华镜像源

    step3:

    cd desktop
    conda install word_cloud-master.zip
    

    安装进行……突然decode解码错误,无视。
    step4:
    搜索worldcloud官网,找官方下载包。发现刚才那个Github地址就是唯一的官方地址。

    • 看看说明:
    If you are using conda, you can install from the conda-forge channel:
    
    conda install -c conda-forge wordcloud
    

    满足条件,试了试,确实可以安装,但下载速度太慢……放弃了

    • 再找发现:
    ##### Windows
    
    If you're having trouble with pip installation on windows, you can find a .whl file at:
    
    [http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud](http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud)
    

    进入这个地址,下载wordcloud‑1.4.1‑cp36‑cp36m‑win_amd64.whl

    pip install wordcloud‑1.4.1‑cp36‑cp36m‑win_amd64.whl
    

    没报错!

    pip list
    

    已经有了wordcloud‑1.4.1,安装成功!
    临时笔记:找到一个对pip、conda的解释,先码再看。Conda:误解与迷思

    词云生成

    初识源数据

    此次数据是从豆瓣某读书小组爬取的成员名单,仅爬取了600+人。


    源数据概览

    目的也很简单,生成该读书小组成员的昵称词云

    代码

    • 文件读取
       p = Path(r'C:\Users\****\Desktop\scrapy\douban_group\douban_group_names.xls')
       print("--" * 50)
       print("找到根目录:", str(p))
       data_df = pd.read_excel(str(p), usecols=["names"])
    

    ----固执地沿用pathlib文件路径+pandas方法读取文件,推荐大家还是用with open() as
    ----wordcloud的data数据文件必须为str型,不能是list,下面需要将pandas读取的数据转换为一个超长的str

    • 数据转换+分词
        data = ""
        for i in data_df.names:  #data_df是dataframe,data_df.names是series
            data = data + str(i) #将names转换为str
            data_jieba = jieba.cut(data, cut_all=False)  # 使用jieba模块进行分词处理
            data_space = ' '.join(data_jieba)
    

    ----这里用jieba进行分词处理

    • 生成词云
    font = "C:\Windows\Fonts\FZSTK.TTF"
        # wordcloud不支持中文字体,需要自行从C盘找一个中文字体文件
        mask = imread("D:\我的照片,my life\敦煌.png")
        # 指定背景图片,
        wordcloud = WordCloud(
            background_color='white',
            mask=mask,  # 该如果参数为空,则使用二维遮罩绘制词云。如果 mask有值,设置的宽高值将被忽略,背景图片的画布一定要设置为白色(#FFFFFF),然后显示的形状为不是白色的其他颜色。
            font_path=font,
            # max_words=2000,  #要显示的词的最大个数
            max_font_size=500,  # 显示的最大字体大小
            # relative_scaling: float# 词频和字体大小的关联性,(default=.5)
            # colormap: string or matplotlib colormap, default =”viridis”#给每个单词随机分配颜色,若指定color_func,则忽略该方法。
            width=100,
            # height=400,
            # prefer_horizontal: float(default=0.90), /  # 词语水平方向排版出现的频率,默认0.9(所以词语垂直方向排版出现频率为0.1
            # scale: float(default=1)  # 按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5    倍。
            stopwords="各位代表"  # 设置需要屏蔽的词
            # fit_words(frequencies) #根据词频生成词云
            # to_file(filename) #输出到文件
    
        ).generate(data)  # generate(text) #根据文本生成词云
    

    ----1)必须从本地电脑引用中文字体;
    ----2)max_font_size的值越大,越有层次。


    词云

    (00.00) 看来这个豆瓣小组萌妹子居多…………

    参考

    Python wordcloud之中文词云
    Windows环境下Python中wordcloud的使用——自己踩过的坑 2017.08.08
    利用jieba和wordcloud生成词云

    相关文章

      网友评论

        本文标题:【python词云】豆瓣小组成员昵称词云

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