在开始编写程序之前,我们先了解一下词云图的作用,我们拿到一篇文章,想得到一些关键词,但文章篇幅很大,无法短时间得到关键词,这时我们可以通过程序将文章中的每个词组识别出来,统计每个词组出现的次数,出现次数越多,字号越大,最后吧所有词组拼成一张图,这就是词云图了。

现在开始写程序

import jiebaimport wordcloudimport imageio

首先,我们导入 jieba,wordcloud库,这2个库是第三方库,需要自己安装,imageio是python自带库不需要安装

安装方法:

pip install jieba

pip install wordcloud

Ps:因为我用的是Windows系统,所以这里只有Windows系统安装方法,其他系统需要读者去网上自寻

第二步

我们打开需要制作词云图的文件

with open('F:/三国..txt',encoding='utf-8') as f:t=f.read()

下面我们将文章中的词组提出来

ls=jieba.lcut(t)txt=" ".join(ls)

我们现在已经把所有词组提取出来,以空格分开,并保存在txt中

下一步,我们需要定义一个词云

w=wordcloud.WordCloud(width=2000,height=1400,font_path="msyh.ttc")

Width=2000,height=1400及词云图,高1400像素,宽2000像素,font_path=msyh.ttc,及使用微软雅黑字体,这些参数读者可以随意修改。

现在我们将词组变量txt导入词云对象w中并保存

w.generate(txt)w.to_file(r'F:\pic5.png')

如图所示,我们制作的词云图为黑色,且不美观,不具有可观性,这时我们进行下一步,对词云图的颜色,型状进行修饰

首先,关于词云图的颜色问题,因为wordcloud函数存在默认背景色,改变背景色发法

w=wordcloud.WordCloud(width=2000,height=1400,font_path="msyh.ttc",background_color='white')

这里我将背景色定义为白色

紫色 purple 粉红色 pink

蓝色 blue 红色 red

黑 色 black 黄 色yellow

青 色 cyan金 色 glod

棕色 brown 白色 white

你也可以使用其他颜色单词,这时你可能会想如何修改字体的颜色

w=wordcloud.WordCloud(width=2000,height=1400,font_path="msyh.ttc",colormap='cool')

colormap是matlab的内置函数,内涵多种颜色组合的条形渐变图

关于其他颜色组合,读者可以去网上查询

到了这一步,我们制作的词云图显得有一点高大上,这时我们想要改变词云图的型状,我们需要自己准备一张图片,内涵我们想要的图形,下面,我将以爱心、皮卡丘为例。

mask=imageio.imread('F:\pi.png')#F:\pi.png为图片路径w=wordcloud.WordCloud(width=2000,height=1400,font_path="msyh.ttc",mask=mask)

这时我们得到了我们想要的词云图

Ps:注意选取图片一定要是白底

程序代码

mport jiebaimport wordcloudimport imageiomask=imageio.imread('F:\pi.png')with open('F:/三国..txt',encoding='utf-8') as f:t=f.read()ls=jieba.lcut(t)txt=" ".join(ls)w=wordcloud.WordCloud(width=2000,height=1400,font_path="msyh.ttc",colormap='cool',background_color='white',mask=mask)w.generate(txt)w.to_file(r'F:\pic2.png')