前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何生成炫酷的词云(已验证)

如何生成炫酷的词云(已验证)

作者头像
用户10002156
发布2022-12-21 21:39:21
7500
发布2022-12-21 21:39:21
举报
文章被收录于专栏:生活处处有BUG

wordcloud是什么?

wordcloud是python的一个第三方库,称为词云也叫做文字云,是根据文本中的词频,对内容进行可视化的汇总,可以用来绘制用户画像。

安装wordcloud

这里用conda新建一个环境来演示

代码语言:javascript
复制
conda create --name wordcloud python=3.9.12
conda activate wordcloud

需要安装4个包

代码语言:javascript
复制
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可以大致分为三个步骤

代码语言:javascript
复制
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.输出文件

word

wordcloud 基础实战

指定中文字体,不然会乱码

代码语言:javascript
复制
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()

result2

附上wordcloud内的配置参数

img

wordcloud 高级实战

在本节,本文将介绍如何将词云绘制在预设定好的背景图片上。例如:以我们最熟悉的中国地图为背景,我们将在此基础上绘制词云,只需修改wordcloud里的“mask”属性值,详细代码如下所示。

代码语言:javascript
复制
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()

准备的地图是

china

效果如下

result3

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生活处处有BUG 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • wordcloud是什么?
  • 安装wordcloud
  • 使用 wordcloud
  • wordcloud 高级实战
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档