简单词云之wordcloud的初体验

词云可以帮我们快速分析出一段文本的主要内容,即提取关键词,在python强大的库中有一款叫wordcloud库,专门来做这个。

这里制作一个完整的词云需用到的库有jieba,wordcloud,scipy.misc大致可分为三步

1 new一个词云对象

在这一步之前首先你要建立好想要分析的文本,txt格式然后和你的python源程序放在同一个目录下,这样方便设置文件打开参数,当然你也可以放到其他地方。然后就是打开一个文件word=open(),刚开始天真的以为是utf-8编码,结果win环境下默认的是gbk编码(被这个坑了不少次),然后读取,txt=word.read()因为词云是以空格为分隔所形成的,所以先调用jieba库分词,然后需要给各词语中间添加空格,ls=" ".join(jieba.lcut(txt)),jiaba.lcut返回的是列表类型,ls为列表类型。

然后开始形成一个新的对象,no=wordcloud.WordCloud()里面的参数一般用到的有background_color,用于设置词云图片的背景颜色,height,width是图片高和宽的参数,font_path是字体设置,个人喜欢设为font_path="msyh.ttc" 微软雅黑,这个如果你要解析的文本是含有中文的就必须设置字体这个参数,否则效果如下

简单词云之wordcloud的初体验_第1张图片

当然如果你觉得显示的词云太多,可以设置字数限制参数max_words,  

 
 

2 加载文本对象

no.generate(ls)

 

3 输出内容形成图片

no.to_file("xxx.jpg")  或者png格式也OK

import wordcloud
import jieba
from scipy.misc import *

mask=imread("fivestarts.jpg")
tt=open("新时代.txt", "r",encoding="gbk")#Win下是默认的gbk编码
word=tt.read()
tt.close()

ls=" ".join(jieba.lcut(word))
c=wordcloud.WordCloud(mask=mask,background_color="white",height=700,width=1000,max_words=100,font_path="msyh.ttc")

c.generate(ls)
c.to_file("a.jpg")

还有一个mask参数用于设置词云形状,默认的是矩形,可以读入自己选定的图片,这里以五角星为例,imread=("fivestarts.jpg")

 简单词云之wordcloud的初体验_第2张图片

ok 到这里就大功告成了。

你可能感兴趣的:(python学习)