利用python制作漂亮的词云图

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

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. 咩?一大坨没有形状不好看?别急.唔好急,心急食唔到热豆腐啊靓仔靓女

    • 首先你编辑好一张图片,最好简单点,比如说这张
      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!

评论 6 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值