如何用Python做词云(收藏)
看过之后你有什么感觉?想不想自己做一张出来?
如果你的答案是肯定的,我们就不要拖延了,今天就来一步步从零开始做个词云分析图。当然,做为基础的词云图,肯定比不上刚才那两张信息图酷炫。不过不要紧,好的开始是成功的一半嘛。食髓知味,后面你就可以自己升级技能,进入你开挂的成功之路。
网上教你做信息图的教程很多。许多都是利用了专用工具。这些工具好是好,便捷而强大。只是它们功能都太过专一,适用范围有限。今天我们要尝试的,是用通用的编程语言Python来做词云。
Python是一种时下很流行的编程语言。你不仅可以用它做数据分析和可视化,还能用来做网站、爬取数据、做数学题、写脚本替你偷懒……
知道豆瓣吗?它一开始就是用Python写的。
在目前的编程语言热度排序里,Python屈居第四(当然,很多人不同意,所以编程语言的排行榜有许多,你懂的)。但看问题要用发展眼光。随着数据科学的发展,Python有爆发的趋势。早点儿站上风口,很有益处。
如果你之前没有编程基础,没关系。从零开始,意味着我会教你如何安装Python运行环境,一步步完成词云图。希望你不要限于浏览,而是亲自动手尝试一番。到完成的那一步,你不仅可以做出第一张词云图,而且这还将是你的第一个有用的编程作品。
心动了?那咱们就开始吧。
安装
首先,我们需要安装Python运行环境。
如果你用的是macOS,那么你的系统里面实际已经预装好了Python。
然而我们要使用到许多扩展包的功能。因此最好安装一个Python工具套装。只需要一次安装,以后大部分的功能就都已集成了。不必每次使用新功能,都去零敲碎打地安装新包了。
Python的套装有许多种,这里推荐给大家anaconda。因为经过我4年多的尝试与对比,感觉这款软件包的安装更为便捷,扩展包的涵盖范围与结构更合理。
请你到 这个网址 下载anaconda套装。下拉网页找到下载位置。根据你的操作系统类型选择合适的版本。
因为我的系统是macOS,所以网站直接给我推荐的就是macOS系统版本。但如果你用的是Windows或Linux,请切换到相应的标签页上面。
不管你用的是哪个操作系统,请注意右侧的两个按钮,分别对应Python 2.X和3.X版本。有人一定很纳闷,既然有新的版本,我凭什么用旧的?
不是这样的。到2020年之前,Python的两个版本会一直并存。Python的开发者确实希望大家升级切换到3.X版本。可惜目前3.X版本兼容的扩展包数量比2.X版本要少,尤其是涉及到数据科学类的软件包,就尤其明显。所以如果你是初学者,我建议你下载2.X(目前是2.7)版本,这样在以后的使用中,可能遇到的问题会少一些。等你运用熟练了,再迁移到3.X版本不迟。相信我,到那时你会很快适应新版本的。
下载后,执行安装文件就行了。
根据你的电脑运行速度不同,安装的时间长短不等。耐心点儿,只需要等这一次嘛。
安装完毕之后,请你安装一个“现代化”浏览器。如果你用的是macOS,那么系统自带的Safari就挺好。其他的选择包括Firefox和Google Chrome。
请安装上述浏览器之一,然后将其设置为系统默认的浏览器。
好了,下面请进入命令行模式。
在macOS和Linux下,你需要开启一个终端(terminal)。
如果是Windows,请打开“开始”-“附件”-“命令提示符”。
键入以下命令:
mkdir democd demo
好了,你现在有一个专用的目录,叫做demo了。请到macOS的Finder或者Windows的“我的电脑”里面,找到这个目录并且打开它。
回到终端下面,macOS或者Linux用户请键入以下命令:
pip install wordcloud
macOS会提示你先安装XCode命令行工具,你按照默认设置一步步进行就可以了。但是请注意,务必在WiFi环境下安装。如果你用的是4G流量,那你可要破费一笔了。
如果你用的是Windows,那么为了使用这个词云包,就稍微麻烦一些,你需要到 这里 下载 wordcloud‑1.3.1‑cp27‑cp27m‑win32.whl 这个文件。下载后将它拖拽到你的demo目录里。
在命令行下,先执行:
pip install wheel
然后,再执行:
pip install wordcloud‑1.3.1‑cp27‑cp27m‑win32.whl
好了,我们需要的全部Python运行环境终于装好了。
请务必按照上述步骤执行,确保每一步都已经顺利完成。否则一旦遗漏,后面运行程序会报错。
数据
词云分析的对象,是文本。
理论上讲,文本可以是各种语言的。英文、中文、法文、阿拉伯文……
为了简便,我们这里以英文文本为例。你可以随意到网上找一篇英文文章作为分析对象。我特别喜欢英剧"Yes, minister",所以到维基百科上找到了这部剧的介绍词条。
我把其中的正文文字部分拷贝了下来,存储为一个文本文件,叫做yes-minister.txt。
把这个文件挪动到我们的工作目录demo里。
好了,文本数据已经准备好了。开始进入编程的魔幻世界吧!
代码
在命令行下,执行:
jupyter notebook
浏览器会自动开启,并且显示如下界面。
这就是咱们刚才的劳动成果——安装好的运行环境了。我们还没有编写程序,目录下只有一个刚才生成的文本文件。
打开这个文件,浏览一下内容。
回到Jupyter笔记本的主页面。我们点击New按钮,新建一个笔记本(Notebook)。在Notebooks里面,请选择Python 2选项。
系统会提示我们输入Notebook的名称。程序代码文件的名称,你可以随便起。但是我建议你起一个有意义的名字,将来好方便查找。由于我们要尝试词云,就叫它wordcloud好了。
然后就出现了一个空白的笔记本,供我们使用了。我们在网页里唯一的代码文本框里,输入以下3条语句。请务必逐字根据示例代码输入,空格数量都不可以有差别。尤其注意第三行,用4个空格,或者1个Tab开始。输入后,按Shift+Enter键,就可以执行了。
filename = "yes-minister.txt"with open(filename) as f:
没有任何结果啊。
对,因为我们这里没有任何输出动作,程序只是打开了你的yes-minister.txt文本文件,把里面的内容都读了出来,存储到了一个叫做mytext的变量里面。
然后我们尝试显示mytext的内容。输入以下语句之后,还是得按Shift+Enter键,系统才会实际执行该语句。
mytext
之后的步骤里,也千万不要忘了这一确认执行动作。
显示的结果如下图所示。
嗯,看来mytext变量里存储的文本就是我们从网上摘来的文字。到目前为止,一切正常。
然后我们呼唤(import)词云包,利用mytext中存储的文本内容来制造词云。
from wordcloud import WordCloud
这时程序可能会报警。别担心。警告(warning)不影响程序的正常运行。
此时词云分析已经完成了。你没看错,制作词云的核心步骤只需要这2行语句,而且第一条还只是从扩展包里找外援。但是程序并不会给我们显示任何东西。
说好了的词云呢?折腾了这么半天,却啥也没有,你蒙人吗?!
别激动。输入下面4行语句后,就是见证奇迹发生的时刻了。
%pylab inlineimport matplotlib.pyplot as plt
运行结果如图所示:
不用那么兴奋嘛。
你可以在词云图片上单机鼠标右键,用“图片另存为”功能导出。
通过这张词云图,我们可以看到不同单词和词组出现的频率高低差别。高频词的字体明显更大,而且颜色也很醒目。值得说明的是,最显眼的单词Hacker并不是指黑客,而是指这部剧的主角之一——哈克首相。
包含程序完整代码的ipynb文件,我也分享了出来,你可以从 这里 下载。
希望你在尝试过程中一切顺利。对自己生成的词云图满意吗?如果你不满意,也不要紧,可以挖掘wordcloud软件包的其他高级功能。尝试一下,看自己能不能做出这样的词云图来?学习过程中遇到什么问题或者想获取学习资源的话,私聊我
如何用Python做词云(收藏)的更多相关文章
- 一步一步教你如何用Python做词云
前言 在大数据时代,你竟然会在网上看到的词云,例如这样的. 看到之后你是什么感觉?想不想自己做一个? 如果你的答案是正确的,那就不要拖延了,现在我们就开始,做一个词云分析图,Python是一个当下很流 ...
- 用Python做词云可视化带你分析海贼王、火影和死神三大经典动漫
对于动漫爱好者来说,海贼王.火影.死神三大动漫神作你肯定肯定不陌生了.小编身边很多的同事仍然深爱着这些经典神作,可见"中毒"至深.今天小编利用Python大法带大家分析一下这些神作 ...
- 如何用Python 制作词云-对1000首古诗做词云分析
公号:码农充电站pro 主页:https://codeshellme.github.io 今天来介绍一下如何使用 Python 制作词云. 词云又叫文字云,它可以统计文本中频率较高的词,并将这些词可视 ...
- Python给小说做词云
闲暇时间喜欢看小说,就想着给小说做词云,展示小说的主要内容.开发语言是Python,主要用到的库有wordcloud.jieba.scipy.代码很简单,首先用jieba.cut()函数做分词,生成以 ...
- python3做词云分析
python3做词云 其实词云一般分为两种,一个是权重比,一个是频次分析 主要还是体现在自然语言方向,难度较大,但这里我们用jieba词库 主要思路, 后端算数据+前端生成图(D3-cloud-好像是 ...
- 使用python绘制词云
最近在忙考试的事情,没什么时间敲代码,一个月也没几天看代码,最近看到可视化的词云,看到网上也很多这样的工具, 但是都不怎么完美,有些不支持中文,有的中文词频统计得莫名其妙.有的不支持自定义形状.所有的 ...
- 做词云时报错cannot import name ‘WordCloud‘ from partially initialized module ‘wordcloud‘的解决办法
问题: 在做词云时,运行时出现该问题,wordcloud安装成功,但运行出错,错误提示是:cannot import name 'WordCloud' from partially initializ ...
- 使用Python定制词云
一.实验介绍 1.1 实验内容 在互联网时代,人们获取信息的途径多种多样,大量的信息涌入到人们的视线中.如何从浩如烟海的信息中提炼出关键信息,滤除垃圾信息,一直是现代人关注的问题.在这个信息爆炸的时代 ...
- python爬虫——词云分析最热门电影《后来的我们》
1 模块库使用说明 1.1 requests库 requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更 ...
随机推荐
- 分享我的学习记录 svn地址
地址:svn://121.42.160.2/myproject 用户名:scaner 密码:zhinengkan 这个用户只有读权限,没有修改的权限,如果有什么建议或代码中有不对的地方,欢迎再留言中告 ...
- openMP编程(下篇)之数据私有与任务调度
title: openMP编程(下篇)之数据处理子句与任务调度 tags: ["openMP"] notebook: 分布式程序_Linux --- openMP并行编程中数据的共 ...
- 【Uva 10498】满意值
Description Kaykobad教授把为ACM选手买饭的任务交给了Nasa.Nasa决定买n种不同的食物.然后他询问了m名选手对每种食物的需求量.选手们当然不会给出任何符合逻辑的回答,他们只是 ...
- salesforce零基础学习(七十一)级联表DML操作
曾经做项目没有考虑那么多,对于级联表操作都是正常的一步一步操作,没有考虑过失败情况,最近项目遇见了失败的情况,导致碰到了相应的情况,特此mark一下,免得后期继续踩坑. 需求如下:新建页面,页面中包含 ...
- mui开发app之自定义事件以更新其他页内容
我之前做过jquery mobile的开发,那还是前年的事情 在jquery mobile中,由于页面是存储在div[data-role=page]的dom中(jqmobile通过对data-role ...
- 手把手教做单点登录(SSO)系列之一:概述与示例
本系列将由浅入深的结合示例.源码以及演示视频,手把手的带大家深入最新的单点登录SSO方案选型与架构开发实战.文末附5个满足不同单点登录场景的gif动画演示(如果看不清请在图片上右键用新窗口打开),本系 ...
- python基本运算
环境:python3.x a,b = 60,164 一.算数运算符 操作符 描述 例子 + 加法 a+b = 224 - 减法 a-b = -104 * 乘法 a*b = 9840 / 除(保留小数位 ...
- session知识总结
0.什么是会话? - 简单理解:打开浏览器到关闭浏览器过程中的操作.请求. 1.Session是什么? - session是HttpSession的简称: - 用于保存会话状态: - 将会话状态保存在 ...
- 软件开发的一些"心法"
从事软件开发也有好几年了,和一开始那个懵懵懂懂的小菜鸟相比,自己也感觉到了一些变化. 也许是熟能生巧, 趟过很多坑,但核心的绝不是这些细节的东西. 打个比方,如果说对某种语言的特性和技巧的掌握属于身法 ...
- 分针网—IT教育:作为PHP开发人员容易忽视的几个重点
无论是学习什么样的一个开发.ASP开发.java开发.当学习还不是很久的时候,一般都是不知道它们的精华是在哪里,而现在很多的php程序员也是不知道PHP的精华所在,为什么perl在当年在商界如此的出名 ...