摘要: 当我们手中有一篇文档,比如书籍、小说、电影剧本,若想快速了解其主要内容是什么,则可以采用绘制 WordCloud 词云图,显示主要的关键词(高频词)这种方式,非常方便。本文将介绍常见的英文和中文文本的词云图绘制,以及 Frequency 频词频词云图。
写在前面:由于文中有一些超链接,无法在公众号打开,建议点击底部「阅读原文」或者复制下面的博客链接到浏览器打开,体验更好。
在这里相信有许多想要学习大数据的同学,大家可以+下大数据学习裙:957205962,即可免费领取套系统的大数据学习教程
https://www.makcyun.top/
在上一篇文章「pyspider 爬取并分析虎嗅网 5 万篇文章 」中的文本可视化部分,我们通过 WordCloud 和 jieba 两个包绘制了中文词云图,当时只是罗列出了代码,并没有详细介绍。接下来,将详细说明各种形式的词云图绘制步骤
1. 英文词云
我们先绘制英文文本的词云图,因为它相对简单一些。这里以《海上钢琴师》这部电影的剧本为例。
首先,准备好电影剧本的文本文件(如下图):
接下来,我们绘制一个最简单的矩形词云图,代码如下:
这里,通过 open() 方法读取文本文件,然后在 WordCloud 方法中设置了词云参数,再利用 generate_from_text() 方法生成该电影剧本的词云,最后显示和保存词云图。十几行代码就可以生成最简单的词云图:
通过上面的词云图,你可能会发现有几点问题:
-
可不可以更换背景,比如白色?
-
词云图能不能换成其他形状或者图片?
-
词云中最显眼的词汇 「ONE」,并没有实际含义,能不能去掉?
以上这些都是可以更改的,如果你想实现以上想法,那么需要先了解一下 WordCloud 的API 参数及它的一些方法。
这里,我们列出它的各项参数,并注释重要的几项:
关于更详细的用法,你需要到官网了解。
了解了各项参数后,我们就可以自定义想要的词云图了。比如更换一下背景颜色和整体风格,就可以通过修改以下几项参数实现:
结果如下:
接下来,我们提升一点难度,通过设置 StopWords 去掉没有实际意义的「ONE」字符,然后将词云图