如何用Python做词云?

简介: 临渊羡鱼,不如退而结网。我们步步为营,从头开始帮助你用Python做出第一张词云图来。欢迎尝试哦!在大数据时代,你经常可以在媒体或者网站上看到一些非常漂亮的信息图。

临渊羡鱼,不如退而结网。我们步步为营,从头开始帮助你用Python做出第一张词云图来。欢迎尝试哦!

img_4ba17f30ef1ba141edeb708a862b1fbe.png

在大数据时代,你经常可以在媒体或者网站上看到一些非常漂亮的信息图。

例如这个样子。

img_69570199f35318f0df49fc1029815fe0.jpe

看过之后你有什么感觉?想不想自己做一张出来?

如果你的答案是肯定的,我们就不要拖延了,现在就开始,做个词云分析图。当然,做为基础的词云图,肯定比不上刚才那两张信息图酷炫。不过不要紧,好的开始是成功的一半。食髓知味,后面你就可以自己升级技能,进入你开挂的成功之路。

网上教你做信息图的教程很多。许多都是利用了专用工具。这些工具好是好,便捷而强大。只是它们功能都太过专一,适用范围有限。今天我们要尝试的,是用通用的编程语言 Python 来做词云。

Python 是一种时下很流行的编程语言。你不仅可以用它做数据分析和可视化,还能用来做网站、爬取数据、做数学题、写脚本替你偷懒……

知道豆瓣吗?它一开始就是用 Python 写的。

在目前的编程语言热度排序里,Python 屈居第四(当然,很多人不同意,所以编程语言的排行榜有许多,你懂的)。但看问题要用发展眼光。随着数据科学的发展,Python 有爆发的趋势。早点儿站上风口,很有益处。

如果你之前没有编程基础,没关系。从零开始,意味着我会教你如何安装Python运行环境,一步步完成词云图。希望你不要限于浏览,而是亲自动手尝试一番。到完成的那一步,你不仅可以做出第一张词云图,而且这还将是你的第一个有用的编程作品。

心动了?那咱们就开始吧。

安装

首先,我们需要安装 Python 运行环境。我专门为你录制了一个视频教程,请点击这个链接查看,并仿照安装。

进行下一步之前,请确保你已经安装好了 Anaconda ,并且已经进入了终端。

请键入以下命令:

pip install wordcloud

如果你用的操作系统是苹果的 macOS ,系统就会提示你先安装 XCode 命令行工具,你按照默认设置一步步进行就可以了。

如果你用的是 Windows,那么为了使用这个词云包,就稍微麻烦一些。好在我为你录制了在 Windows 下用 Python 制作词云的完整视频教程,请点击这个链接查看。

数据

安装了 Python 的运行环境,我们还需要数据。

词云分析的对象,是文本。

理论上讲,文本可以是各种语言的。英文、中文、法文、阿拉伯文……

为了简便,我们这里以英文文本为例。你可以随意到网上找一篇英文文章作为分析对象。我特别喜欢英剧"Yes, minister",所以到维基百科上找到了这部剧的介绍词条。

img_4754e7b761fc71d700d359c4d8820ee7.jpe

我把其中的正文文字部分拷贝了下来,存储为一个文本文件,叫做 yes-minister.txt

请你点击这个网址链接,下载压缩包。并且把压缩包解压,将其中的 yes-minister.txt 文件挪动到工作目录 demo 里。

好了,文本数据已经准备好了。开始进入编程的魔幻世界吧!

代码

你会注意到,刚才压缩包里面其实还有一个文件,就是咱们词云绘制的完整代码 ipynb 文件。

不过我建议你还是自己跟着教程做一遍。这样印象更深刻,不是吗?

在命令行下,执行:

jupyter notebook

浏览器会自动开启,并且显示如下界面。

img_4810888f99becf781d0a2ee46cc7e3ae.jpe

这就是咱们刚才的劳动成果——安装好的运行环境了。我们还没有编写程序,目录下只有一个刚才生成的文本文件。

打开这个文件,浏览一下内容。

img_dccc9c45e7f0e6f9cb3203be5055542d.jpe

回到 Jupyter 笔记本的主页面。我们点击 New 按钮,新建一个笔记本(Notebook)。在 Notebooks 里面,请选择 Python 3 选项。

img_20012f5054fb99fcb5371dd541ba0e5a.jpe

系统会提示我们输入 Notebook 的名称。程序代码文件的名称,你可以随便起。但是我建议你起一个有意义的名字,将来好方便查找。由于我们要尝试词云,就叫它 wordcloud 好了。

img_34a66a4e7d4c6eca995a2ea26fdec5d6.jpe

然后就出现了一个空白的笔记本,供我们使用了。我们在网页里唯一的代码文本框里,输入以下3条语句。请务必逐字根据示例代码输入,空格数量都不可以有差别。尤其注意第三行,用4个空格,或者1个 Tab 开始。输入后,按 Shift+Enter 键,就可以执行了。

filename = "yes-minister.txt"
with open(filename) as f:
 mytext = f.read()

没有任何结果啊。

对,因为我们这里没有任何输出动作,程序只是打开了你的 yes-minister.txt 文本文件,把里面的内容都读了出来,存储到了一个叫做mytext 的变量里面。

然后我们尝试显示 mytext 的内容。输入以下语句之后,还是得按 Shift+Enter 键,系统才会实际执行该语句。

mytext

之后的步骤里,也千万不要忘了这一确认执行动作。

显示的结果如下图所示。

img_c67932baef34e6340ec06d0354894e5d.jpe

嗯,看来 mytext 变量里存储的文本就是我们从网上摘来的文字。到目前为止,一切正常。

然后我们呼唤(import)词云包,利用 mytext 中存储的文本内容来制造词云。

