目录
1.本文简介
词云广泛应用于ppt、新闻、文章中,能突出下文所要讲述的主体,能在作品中添加一张词云肯定是加分的。下面主要是我最近学到的制作简单的词云的方法,各方面我会尽量讲的细致一点,希望能对大家有所帮助。
2.所需要用到的第三方库
fromwordcloudimportWordCloudimportmatplotlib.pyplotaspltimportjieba
第一个库是制作词云所需要的(根据英文意思也能知道);第二个库能进行优秀的数据可视化;第三个库就是对我们输入文本进行分词,jieba(结巴)顾名思义就是跟结巴一样把我们输入的句子分为一个一个的词。
3.需要的txt文件
首先打开我的电脑,找到我们python项目的文件夹,然后新建一个文本文档(即txt文档),接着向里面输入我们想要制作词云的文章内容,这里我就选取网上的几篇新闻作为操作对象,复制后粘贴到该文本文档,这样我们就有了一个制作词云的对象。
4.大概流程
#打开文件text=open('newcord.txt',encoding="utf-8").read() #中文分词text=' '.join(jieba.cut(text)) #利用结巴进行分词列表,将列表里面的次用空格分开并拼成常字符串#生成对象wc=WordCloud(font_path='C:\Windows\Fonts\msyh',width=1600,height=1200,mode="RGBA",background_color="black").generate(text) #显示词云plt.imshow(wc,interpolation="bilinear") plt.show() #保存词云#保存到文件wc.to_file("2.wordcloud2.png")
上面代码都有详细介绍,然后我在补充一些知识 。
在生成词云中的font_path='C:\Windows\Fonts\msyh'的作用是规定我们生成词云里面的词的字体,可以打开我的电脑然后找到C盘里的Windows>Fonts,然后看看自己电脑里有什么字体,找到自己喜欢的字体后右键点开属性就能看到该字体所对应的编码,复制后粘贴到Fonts后面(记得加上"\"哦),注意如果要生成中文的词云就要选择中文字体。
5.词云优化
我们可以发现有两个因素导致生成的词云颜值下降。
1.生成的词云带有横纵坐标轴,这两条线显得非常多余,我们只需要加上下面一条代码就可以解决这个问题。
plt.axis("off") #关闭x、y轴
2.生成的词云中带有很多无关紧要的词,如:的、是、和、年等等。因为词云会根据输入文本中词的频率来改变词的大小,而这些无关紧要的词占据了大部分空间,会使得词云的主体不够突出,我们可以做以下改进:
#去掉不想要的字exclude={'的','了','和','是','在','我们'} #生成对象wc=WordCloud(font_path='C:\Windows\Fonts\msyh',width=1600,height=1200,mode="RGBA",background_color="black",stopwords=exclude).generate(text)
6.完整代码和成果展示
完整代码如下:
fromwordcloudimportWordCloudimportmatplotlib.pyplotaspltimportjieba#打开文件text=open('newcord.txt',encoding="utf-8").read() #去掉不想要的字exclude={'的','了','和','是','在','我们'} #中文分词text=' '.join(jieba.cut(text)) #利用结巴进行分词列表,将列表里面的次用空格分开并拼成常字符串#生成对象wc=WordCloud(font_path='C:\Windows\Fonts\msyh',width=1600,height=1200,mode="RGBA",background_color="black",stopwords=exclude).generate(text) #显示词云plt.imshow(wc,interpolation="bilinear") #显示词云plt.axis("off") #关闭x、y轴plt.show() #保存词云#保存到文件wc.to_file("2.wordcloud2.png")
7.词云扩展
1.我们制作词云的操作对象txt文件的内容不仅可以手动复制粘贴,还可以结合python爬虫进行对很多数据的词云处理。
2.上面生成的词云图总体上还算过得去,但是我们还可以进行一些复杂的操作来进一步优化词云图,例如使用蒙版令词云的词按照蒙版的形状和颜色来进行排版,还可以单独改变词云图的背景颜色和文字的颜色等操作来制作更优秀的的词云图,感兴趣的读者可以在网上找资料进一步学习哈,动力来自兴趣!