我爱编程

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

2018-04-08  本文已影响0人  GaGLee

关于我们

作者: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生成词云

上一篇下一篇

猜你喜欢

热点阅读