from wordcloud import WordCloud
wordcloud = WordCloud().generate(mytext)

这时程序可能会报警。别担心。警告(warning)不影响程序的正常运行。

img_4168e24159e642db122f7982e6deaa21.jpe

此时词云分析已经完成了。你没看错,制作词云的核心步骤只需要这2行语句,而且第一条还只是从扩展包里找外援。但是程序并不会给我们显示任何东西。

说好了的词云呢?折腾了这么半天,却啥也没有,你蒙人吗?!

别激动。输入下面4行语句后,就是见证奇迹发生的时刻了。

%pylab inline
import matplotlib.pyplot as plt
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")

运行结果如图所示:

img_ee697d7965717870b21e1d2a923123ec.jpe

不用那么兴奋嘛。

你可以在词云图片上单机鼠标右键,用“图片另存为”功能导出。

img_fd07f9f295881b8c3e158587dbc43804.png

通过这张词云图,我们可以看到不同单词和词组出现的频率高低差别。高频词的字体明显更大,而且颜色也很醒目。值得说明的是,最显眼的单词 Hacker 并不是指黑客,而是指这部剧的主角之一——哈克首相。

希望你在尝试过程中一切顺利。对自己生成的词云图满意吗?如果你不满意,也不要紧,可以挖掘 wordcloud 软件包的其他高级功能。尝试一下,看自己能不能做出这样的词云图来?

img_82cc390d5d9f63763c38fc25e14dca75.jpe

讨论

学完了本方法后,你做出了一张什么样的词云图?除了本文介绍的方法以外,你还知道哪些便捷地制作词云或其他信息图的方式?欢迎留言,分享给大家。我们共同交流讨论。

喜欢请点赞。还可以微信关注和置顶我的公众号“玉树芝兰”(nkwangshuyi)

如果你对数据科学感兴趣,不妨阅读我的系列教程索引贴《如何高效入门数据科学?》,里面还有更多的有趣问题及解法。

目录
相关文章
|
7月前
|
机器学习/深度学习 自然语言处理 数据可视化
数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化
数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化
|
2月前
|
自然语言处理 Python Windows
python知识点100篇系列(23)- 使用stylecloud生成词云
【10月更文挑战第10天】`stylecloud` 是 `wordcloud` 的优化版,支持使用 Font Awesome 图标自定义词云形状,操作更简便。本文介绍如何安装 `jieba` 和 `stylecloud` 库,并使用它们生成中文词云。通过 `jieba` 进行分词,再利用 `stylecloud` 的 `gen_stylecloud` 方法生成具有特定形状和颜色的词云图像。
python知识点100篇系列(23)- 使用stylecloud生成词云
|
2月前
|
自然语言处理 计算机视觉 Python
用 Python 创建词云
用 Python 创建词云
35 2
|
4月前
|
自然语言处理 搜索推荐 数据可视化
如何使用python实现一个优雅的词云?(超详细)
如何使用python实现一个优雅的词云?(超详细)
108 2
|
4月前
|
自然语言处理 数据可视化 Python
【Python】Python人民的名义-词云-关系图可视化(源码+报告)【独一无二】
【Python】Python人民的名义-词云-关系图可视化(源码+报告)【独一无二】
|
5月前
|
自然语言处理 数据可视化 机器人
如何画一个词云 | python小知识
词云,又称文字云,是文本数据的视觉表示,通过将网络文本或大量文本数据中出现频率较高的“关键词”以不同大小的字体、颜色或形状进行可视化展示,形成类似云的彩色图形。这种视觉上的突出使得浏览者能够一眼扫过文本就领略到文本的主旨,是数据可视化的一种重要形式 【7月更文挑战第6天】
58 0
|
6月前
|
搜索推荐 Python Windows
python中对于wordcloud词云生成报错提示的解决
通过搜索印象错误信息:ValueError:Only supported for TrueType fonts,几乎大部分人给出的选项都是让你指定TrueType fonts路径,或者新下载TTF字体,并重新指定,但是这两种解决方案并无法解决报错。 在真正解决问题之前,先来介绍几个与之相关的知识点,对于有经验的人,这样的知识点完全是“小菜”,但是对于初学者,这种知识点就是因为缺少相关实践而无从下手,无从搜索引擎。
|
6月前
|
数据采集 自然语言处理 数据可视化
拿来及用的Python词云图代码 | wordcloud生成词云详解
词云也叫文字云,是一种可视化的结果呈现,常用在爬虫数据分析中,原理就是统计文本中高频出现的词,过滤掉某些干扰词,将结果生成一张图片,直观的获取数据的重点信息。今天,我们就来学习一下Python生成词云的常用库wordcloud。
|
6月前
|
机器学习/深度学习 自然语言处理 数据可视化
文本挖掘与可视化:生成个性化词云的Python实践【7个案例】
词云(Word Cloud),又称为文字云或标签云,是一种用于文本数据可视化的技术,通过不同大小、颜色和字体展示文本中单词的出现频率或重要性。在词云中,更频繁出现的单词会显示得更大,反之则更小。
|
6月前
|
机器学习/深度学习 自然语言处理 数据可视化
文本挖掘与可视化:生成个性化词云的Python实践【7个案例】
词云是文本数据可视化的工具,显示单词频率,直观、美观,适用于快速展示文本关键信息。 - 用途包括关键词展示、数据探索、报告演示、情感分析和教育。 - 使用`wordcloud`和`matplotlib`库生成词云,`wordcloud`负责生成,`matplotlib`负责显示。 - 示例代码展示了从简单词云到基于蒙版、颜色和关键词权重的复杂词云生成。 - 案例覆盖了中文分词(使用`jieba`库)、自定义颜色和关键词权重的词云。 - 代码示例包括读取文本、分词、设置词云参数、显示和保存图像。
436 1