我们平时花大量时间去阅读各种各样的文章,有没有一种方式可以让你快速得知一篇文章的概要呢?
今天我们介绍一种极其炫酷的表现方式——词云。当然,如果我只是拿普通的词云出来做文章就不太符合我的风格了,今天对词云稍加处理,做一个会变颜色的词云。
下面看效果动图(这个动图gif文件就是程序直接生成):
原创不容易,请点击右上方关注按钮,多多支持~
所需要的库
pip install jieba
pip install wordcloud
pip install imageio
流程要点
- 对一篇文章进行分词。使用jieba库
- 把分词仍给词云库,生成词云。使用wordcloud库
- 重复生成20张图形一样,但每个单词的颜色亮度不一样的词云图片
- 把这些词云图片,直接生成一张gif动态图。使用imageio库
细节重点
- (行44)使用jieba库的cut方法进行分词
- (行45)然后把所有分词用空格串成一个字符串
- 这是为了让词云库识别,目前还不知道能否直接传入分词序列
- (行53和行58) 因为词云库默认使用英文字体,我们的内容有中文,必需指定一种中文字体。否则会显示乱码。
- (行64) 调用WordCloud的方法to_file即可生成一张词云图片。
- (行61) 这里是重点,我们要控制每个词的颜色,因此这里传入了一个自定义方法进行操作。最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以架尉♥信(同音):276 3177 065 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
看下图就是控制每个词的颜色的自定义方法
- 在词云库每生成一个词的时候,就会进入这个方法一次
- (行24-28) 逻辑是每个词首次进入时,则会设置饱和度为0,然后下一次就会把饱和度增加10,其他色度值保留。
- 这样就会产生出每张图片的图案一样,但每个词的颜色饱和度逐渐变大
- 这个方法使用imageio.mimsave方法,把上一步生成的多张图片合并成一张gif动态图
- (行76) 注意我们生成的图片的名字是(1.png,2.png,……10.png)。因此这里需要转成int然后排序,否则文件名的排序会出现类似(1.png,10.png,2.png)
小结
- 当需要解析一篇中文的内容时,使用jieba库进行分词。
- 当需要以炫酷形式表达文字内容的关键词时,使用wordcloud生成词云图
- 当需要生成动态图时,使用imageio库。
本文通过组合上述3个功能,即可做出一些有趣的事情,充分发挥你的想象力,你手中的Python就更有生命力。 你有想到其他有趣的功能组合吗?欢迎评论分享你的想法~~
如果觉得本文对你有所帮助,记得关注、评论、转发、收藏噢~