02_IT Boy,你的年终总结缺张图

在这里插入图片描述


博文配套视频课程:24小时实现从零到AI人工智能


第1步:词云图是什么鬼

词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨

马上要到年底了,各种年终总结报告PPT如约而至,内容冗长且没有任何新意。如何在演讲的前几秒抓住领导或者听众的注意力呢?这个时候你可以放一张词云图,报告重点一目了然。报告结束后说不定还有MM请教你词云图如何制作,然后… 咳、咳、咳、醒醒扯远了我们先来看下词云图的庐山真面目吧!

在这里插入图片描述大家可以看到所谓的词云图它能帮我们过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。接下来我们就来讲解改变未来Python语言如何采用几行代码完成词云图的制作。

第2步:安装词云图库

本教程默认采用Anaconda作为开发与运行环境,它集成了目前主流的科学库和的sklearn机器学习框架,这样让我们后续学习数据挖掘与机器学习时更加高效,本身还自带了pip命令用来安装和管理Py的库文件,如果对Anaconda不是很熟悉可以出门左拐阅读我的另一篇博文菜鸟逃离记之Anaconda环境安装

C:\Users\57423>pip install wordcloud
# 默认是从官网下载比较慢,如果配置的PIP镜像则可以通过国内镜像下载
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Collecting wordcloud
  Downloading https://mirrors.aliyun.com/pypi/packages/96/36/f712ec19c6e253d27c5cae0d45a4a465ebb5ccf0cb26887a6a3127d13769/wordcloud-1.6.0-cp37-cp37m-win_amd64.whl (153kB)
    100% |████████████████████████████████| 163kB 1.5MB/s

第3步:jieba分词器

我们在做词云图之前,首先需要准备一篇文章作为素材。有了文章还不行需要按照国人的语境把文章分成单个的词,在这里我们选用了Py目前使用最广泛的jieba分词器。原理各位不用深究,下面的代码简单来说就是把一篇文章安装中文语境拆分成一个个的词然后用空格分隔。文章各位可以在互联网随便扒一篇即可(下面的代码py文件与new.txt 文章是同目录)

# 加载文章,指定编码读取到内容中
with open("new.txt",encoding="UTF-8") as f:
    content = f.read()

import jieba
# 把文章根据jieba分词规范进行拆分,返回的是list列表
content_list = jieba.lcut(content)
# 列表重新拼接成字符串
content = ' '.join(content_list)
print(content)

第4步:生成个性词云图

大家可以互联网随便找一张图片(背景最好是纯白或者纯黑),轮廓要清楚,这样生成词云图才能知道内容填充在哪里,在本次案例中我们选择了658*658的图片,把此图存放到.py文件的同目录即可

在这里插入图片描述

很多时候由于业务需要我们可以配置过滤掉的停用词,可以通过配置一个set()集合来指定停用词,被指定的停用词不会显示在生成的词云图中,完整代码如下

with open("new.txt",encoding="UTF-8") as f:
    content = f.read()

import jieba
# 把文章根据jieba分词规范进行拆分,返回的是list列表
content_list = jieba.lcut(content)
# 列表重新拼接成字符串
content = ' '.join(content_list)
print(content)

# 创建set集合并且设置停用词典,配置的词不会显示在词云图中
stopwords = set()
stopwords.update(["人工智能"])

from wordcloud import WordCloud
from imageio import imread   # 加载图片
# font_path: 指定支持中文字体,默认英文字体会有乱码
# stopwords: 指定要过滤的停用词,默认set格式
# width,height:指定生成图的尺寸,建议与原图相同
# background_color:指定轮廓图的背景色,轮廓图需要采用纯色
# random_state: 如不指定每次生成文字随机排列
# mask: 指定轮廓图,类似遮罩效果
wc = WordCloud(font_path=r"C:\Windows\Fonts\SimHei.ttf",
               stopwords=stopwords,
               width=658,height=658,
               background_color="white",
               random_state=1,
               mask=imread("bg.png"))
# 加载上面已经拆分的文字信息
wc.generate(content)
# 设置词云图保存路径
wc.to_file("ciyun.png")

词云图最终效果图如下
在这里插入图片描述
在这里插入图片描述

发布了128 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/lsqzedu/article/details/103580447