
一、简介
我们常常有这样的经历,当浏览一篇文章,由于篇幅过长等其它原因,很难把握文章的中心,那么如何去找到这篇文章的中心词汇呢?类似这样场景的需求还有很多......
而具备高效的运行速度和计算能力的计算机大大解放了人类劳动量。本文将利用Python和第三方库scipy、wordcloud和jieba库对文章进行词云展示。
词云的出现很好的解决了这个问题,它是对一文本数据词语的出现次数进行排序,频率高的词汇放在前面,即利用权重对标签进行排序,并通过数据可视化很好地展现出来。
本质上,词云是特殊的点图,就是在画布上绘制点,每一个点代表一个词,点的大小是权重,根据颜色区分类别,最后将点替换为文字,配置上旋转和图形即可。
wordcloud的特点如下:
- 快速感知最突出的文字
- 快速定位按字母顺序排列的文字中相对突出的部分
二、运行环境
配置环境
Win/Mac/Linux+Python+第三方库(scipy+wordcloud+jieba)
注意事项:
- 由于英文的书写格式决定词语之间用空格分割,处理英文文章相对简单,换句话说,中文文章需要先经过分词使之处理成为单个词语,此步骤需要第三方库jieba的支持,利用jieba库对中文文本进行预分词处理。
- wordcloud词云展示编码缺省值为ASCII,由于英文是ASCII编码,而中文是unicode编码,如需展示中文词库,必须添加字体。
库安装-pip
pip install <库名> -i https://pypi.tuna.tsinghua.edu.cn/simple
三、代码展示
"""
@author: Pepi熊
"""
import wordcloud #词云
import jieba
a=open("111.txt","rt")#打开文件
txt=a.read()#读文件
a.close()#关闭文件
ls=jieba.lcut(txt)#分词
txt1=" ".join(ls)#用空格将列表生成字符串,使之用于wordcloud
print("{}".format(txt1))#测试
#设置形状mask
from scipy.misc import imread
mk=imread("demo2.jpg")
w = wordcloud.WordCloud(mask=mk,background_color="white",width=1080,height=720,font_step=10,max_font_size=500,font_path="C:\\Windows\\Fonts\\msyh.ttc",max_words=100)#配置对象参数,中文一定要配置字体不然乱码
w.generate("".join(txt1))#加载词云文本
w.to_file("1.png")#输出词云文件
demo2.jpg为词云展示的遮罩,要求图形白背景,形状黑色。

网友评论