相信很多人在网上,或者是在一些报告或者ppt上,都看到过类似这种图片

clipboard.png

你可能会好奇它是怎么做出来的,如果你会ps,你可能会觉得,这是用ps一步一步制作出来的。是的没错,一开始我也是坚定不移的这么认为。直到后面我遇到了python。

上网搜索“如何制作词云”,你会得到很多教程。但是这些教程都是利用了一些制作工具,它们功能都太过专一,适用范围有限。而且它们背后的原理,无非也就是利用了python。今天,我们就抛开表面直击本质。利用强大的python语言制作属于自己的第一张词云。(快放开我,我要装逼)

众所周知,python是目前大数据和人工智能领域最流行的语言,这其中很大一部分都要归功于它强大的社区和数不清的第三方类库,那有没有一个集成环境同时集成了python语言的开发环境和常用的类库呢,答案是肯定的,那就是Anaconda,它集成了大部分科学计算,数据处理,计算机绘图等领域所用到的库。

clipboard.png

还有一件很有意思的事情,Anaconda和python的中文意思,都是蟒蛇。

好,接下来进入正题,一步一步实现我们的第一张词云。

第一步:下载并安装Anaconda

首先,进入官网,选择适合你电脑的版本,
clipboard.png
注意,无论你的电脑是什么系统,在右边都会有两个选项: Python 2.7 version和Python 3.6 version
我推荐下载使用python3.6版本,因为在这个最新的版本中,很多python语言的缺陷都得到了很好的解决(比如长期困扰python程序员的编码问题),这样在日后的学习中,我们都会进行的比较顺利。

下载完成后得到一个exe格式的安装文件,和正常软件的安装一样,一直下一步下一步就行了,但是在这一步要注意,

clipboard.png

一定要记得把第一个选项勾上,如果不勾上,在后续的环境变量配置问题上会比较麻烦。虽然它不建议这么做(说实话我也不知道为什么),安装时间会比较久,耐心等待就行了。
安装好了以后,先新建一个demo目录,为了方便起见,我们直接在桌面新建。按住Shift键同时点击鼠标右键,再点击在此处打开命令窗口(win10较新的版本里cmd被powershell取代了,所以出现的会是在此处打开powershell窗口,别担心,它们的功能是一样的),然后输入mkdir demo

clipboard.png

然后在桌面上就会出现一个demo文件夹

clipboard.png

然后在这里下载wordcloud工具包,

clipboard.png

之前我们下的是python3.6的版本,如果你的电脑是32位的,就选中倒数第二个,如果是64位的,就选择最后一个。
下载后将这个.whl文件拖拽到你的demo文件夹里。然后在命令行下,先执行

pip install wheel

再执行

pip install wordcloud-1.3.1-cp36-cp36m-win_amd64.whl

wordcloud-1.3.1-cp36-cp36m-win_amd64.whl就是你的下载下来的文件名,
这些步骤做完,我们就完成了运行环境配置。

第二步:开始分析

先找到你要分析的文章,将其保存为txt文件,比如我在网上摘取了一篇关于anaconda的介绍,将其保存为anaconda.txt文件,

clipboard.png

然后在demo目录下运行命令行jupyter notebook,打开jupyter编辑器。

clipboard.png

很快浏览器就会被打开,跳转到这个界面

clipboard.png

点击右上方的New,新建一个python3,然后浏览器就会打开一个新的页面,用于输入python代码。

clipboard.png
clipboard.png

输入

filename = "anaconda.txt"
with open(filename) as f:
 mytext = f.read()

按Shift+Enter 执行,注意:第三行mytext前面一定要有空格。

再输入mytext,按Shift+Enter运行,就会看到txt里的文本已经被保存到这个变量里面来了。
图片描述

然后调用我们的wordcloud包,对mytext里面存储的文本进行词云分析。

from wordcloud import WordCloud
wordcloud = WordCloud().generate(mytext)

程序可能会报警,但是不会影响正常运行,直接忽略它就是了。

此时词云分析已经完成了,最后一步对分析结果进行可视化处理。

%pylab inline
import matplotlib.pyplot as plt
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off"

奇迹发生了

clipboard.png

我们可以在图片上右键将其保存到本地。

clipboard.png

到这里,一张词云就做好了。

wordcloud最核心的功能是对关键词进行分析,出现频率大的词会用更大的字体对其进行显示,除此之外,我们还可以自定义字体的颜色和词云的形状,图片的分辨率等等等等。但是我们如果要对中文进行分析,还必须要借助中文分词技术。这里就不再赘述。


changes
275 声望1 粉丝