开发者社区> 王树义> 正文

如何用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)

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
建议收藏chatGPT说的Python词云教程
写在前面 这个是当下最流行最时髦的AI神器chatGPT和我一起合作写的一篇通用技术文章,请读者笑纳! Python词云教程 介绍 Python是一种流行的编程语言,它可以用于许多不同的应用程序,包括数据可视化。其中一个最流行的数据可视化技术是词云。词云是一种可视化技术,可以将文本中出现频率较高的单词呈现为更大的字体,从而突出显示它们的重要性。 步骤1:安装所需的库 您需要安装一些Python库,以便可以使用词云功能。其中最重要的是wordcloud和matplotlib库。您可以使用以下命令在命令行中安装这些库: pip install wordcloud pip install matpl
19 0
python制作词云,创建txt文件
目录 1.本文简介 2.所需要用到的第三方库 3.需要的txt文件 4.大概流程 5.词云优化 6.完整代码和成果展示 7.词云扩展 1.本文简介 词云广泛应用于ppt、新闻、文章中,能突出下文所要讲述的主体,能在作品中添加一张词云肯定是加分的。下面主要是我最近学到的制作简单的词云的方法,各方面我会尽量讲的细致一点,希望能对大家有所帮助。 2.所需要用到的第三方库 from wordcloud import WordCloud import matplotlib.pyplot as plt import jieba 第一个库是制作词云所需要的(根据英文意思也能知道);第二个库能进行优秀
31 0
python实现WordCloud 词云 + LDA 主题模型 附完整代码
python实现WordCloud 词云 + LDA 主题模型 附完整代码
47 0
python读取PDF文件并做词云可视化
python读取PDF文件并做词云可视化
59 0
手把手教你用Python绘制词云
手把手教你用Python绘制词云
101 0
Python数据分析系列04-豆瓣影评、歌词词云分析
哈佛大学的校训之一:你所浪费的今天,是逝去的人所奢望的明天;你所厌恶的现在,是未来的你回不去的曾经。
27 0
【Python | 词云】聊天记录绘制超美词云(七夕快乐 ,曾同学)
【Python | 词云】聊天记录绘制超美词云(七夕快乐 ,曾同学)
35 0
【Python | 词云】聊天记录绘制超美词云(七夕快乐 ,曾同学)
七夕快乐 ! 🎉 —— "我发现我心里众生平等,只有你一个超重"
71 0
Python爬取全网文字并词云分析(全程一键化!)
Python爬取全网文字并词云分析(全程一键化!)
168 0
python生成词云教程(附带QQ聊天记录生成词云实战)
python生成词云教程(附带QQ聊天记录生成词云实战)
68 0
+关注
王树义
终身学习者、大学教师。稍微懂一点儿写作、演讲、Python和机器学习。公众号“玉树芝兰”(nkwangshuyi)。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
给运维工程师的Python实战课
立即下载
Python 脚本速查手册
立即下载
ACE 区域技术发展峰会:Flink Python Table API入门及实践
立即下载