查看原文
其他

Python之wordcloud库

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:周聪聪

本文编辑:胡   婧

技术总编:张学人


爬虫俱乐部将于2019年1月19日至25日在武汉举行两期Stata编程技术定制培训,此次采取初级班和高级班分批次培训模式,采用理论与案例相结合的方式,旨在帮助大家熟悉Stata核心的爬虫技术,以及Stata与其他软件交互的高端技术。详细培训大纲及报名方式,请见往期推文《2019寒假Stata编程技术定制培训班》。报名表下载请点击文末阅读原文呦~

wordcloud是功能强大的词云展示第三方库。它不仅可根据文本中词语出现的频率等参数绘制词云,还可设定词云的字体颜色形状等。

作为第三方库,wordcloud在使用前需在cmd中输入如下命令安装:

pip install wordcloud

首先为大家展示一下要用到的"荷塘月色.txt"的具体内容背景图片

荷塘月色.txt

背景图片—心形.jpg

接下来我们通过如下命令来介绍如何从"荷塘月色.txt"这一文本文档中生成词云:

首先,导入wordcloud模块matplotlib模块及jieba模块:

from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
import matplotlib.pyplot as plt
import jieba                       filename = "荷塘月色.txt"
with open(filename,encoding='utf-8') as f: mytext = f.read()                           #打开"荷塘月色.txt"并读取文档内容
mytext = " ".join(jieba.cut(mytext))     #使用jieba进行分词,分词结果如下:

需要注意的是:wordcloud采用空格来分隔单词,因此在对中文进行分词时,效果并不够好。相比之下,jieba能够提供相对高效的分词方案。

photo_coloring = plt.imread('心形.jpg')             #设置输出词云的背景图片

至此,准备工作已经完成。

下面使用wordcloud来绘制词云图,具体命令如下:

wordcloud=WordCloud( font_path="msyh.ttc",            #设置输出词云的字体为微软雅黑
width=400, height=200,        #设置词云图的宽度,高度分别为400,200
mask=photo_coloring       #设置词云形状
).generate(mytext)
#显示词云图
plt.imshow(wordcloud, interpolation='bilinear')   plt.axis("off")                                       #设置显示的词云图中无坐标轴
plt.show()

这样,词云图就顺利生成并显示出来了(这里使用了默认的词云图背景颜色—黑色):

爬虫俱乐部是您身边的科研助手,能够为您在数据处理实证研究中提供帮助。承蒙30000+粉丝的支持与厚爱,我们在腾讯课堂推出了网络视频课程,专注于数据整理、网络爬虫、循环命令编制和结果输出…李老师及团队精彩地讲解,深入浅出,注重案例与实战,让您更加快速高效地掌握Stata技巧及数据处理的精髓,而且可以无限次重复观看,百分百好评,简单易学,一个月让您从入门到精通。绝对物超所值!观看学习网址:https://ke.qq.com/course/286526?tuin=1b60b462,敬请关注!

同时,我们可以通过如下命令指定词云显示的最大词量字体的最大最小字号等来设置词云图显示效果:

wordcloud=WordCloud(font_path="msyh.ttc", width=400,height=200, mask=photo_coloring, max_words=100,      #设置词云显示的最大词量为100
min_font_size=6,      #设置输出字体的最小字号为6
).generate(mytext)

生成的词云图如下:

我们还可以通过改变参数值增加如下参数来改变词云图显示效果,如:

stopwords=set(STOPWORDS) stopwords.add("一般")                   #设置屏蔽词
wordcloud=WordCloud(font_path= "msyh.ttc", width=400,height=200, background_color='white',       #将词云图的背景颜色设为白色
max_words=100,min_font_size=6, mask=photo_coloring, scale=1.5,                                        #设置1.5倍比例放大词云图
stopwords=stopwords                   #添加屏蔽词“一般”
).generate(mytext)

这样,背景颜色为白色的词云图就显示出来了:

以上就是关于wordcloud中主要参数的用法具体含义的介绍。大家可以在实际操作中根据需要自行设置参数值或添加不同参数,生成相应的词云图。


有问题,不要怕!访问 

http://www.wuhanstring.com/uploads/5_aboutus/爬虫俱乐部-用户问题登记表.docx (复制到浏览器中)下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~

爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.github.io,粉丝们可以通过该网站访问过去的推文哟~

爬虫俱乐部隆重推出数据定制及处理业务,您有任何网页数据获取及处理方面的难题,请发邮件至我们邮箱statatraining@163.com,届时会有俱乐部高级会员为您排忧解难!

对爬虫俱乐部的推文累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫!

往期推文推荐

关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。


此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存