在Python中使用词云

2022-12-05 12:14:04 浏览数 (2)

什么是词云?

词云,又称文字云,英文名:Word Cloud,是文本数据的视觉表示,由词汇组成类似云的彩色图形,用于展示大量文本数据。通常用于描述网站上的关键字元数据(标签),或可视化自由格式文本。每个词的重要性以字体大小或颜色显示。词云的作用:

  • 快速感知最突出的文字。
  • 快速定位按字母顺序排列的文字中相对突出的部分。

词云的本质是点图,是在相应坐标点绘制具有特定样式的文字的结果。

词云的构成

图表类型

词云

适合的数据

两个代表坐标的连续数据字段(自动计算)、一个代表文字内容的分类数据字段、多个代表文字样式的分类数据字段如颜色、大小、旋转角度等(可选)

功能

对比文字的重要程度

数据与图形的映射

两个连续数据字段映射到横轴和纵轴的位置、代表文字内容的分类数据字段映射到文字图形、多个代表文字样式的分类数据字段分别映射到文字图形的样式

适合的数据条数

超过 30 条数据

词云的应用

词云图可以很直观的显示词频,词云可用于对比大量文本,或者用文字做边界限制,描绘出各种形成。词云图是由词标签和词大小构成的,每个词标签由数据的维度决定,每个词大小由数据的度量决定。词云图适用于做一些用户的画像和用户的标签或者近期热点等场景。

词云如何生成?

本文主要讲解使用Python代码生成词云,会涉及使用Python第三方库使用。

  • wordcloud: 一个词云生成器,只要进行相关的配置就能生成相应的词云。

安装方式: pip install wordcloud

词云实例

简易词云

生成词云的基础代码也很简单,首先需要准备好“准备文本”,然后创建“创建词云对象”,通过文本数据生成词云,最后保存词云图片。

代码如下:

代码语言:javascript复制
import wordcloud

sentence = 'Do not go gentle into that good night!'

wc = wordcloud.WordCloud()

wc.generate(sentence)

wc.to_file("test_wc.png")

简单几行代码就可以生成词云了,这种词云展示的比较简单。

图片轮廓的词云

为了能让展示的词云更美观可以生成带图片轮廓的词云,期望效果如下图:

首先,需要准备一个基础背景图片,可以去网上搜索就可以找到,如下图:

然后准备文本数据,生成图片的nd-array传入图片路径。创建词云对象,设置宽度、高度、背景颜色等属性,通过文本数据生成词云生成图片。

代码语言:javascript复制
import wordcloud, imageio

sentence = "我爱我的祖国!她地大物博,幅员辽阔,每一个地方都有着它独特的美。倘若你去看过冬天的黑龙江,一定会被那儿赏心悦目的景色所吸引:皑皑的白雪落入松林,轻盈曼妙,犹如精灵在舞蹈,风吹过松林,好似天使在歌唱,晶莹的冰雕在月光的沐浴下闪闪发光。到了遍地牛羊的内蒙古,那又是另一番情景:策马奔驰在辽阔的大草原上,你可以听到牧羊人的歌声从远处悠悠传来,悦耳动听,犹如天籁。
祖国山川雄奇,河水秀逸,这样的美景难道不值得我爱吗? 我爱我的祖国!她有着五千年的灿烂文化:气势磅礴绵延万里的长城,是古代中国人民智慧和鲜血的结晶,那是我们民族的脊梁。今天它升华成为我们的民族精神,不断地鼓励着我们去克服重重困难。在汶川大地震中,我们团结一心,众志成城,军民协作,与天灾抗争,救出了无数鲜活的生命。正是这样的精神,让我们中华民族像长城一样屹立不倒。从轻呤婉约、细腻优雅的昆曲中,我看到了几千年来中国文化的精致卓绝,那是我们中国的美学,如中国的水墨画那样清新淡雅,显而不露。"


im = imageio.imread('test.jpg')

font_path="/System/Library/fonts/PingFang.ttc"

wc = wordcloud.WordCloud(
    #设置宽为600
    width=600,
    #设置高为800
    height=800,
    #设置背景颜色
    background_color='white',
    #设置字体,如果文本数据是中文一定要设置,不然就是方块
    font_path=font_path,
    #设置图片的形状
    mask=im,
    #设置轮廓粗细
    contour_width=1,
    #设置轮廓颜色
    contour_color='black'
)

wc.generate(sentence)

wc.to_file('wc.png')

最终的生成效果如下图:

0 人点赞