赞
踩
近年来,互联网、新媒体等行业报告中经常会看到一些精美的词云图。它的原理其实比较简单,主要是对文章内容进行分词,统计各个词出现的次数,然后根据出现的次数,设置显示样式,例如大小、颜色等,从而使读者快速领略文章的主旨。例如根据一篇关于复杂网络中的链路预测生成的词云图如下,可以看出“网络”、“链路预测”、“研究”、“预测”、“算法”等词出现频率较高。
要想生成精美的词云图,只需几行Python代码即可,关键代码如下。
- import wordcloud as wc
- import jieba
- from PIL import Image
- import numpy as np
- with open("text.txt", mode="r", encoding="utf-8") as fp:
- content = fp.read() # 读取文件内容
- res = jieba.lcut(content) # 中文分词
- text = " ".join(res) # 用空格连接所有的词
- mask = np.array(Image.open("pikaqiu.png")) # 指定词云图效果
- word_cloud = wc.WordCloud(font_path="msyh.ttc", mask=mask) # 创建词云对象
- word_cloud.generate(text) # 生成词语
- plt.imshow(word_cloud) # 显示词云图
- word_cloud.to_file("wordcloud.png") # 保存成图片
- plt.show() # 显示图片
如果想要生成符合自己需要的词云图,只需要修改几个地方即可:首先是text.txt文件,表示的是文章来源,可以修改为自己的文章,或者将自己文章的内容放在text.txt文件中;其次是fivestar.png文件,表示生成的词云图的效果,默认是一个矩形,可以根据自己的需要设置成相应的形状,例如五角星、皮卡丘等,只需要找到对应效果的图片即可。(相关资源可关注微信公众号:Python资源分享,回复词云即可获取)
生成词云图代码中调用了一些第三方库,要保证开发环境中已经安装了相应的库,否则无法执行。这里主要涉及到wordcloud库(用于生成词云图,主要针对英文文章,通过空格进行分词)和jieba库(对中文文章进行分词)。
wordcloud离线安装过程如下:
jieba库的在线安装过程如下:
wordcloud库中对象创建参数以及常见方法如下:
jieba库的介绍以及关键的方法和参数说明如下:
生成中文词云的开发步骤如下:
读取文件,得到中文字符串;
借助jieba库对中文进行分词,得到词语的列表,然后将这些词进行合并并以空格隔开;
打开最终效果对应的图片文件,得到相应的数组表示;
创建WordCloud对象,设置基本信息;
生成词云图,并保存或显示。
更多关于Python学习的文章请关注微信公众号:Python资源分享,词云图相关资源和代码回复 词云 即可获取。详细的视频讲解可查看 CSDN学院 里的手把手教你学Python系列视频:https://edu.csdn.net/lecturer/5686。 欢迎加入QQ群一起学习交流:858228002 。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。