可视化词云实现
wordcloud库概述
wordcloud库是专门用于根据文本生成的词云的Python第三方库,十分常用且有趣。
wordcloud库需要由pip安装。
wordcloud库的核心是WordCloud类,所有的功能都封装在WordCloud类中,使用时需要实例化一个WordCloud类对象,并调用其generate(text)方法将text文本转化为词云。WordCloud类在创建时有一系列可选参数,用于配置词云图片。
WordCloud对象创建的常用参数
参数 | 功能 |
---|---|
font_path | 指定字体文件的完整路径,默认None |
width | 生成图片宽度,默认400像素 |
height | 生成图片高度,默认200像素 |
mask | 词云形状,默认None,即正方形 |
min_font_size | 词云中最小的字体字号,默认4号 |
font_step | 字号步行间距,默认1 |
max_font_size | 词云中最大字体字号,默认None,根据高度自动调节 |
max_word | 词云中最大词数,默认200 |
stopwords | 被排除词列表,排除词不在词云中显示 |
background_color | 图片背景颜色,默认黑色 |
WordCloud 类的常用方法
方法 | 功能 |
---|---|
generate(text) | 由text文本生成词云 |
to_file(filename) | 将词云图保存为名为filename的文件 |
:\>pip install wordcloud
可视化词云
在生成词云时,wordcloud默认会以空格或标点为分隔符对目标文本进行分词处理。对于中文文本,分词处理需由用户来完成。(中文分词请见我发布的前一篇博客)
一般步骤是先将文本分词处理,然后以空格拼接,再调用wordcloud库函数。
**处理中文时还需指定中文字体。**例如选择了微软雅黑字体(msyh.ttc)作为显示效果,需将该字体文件与代码存放在同一目录下或在字体文件名签增加完整路径。
import jieba
from wordcloud import WordCloud
txt="那一天我二十一岁,在我一生的黄金时代,我有好多奢望。\
我想爱,想吃,还想在一瞬间变成天上半明半暗的云,后来我才知道,\
生活就是个缓慢受锤的过程,人一天天老下去,奢望也一天天消逝,\
最后变得像挨了锤的牛一样。可是我过二十一岁生日时没有预见到这一点。\
我觉得自己会永远生猛下去,什么也锤不了我。"
words=jieba.lcut(txt)
newtxt=' '.join(words)
wordcloud=WordCloud(width=800,\
height=600,\
font_path="C:\\Windows\\Fonts\\禹卫书法行书简体.ttf").generate(newtxt)
wordcloud.to_file("黄金时代2.png")
wordcloud可以生成任何形状的词云。
为了获取形状,需要提供一张形状的图像。
例如下面这个云朵图像
import jieba
from wordcloud import WordCloud
from scipy.misc import imread
maskK=imread("cloud.png")
f=open("goldenage.txt","r",encoding="utf-8")
txt=f.read()
words=jieba.lcut(txt)
newtxt=' '.join(words)
wordcloud=WordCloud(width=800,\
height=600,\
mask=maskK,\
font_path="C:\Windows\Fonts\simsun.ttc" ).generate(newtxt)
wordcloud.to_file("GoldenAge.png")
运行结果如下图