利用python制作漂亮的词云图

作者:黎智煊 叩丁狼高级讲师。原创文章,转载请注明出处。

利用python制作漂亮的词云图_第1张图片
wolfcodeTarget.png

前言:现在制作一个词云图还是简单的事,
例如这个-> https://wordart.com (选择Noto Sans S Chinese Regular字体就可以制作中文词云),然后选择"SHAPES"可以导入自己想制作词云形状图片,记得这个图片不要太复杂,颜色比较单一.
but,图样图森破,不是各种限制就是收费了,真的是调理农**
所以这里教大家用10行python代码搞掂.

hey we go(黑喂狗) XD XD XD XXD :) :) :) :) :) :)

环境的准备(由于苹果电脑贵,so我们还是建立在window环境下搭建,其实都是大同小异)
  1. 下载并且安装python3.6 https://www.python.org/ftp/python/3.6.5/python-3.6.5.exe
    • 点击选择Customize installation,默认全选,然后下一步
    • 请记得勾选第一个"Install for all user",就是全部用户都安装(意思是装到系统盘的program目录)
    • 还有请勾选"Add python to environment variables",这一步是设置python的环境变量
    • 然后就可以开始安装.
  2. 安装一些依赖
    • 我准备了一些编译好的python库文件,在这里 链接:https://pan.baidu.com/s/1Z3qBb9KGVLtgBt4lKBB22A 密码:mabu
      里面一共有5个文件,其实只需要下载3个就可以了
    • 先下载msyh.ttc,这个是微软雅黑字体,下载到下面两个文件同一个目录就可以了.
    • 上面提供的python是32位的,所以直接下载带有后缀名 -win32.whl的这两个文件就可以了.
    • 下载好以后,解压好到随便一个目录,比如是F盘的python文件夹,你打开cmd.exe,并且切换到F盘的python目录,例如:
          F:
          cd python
          pip install wordcloud-1.4.1-cp36-cp36m-win32.whl
          pip install wrapt-1.10.11-cp36-cp36m-win32.whl
      
      没有出错就没有大问题了.
    • 利用pip安装一些依赖
      pip install jieba
      pip install matplotlib
      pip install pillow
      pip install numpy
      

  1. 新建一个新的目录

    • 随便找个地方新建一个目录,比如我在F盘下面新建一个word_cloud文件夹(名字都是随便取),并且打开这个文件夹.
    • 把刚刚下载的msyh.ttc复制到这里.
    • 新建一个my_word_cloud.py在这里.
    • 然后可以在my_word_cloud.py写代码了,首先导入相关的包
    ##对于NLP(自然语言处理)来说,分词是一步重要的工作,这里使用jieba分词
    ##对你输入的文章进行分词然后统计等等操作
    import jieba
    ##导入用于用于制作词云图的wordcloud
    from wordcloud import WordCloud,ImageColorGenerator
    from matplotlib import pyplot as plt
    from PIL import Image
    import numpy as np
    
    • 收集文本信息

      • 比如,我现在随便找一篇文章,里面包含大量文字

      为什么《钢之炼金术师FA》被称为神作?
      想要两者兼得非常难,要说明它的难度,得举个没做到又有分量的作品为例子:老贼的《猎人》《钢炼》是一部涵盖面很广的作品,其中想要探讨的,有人性、战争、宗教、哲学、科学,但受限于【少年漫】这一题材,探索的面虽然广却基本不深入。真正让《钢炼》显得极为成熟的,是“态度“..............

      • 然后,把这些文字复制并且保存为info.txt,就保存在word_cloud文件夹里面
    • 继续编辑代码

    ##打开刚刚的info.txt,并且把得到的句柄内容复制给content
    with open('info.txt','r',encoding="UTF-8") as file1:
        content = "".join(file1.readlines())
    ##然后使用jieba模块进行对文本分词整理
    content_after = "".join(jieba.cut(content,cut_all=True))
    
    ##font_path
    ##使用worldCloud模块对刚刚整理好的分词信息进行处理.
    ##max_font_size参数是可以调整部分当个词语最大尺寸
    ##max_words是最大可以允许多少个词去组成这个词云图
    ##height高度,width宽度,
    ##background_color背景颜色
    wc = WordCloud(font_path="msyh.ttc",background_color="black",max_words=1000,max_font_size=100,
                    width=1500,height=1500).generate(content)
    ##使用matplotlib的pyplot来进行最后的渲染出图.
    plt.imshow(wc)
    ##目标文件另存为这个名录下
    wc.to_file('wolfcodeTarget.png')
    
  2. 运行代码

    • OK.把两段代码都输入并且保存之后,同样,用cmd.exe切换到这个目录,(有一个快捷的方式,就是按shift+右键,就可以看到"在此处打开XX窗口"),然后直接输入
    python word_cloud.py
    
    • 运行命令成功之后大概有这些提示
    Building prefix dict from the default dictionary ...
    Loading model from cache C:\Users\KUMANX~1\AppData\Local\Temp\jieba.cache
    Loading model cost 0.592 seconds.
    Prefix dict has been built succesfully.
    
    • 然后稍等片刻,你就可以看到一个新的图片文件生成了,wolfcodeTarget.png

    • sorry,我骗你了,是总的代码是11行的.(sorry,有钱真系大晒)

  3. 咩?一大坨没有形状不好看?别急.唔好急,心急食唔到热豆腐啊靓仔靓女

    • 首先你编辑好一张图片,最好简单点,比如说这张


      利用python制作漂亮的词云图_第2张图片
      wolfcode.png
    • 然后,你把这张图命名好放到刚刚的文件夹,就是F盘的word_cloud文件夹里面,我的命名是wolfcode.png

    • 然后添加代码,备注我自己写里面,我下面展示的是一个完整的代码

    import jieba
    from wordcloud import WordCloud,ImageColorGenerator
    from matplotlib import pyplot as plt
    from PIL import Image
    import numpy as np
    with open('info.txt','r',encoding="UTF-8") as file1:
        content = "".join(file1.readlines())
    content_after = "".join(jieba.cut(content,cut_all=True))
    ##添加的代码,把刚刚你保存好的图片用Image方法打开,
    ##然后用numpy转换了一下
    images = Image.open("wolfcode.png")
    maskImages = np.array(images)
    
    ##修改了一下wordCloud参数,就是把这些数据整理成一个形状,
    ##具体的形状会适应你的图片的.
    wc = WordCloud(font_path="msyh.ttc",background_color="black",max_words=1000,max_font_size=100,width=1500,height=1500,mask=maskImages).generate(content)
    plt.imshow(wc)
    
    wc.to_file('wolfcodeTarget.png')
    
    • 然后运行
    python word_cloud.py
    
    • OK!你控几不住你记几啊,新的词云图已经生成了.你打开wolfcodeTarget.png看看.
    • I Don't konw what 7 you said!
利用python制作漂亮的词云图_第3张图片
WechatIMG7.jpeg

你可能感兴趣的:(利用python制作漂亮的词云图)