大家好,欢迎来到 Crossin的编程教室 !
什么是词云?在网络上我们经常可以看到一张图片,上面有一大堆大小不一的文字,这便是词云。词云一般是根据输入的大量词语生成的,如果某个词语出现的次数越多,那么相应的大小就会越大。
Python 中有一个专门用来生成词云的模块:wordcloud,直接 pip 安装即可,然后我们来看看它的用法。
# 导入模块
from wordcloud import WordCloud
# 准备文本数据,是一个字符串,单词之间用空格分隔
sentence = "hello satori hello mashiro hello satori"
# 创建词云对象
wc = WordCloud()
# 根据文本生成词云
wc.generate(sentence)
# 保存为图片
wc.to_file("word.png")
我们打开图片看看效果:
我们看到单词就显示在了图片上,如果单词一多就像天空的云彩一样漂浮着,并且单词出现的频率越高,那么该单词在图片上大小就越大。
虽然词云生成了,但是风格是固定的,我们可不可以调整呢,显然是可以的。WordCloud 里面支持很多参数用来调整风格,我们看一下这些参数。
-
width:词云的宽,默认是400像素;
-
height:词云的高,默认是200像素;
-
background_color:词云的背景颜色,默认是黑色;
-
font_path:生成的词云所使用的字体,传入一个字体名称;
-
mask:词云背景图片,接收一个 Numpy 数组。可以使用 PIL 或者 cv2 读取图片,然后生成数组;
-
stopwords:要屏蔽的词语,接收一个集合,生成词云的时候会忽略掉屏蔽的词语;
-
max_font_size:字体的最大大小,默认为 None;
-
min_font_size:字体的最小大小,默认为 None;
-
max_words:最多显示多少个单词,默认为200。比如文本数据有 10000 个不重复单词,肯定不可能全部显示,而是按照出现的频率高低排序,选择出现频率最高的 N 个单词,