赞
踩
大家好!
首先要感谢CSDN各位博主,本文是在参考许多博主的文章下完成的。在Python的学习过程中,各位渊博的专业知识和精深的技术水平都给我留下了深刻的印象,使我在学习、研究和工作中受益非浅。并且从本文的选题一直到最后的完成,各位博主都是本人Python学习道路上重要的指路人。在此文完成之际,谨向各位表示深深的敬意和衷心的感谢!
投之以桃,报之以李,参考文献在最后一个章节中体现,各位朋友可以查阅,本文也会不断补充和完善,希望大家留言,共同学习,共同进步。
本文参考了许多Python词云图的文章,许多文章是针对Python 2完成,2与3之间许多模块包的使用存在些许差别,这些差别使许多初学者产生很多困惑,本次针对Python 3的词云图进行了归纳整理,并进行了细致的备注,希望可以帮助到更多的初学者,少踩一些雷。
本文主要运用wordcloud模块,对中英文数据进行词云图绘制。本人学识有限,如有错误,敬请各位不吝赐教,批评指正。
关键词: WordCloud;分词;停止词;
软件 | 版本 |
---|---|
PyCharm | 2019.1.4 |
Python | 3.7 |
名称 | 版本 |
---|---|
wordcloud | 1.6.0 |
Pillow | 6.2.1 |
numpy | 1.16.4 |
jieba | 0.40 |
chardet | 3.0.4 |
matplotlib | 3.1.1 |
PIL其实只是python2的专利,它并没有跟随python的进化而进化。有大师为此,专门写了一个针对python3的pillow模块。所以,如果需要安装python3对应的PIL,应该选择安装pillow。调用时的代码还是import PIL[5]。
(1) 基本词云图
本次选用英文版的《包法利夫人》(MadameBovary.txt)作为分析材料,如下图所示。
将MadameBovary.txt与py文件放到同一个文件夹,然后执行以下代码。
import os from os import path from wordcloud import WordCloud import matplotlib.pyplot as plt # 获取当前文件路径 d = path.dirname(__file__) if "__file__" in locals() else os.getcwd() # os.getcwd()返回当前工作目录 # locals() ,没有参数,函数会以字典类型返回当前位置的全部局部变量。 # __file__表示当前.py文件的绝对路径;绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径 # 获取文本text text = open(path.join(d,'MadameBovary.txt'),encoding='gb18030', errors='ignore').read() #os.path.join()函数: 连接两个或者更多的路径名组件 # 加入(encoding='gb18030', errors='ignore')是为了防止出现解码错误,是可以省略的,但省略后如出现错误,可查阅“参考文献[1]” wc = WordCloud(scale=1,max_font_size = 100) # 词云参数设置 wc.generate(text) # genarate v.生成; Python中称为使用生成器 plt.imshow(wc,interpolation='bilinear') # 显示图像 # bilinear adj.双直线的;双线性的;双一次性的; plt.axis('off') #隐藏坐标轴 plt.tight_layout() #tight_layout会自动调整子图参数,使之填充整个图像区域。 #tight adj. 紧的;紧身的;挤满的;layout n.排版;布局;设计 plt.savefig('tu1.png',dpi=300) #保存词云图,分辨率为300,也可以用 wc.to_file('1900_basic.png') plt.show() #plt.imshow()函数负责对图像进行处理,并显示其格式 #plt.show()则是将plt.imshow()处理后的函数显示出来。
词云图结果如下所示。
(2) 基本词云图 +设置停止词+自定义图片
文本材料不变,自定义图片选用一只大象的图案。
停止词用来筛除文本中不需要的词汇,比如:a、an、the 这些。WordCloud模块自带了的英文 StopWords 停止词,可以直接使用。
import os
from os import
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。