快速制作一款高逼格词云图

词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。

一、先看看几个词云图

教师节词云Python 教师节词云图_Python


三教 × 九流:「生活、工作、学习」三教,「学术思辨、故事、诗歌、时评、随笔、科技工具、书影音、新技能 get、吐槽」九流。

教师节词云Python 教师节词云图_词云_02

读书专题文章中的书名,生成的词云图,今年你读过哪几本书?

教师节词云Python 教师节词云图_Python_03

六神的词云图,抓取他的120篇文章标题,进行分词统计后生成。

教师节词云Python 教师节词云图_教师节词云Python_04

二、开始制作词云图

  • 工具: 我使用的是TAGUL, https://tagul.com/ 一款在线词云制作工具,非常简单。

教师节词云Python 教师节词云图_词云_05

步骤:

1)导入文本

Import words , 可以直接粘贴导入文本数据,或者以web url的方式导入。文本数据包括关键词和size。
Add,是添加一个关键词和size

教师节词云Python 教师节词云图_Python_06

2)选择形状 -- 自定义形状图片

TAGUL提供了一些模板图形,左边是分类主题。

教师节词云Python 教师节词云图_数据_07

一般图形选取的原则,看关键词的内容来定,如公司LOGO,人物头像,需要上传你的图形图片,点 ADD IMAGE。自定义形状图片,有一个技巧,图片的清晰度不要求很高,轮廓清楚就好。

教师节词云Python 教师节词云图_数据_08

3)修改字体

注意TAGUL默认的都是英文字体,关键词如果是中文或有中文是无法显示出来的。

点Add Font添加就行,添加你电脑上 C:/WINDOWS/font 文件夹下的你喜欢的一种字体就行。

注意,如果你使用的是Mac,需把Windows下的字体拷一个过来进行添加就OK。

4)选择文字排列方向

选择文字方向即可。

5)生成词云 -- 下载

点击 "Visualize" 就可以生成。在Download and Share中下载标清(SQ)图片,就是你想要的词云图。

TAGUL付费版可以下载高清的图片,也可以生成嵌入的网页代码,词云有动态效果。

 

三、词源获取:爬虫和分词技术

我用以获取关键词的方法都是使用Python爬虫,如爬取简书用户信息,爬取简书首页、热门文章标题,爬取51JOB招聘职位信息 ......

注意,这时候你拿到的还不是关键词,是句子或段落,怎么得到关键词?就是把句子切成多个词语。看过老罗锤子M1发布会的一定对Big Bang有深刻的印象,对的,Big Bang就是分词的应用。

教师节词云Python 教师节词云图_词云_09

 

再把这些关键词进行分类汇总得到词频数据,选择那些高频词,按上面的方式制作词云图。

比如你看到的上面软技能的关键词,实际上是从所有职位描述进行分词得到的 372,739个词,再进行分类汇总后得出的高频词。分类汇总用的是SQL聚合函数,也可以用Excel。

爬虫和分词都需要编程实现。如果你没有编程方面的基础,这一步也可以简化来做,就是主观选取一些关键词,随机或手动指定词频(size)。

所以一个完整的词云图的制作过程应该是:网络抓数据(Python或R语言)— 分词 — 分类汇总(SQL)— 使用词云工具生成云图。

 

from os import path
from scipy.misc import imread
import matplotlib.pyplot as plt
import jieba
from wordcloud import WordCloud


text = cleaned_comments #文本数据
cut_text = ' '.join(jieba.lcut(text))
print(cut_text)
color_mask = imread("cat.jpg")
cloud = WordCloud(
    font_path='Songti.ttc',  # 字体最好放在与脚本相同的目录下,而且必须设置
    background_color='white',
    mask=color_mask,
    max_words=2000,
    max_font_size=40
)
word_cloud = cloud.generate(cut_text)
plt.imshow(word_cloud)
plt.axis('off')
plt.show()