查看原文
其他

十行代码制作词云图

stormdony Python绿洲 2018-08-20

阅读文本需要2分钟

python可以用来做很多有趣的事情,在知乎上有一个帖子就是讨论python可以做哪些有趣的事情。答案各有千秋,可以看出,python真的很强大呀。
最近都在整理python的基础内容,好像很久没有写过实战类的文章了,现在就来搞一篇词云的干货吧
ps:虽然市面上早就有了生成词云的软件,但是自己动手制作的乐趣更多点嘛

环境:
  • python   3.5

  • jupyter 1.0.0

  • wordcould 1.4.1

  • jieba    0.3.9

  • matplotlib 2.2.2

ps:上面的jupyter我会在文末放上安装教程,剩下的库直接使用pip安装就可以了

python库介绍:
  • jieba:“结巴”中文分词,支持三种分词模式:

  1. 精确模式,试图将句子最精确地切开,适合文本分析;

  2. 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;

  3. 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

  • wordcould:词云,用单词组成各种各样的图片

  • matplotlib:一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。这里只是用来展示图片而已

  • 由于Wordcloud对中文的支持不是很友好,所以这里引入了jieba进行分词。另外值得一说的是,百度出的pycharts真是良心出品,解决了中文问题,还提供了更多的功能。有兴趣可以找度娘了解一下

    开始装13

    准备工作
    1. 这里就以百度对python的解释做例子,文本内容如下:

      Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
      Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。
      Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
      7月20日,IEEE发布2017年编程语言排行榜:Python高居首位 。
      2018年3月,该语言作者在邮件列表上宣布 Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商

    2. 准备图片
      准备一张图片用来做背景图片,这里用公众号的图片为例。

    编写

    在jupyter中新建一个py文件,注释已经写在相应的旁边了,应该能看懂

    1[1]:import matplotlib.pyplot as plt
    2    from wordcloud import WordCloud
    3    import jieba
    4[2]: txt='''这里填入上面准备的文本'''
    5[3]: seg_list = jieba.cut(txt, cut_all=False)
    6[4]: w1= "/ ".join(seg_list) # 全模式
    7[5]: pic = plt.imread("logo.jpg") #引入背景图片
    8[6]: wc = WordCloud(
    9           #设置背景颜色  
    10           background_color = "white",
    11           mask = pic , #设置背景图片  
    12           max_words = 2000, #设置最大显示的字数  
    13           margin=5,
    14           #不加下面这一句显示口字形乱码
    15           font_path="C:\\Windows\\Fonts\\STFANGSO.ttf",
    16           max_font_size = 80,  #设置字体最大值  
    17           #设置有多少种随机生成状态,即有多少种配色方案  
    18           random_state = 40,
    19    )  
    20[7]: mword =wc.generate(w1)
    21[8]: plt.imshow(mword)
    22     plt.axis("off")
    23     plt.show()

    运行最后一行的时候就会出现下面的词云了:

    可以看到一些出现频率肥肠高的词,用我们自己的话组织一下就是:“python是需要模块支持的程序语言”。
    通过这十行代码(其实是十几行,推送介绍那里有点夸大,目的你们懂得),瞬间对python有了一种全面的了解了吧
    再放上一张python的图片

    总结

    通过上面的实例,应该都会这种“高大上”(zhuang bi)的技巧了吧,接下来就可以愉快的自己动手制作属于自己的词云去秀一波了。。。

    ps:由于官方并没有Wordcloud文档,所以如果想要使用Wordcloud的更多方法,只能自己去看GitHub上的例子,另外可以多参考一下各大博客网站的博文,掌握基本用法也就够我们平时使用的了

    推荐阅读 | python基础—元组


    扫码关注

    点赞是一种态度



      您可能也对以下帖子感兴趣

      文章有问题?点此查看未经处理的缓存