使用python生成词云

2018-07-10 分类:Python, 爬虫 阅读(276) 评论(0)

什么是词云呢?

词云就是一些关键词组成的一个图片。大家在网上经常看到,下面看一些例子:

 

那用python生成一个词云的话怎么办呢,首先要有一些词,咱们随便找个吧,用see you again的歌词好了,放到again.txt里面,放着待会咱们用。

然后呢,咱们用 wrodcloud这个模块,他可以实现分词,生成咱们想要的词云图片,直接使用pip install wordcloud安装即可。

过程呢,就是先读取到歌词,然后给WordCloud,让他帮咱们分词,分词的意思就是把里面的一些关键词提取出来,以及指定图片的大小,背景颜色,字体等等,废话不多说,直接上代码。

 

简单的几行代码就ok拉,下面是生成的效果图

但是wordcloud这个模块对中文分词支持不怎么好,因为英文每个单词都是空格分开的,但是中文每个词语并部署,另外有个模块,对中文分词的比较好,这个模块是jieba,直接pip install jieba即可。

下面咱们再找个歌词,来个中文的,找到一路向北的歌词,保存到ylxb.txt里面,然后先使用wordcloud分词,保存到,lyxb1.jpg里面,再用jiba来分词,保存到lyxb2.jpg里面,看看差别

第一张,wordcloud自带的分词之后的词云

第二张,使用jieba分词之后的词云

 

明显就能看出来第一个基本就没有分词,使用jieba之后,把歌词里面的一些词语提取了出来,下面是代码。

ok,词云已经生成了,很完美。但是我看到别人的词云,都是各种形状的,为啥咱们都是一个矩形呢。当然是可以解决的了,咱们想让它成什么形状就是什么形状,需要先找到一个有形状的图片,我这里找了一棵树的图片作为例子,然后需要用到PIL模块,处理图片,用numpy把这个图片的各种属性转成数字,这2个模块需要安装,都是用pip安装即可,pip install PIL,pip install  numpy。先看下图片

原来的大树参照物

 

下面是产生大树形状的词云

下面直接上代码

 

是不是很好玩呢,快去试试吧~

您可能也喜欢:

协程、gevent实现异步io、进程、线程、协程对比

异步io的说白了就是遇到io操作的时候,就停下来去做别的事情。io分网络io和磁盘io,网络io比如说打开一个网站获取数据,下载一首歌等等,磁盘io就是把数据存到一个文件里面,写到磁盘上。 从网站上获取数据或者把数据写到磁盘上都是需要时间的,那就得等待了,这样的话,很多任务的时候就比较慢了,而异步i...

more

迭代器、生成器

迭代器只有在调用next的时候才会取数据(所以省内存),或者循环的时候,一个对象里面实现了__iter__方法,iter方法里面返回了一个迭代器,那就是一个可迭代对象了。 下面的代码,首先实现了iter方法,这个对象就是一个可迭代对象了,然后又返回了self就是自己,就是一个迭代器了。 使用for ...

more

socket、tcp/ip协议、udp协议

socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。 socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,...

more

评论&留言
欢迎新朋友你的到来!
还没有人抢沙发呢~
昵称

登录

忘记密码 ?

切换登录

注册