共计 1941 个字符,预计需要花费 5 分钟才能阅读完成。
wordcloud 是什么?
wordcloud 是 python 的一个第三方库,称为词云也叫做文字云,是依据文本中的词频,对内容进行可视化的汇总,能够用来绘制用户画像。
装置 wordcloud
这里用 conda 新建一个环境来演示
conda create --name wordcloud python=3.9.12
conda activate wordcloud
须要装置 4 个包
conda install -y -n wordcloud numpy
conda install -y -n wordcloud pillow
conda install -y -n wordcloud matplotlib
conda install -y -n wordcloud wordcloud
应用 wordcloud
wordcloud 库把词云当作一个 WordCloud 对象,所以应用 wordcloud 能够大抵分为三个步骤
from wordcloud import WordCloud
wc= WordCloud() # 1. 创建对象:wc.generate("Choose a life of action, not one of oste-ntation.") # 2. 加载文本
wc.to_file("./word.png") # 3. 输入文件
wordcloud 根底实战
指定中文字体,不然会乱码
from PIL import Image
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
import numpy as np
wc = WordCloud(background_color="white",# 设置背景色彩
max_words=2000, # 词云显示的最大词数
height=400, # 图片高度
width=800, # 图片宽度
max_font_size=50, #最大字体
stopwords=STOPWORDS, # 设置停用词
font_path='C:/Windows/Fonts/simhei.ttf', # 兼容中文字体,不然中文会显示乱码
)
# 生成词云
wc.generate('诗词,是指以古体诗、张三。亦是汉字文化圈的特色之一。李四。诗词是论述心灵的文学艺术,而诗人、赵文,并依照严格韵律要求,用凝练的语言、绵密的章法、王五。') # 此处的 text 便是分好词的 19 大文本
# 生成的词云图像保留到本地
wc.to_file("./result2.png")
# 显示图像
plt.imshow(wc, interpolation='bilinear')
# interpolation='bilinear' 示意插值办法为双线性插值
plt.axis("off")# 关掉图像的坐标
plt.show()
附上 wordcloud 内的配置参数
wordcloud 高级实战
在本节,本文将介绍如何将词云绘制在预设定好的背景图片上。例如:以咱们最相熟的中国地图为背景,咱们将在此基础上绘制词云,只需批改 wordcloud 里的“mask”属性值,具体代码如下所示。
from PIL import Image
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
import numpy as np
wc = WordCloud(background_color="white",# 设置背景色彩
max_words=2000, # 词云显示的最大词数
max_font_size=60, #最大字体
stopwords=STOPWORDS, # 设置停用词
mask=np.array(Image.open("./china.jpg")), # 抉择背景图片为中国地图
font_path='C:/Windows/Fonts/simhei.ttf', # 兼容中文字体,不然中文会显示乱码
)
# 生成词云
wc.generate('尤韫素。福敏博。历灵秀。但紫云。司马渺。黎梓玥。毛半蕾。太叔睿范。褒华婉。劳子明。仵芷容。索听枫。蒉慕凝。邢恬欣。展向露。五江雪。靖允。邛孟。天梦山。繁孤丹。谈清悦。操乐志。甲小蕾。满辰。银长。初春雪。眭若云。庹嘉怡。奚醉巧。闾丘令怡。凭香天。古飞章。厍薇。圣莹琇。程思。功知。郜阳霁。扬澹。戈绿蝶。薛吉月。冷明轩。廉吉星。佟以轩。勇代天。苏平灵') # 此处的 text 便是分好词的女排评论文本
# 生成的词云图像保留到本地
wc.to_file("./result3.png")
# 显示图像
plt.imshow(wc, interpolation='bilinear')
# interpolation='bilinear' 示意插值办法为双线性插值
plt.axis("off")# 关掉图像的坐标
plt.show()
筹备的地图是
成果如下
正文完