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