什么是词云?
词云,又称文字云,英文名: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')
最终的生成效果如下图: