前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >怎么制作词云图?

怎么制作词云图?

作者头像
WEBJ2EE
发布2024-03-22 14:00:54
1470
发布2024-03-22 14:00:54
举报
文章被收录于专栏:WebJ2EEWebJ2EE

词云

词云,又称文字云,是一种将文本数据中的关键词通过视觉图形表现的方式。例如:

wordcloud

使用 Python 环境下的 wordcloud 工具,就能方便地生成词云图(感谢开源社区!🎉️ )。

下图就是用小说《斗破苍穹》中两个章节的内容,生成的词云图😄。

实战

【1】安装 Python 依赖。

中文词云图的制作主要用到下面几个工具:

  • wordcloud:词云生成
  • jieba:中文分词
  • PIL:图像处理库
  • numpy
代码语言:javascript
复制
pip install wordcloud
pip install jieba

【2】准备用于生成词云的素材文本。

本文采用小说《斗破苍穹》中两个章节的内容作为生成词云图的素材。

【3】使用 jieba 对素材文本进行分词,形成词汇文本。

(PS:词云嘛...用“词”构造的云,但中文句子中的词汇没有明显分隔,所以需要分词。👀️ )

(PS:如果你使用英文素材,那就不需要再分词,因为英文句子中的词汇自然分隔。🚀️ )

代码语言:javascript
复制
import jieba
import re
with open('dpcq.txt', encoding='utf-8') as f:
    mytext = f.read()
    mytext = re.sub(r'[\n?“”:…!,。.]', '', mytext)
    mytext = " ".join(jieba.cut(mytext))

(PS:显然素材中的换行、中文标点等符号不应该生成到词云中,我们采用正则表达式将它们删除。)

【4】准备用做词云形状的蒙版(mask)素材。

(PS:选用这种高比对度的剪影图,后面麻烦事会少一些)

代码语言:javascript
复制
import numpy as np
from PIL import Image 
mask = np.array(Image.open('cat.jpg'));

【5】使用 wordcloud 构造词云并生成词云图。

(PS:除了标点符号外、还有一类词汇出现频率很高,但没有什么意义,例如助词、代词、连词等。这些词就是停用词,我们也不希望它们出现在词云中,可以通过 stopwords 参数告知 wordcloud 哪些是停用词)

代码语言:javascript
复制
from wordcloud import WordCloud

stopwords = {'的', '和', '是', '都', '而', '就',
    '都', '而', '或', '如', '以', '我',
    '你', '他', '她', '它', '们', '它们',
    '我们', '你们', '他们', '她们', '的',
    '了', '着', '有', '无', '不', '么', '在', 
    '也', '让', '吧', '这', '啊', '有些', '不过', 
    '还', '那', '对', '道', '得'}

wc = WordCloud(
    font_path='msyhl.ttc',
    mask=mask,
    background_color="white",
    stopwords=stopwords,
    repeat=True
).generate(mytext)

wc.to_file('cloud.jpg')

(PS:wordcloud 默认不支持中文符号的展示,我们需要通过 font_path 参数指定一个中文字体。)

【6】使用 matplotlib 绘制词云图

代码语言:javascript
复制
%matplotlib inline
import matplotlib.pyplot as plt
plt.axis('off')
plt.imshow(wc, interpolation='bilinear')

参考

  • wordcloud
    • python仓库:https://pypi.org/project/wordcloud/
    • 说明文档:https://amueller.github.io/word_cloud/
    • git仓库:https://github.com/amueller/word_cloud
  • 图片处理
    • 背景消除:https://pixian.ai/
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WebJ2EE 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 词云
  • wordcloud
  • 实战
  • 参考
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档