词云大作业(普哥、硕哥快来看啊!!!)

1、文章来源

选自学习强国app中的文章,文章名为:《中国海军:既是国之利刃也是和平使者。》

2、编程程序的基本思路

要做词云,首先要进行词频统计。wordcloud库特别厉害,可以直接帮助我们进行词频统计。但是对于中文一定要用通过jieba库对其进行分词处理之后,wordcloud库才能对其进行词频统计,出来词云的效果。

3、过程说明

首先从简单的开始,初步写了一个程序,程序如下:

效果图如下:

可以说我初步做出了一个词云,但是词云中的词语数量太多,看起来的效果不是很好,也无法很好体现出文章的特点。所以这时我在w=wrodcloud.WordCloud()中添加了代码'max_word=25'。在运行一下效果如下:

这时候看的就舒服多了,词云中的特征也更加明显了。但是我仔细看了下,里面比如一支,一个这样的词语可以说对于体现文章特点的效果来说不是很好。所以我又在w=wrodcloud.WordCloud()中添加了另一个代码‘stopwords={'一支’,'一个'}',效果如下:

这样是不是效果好多了呢,其中wordcloud库中有许多函数来使词云的效果更好比如:

font_step 指定词云中字体字号的步进间隔,默认为1(w=wordcloud.WordCloud(font_step=2))

min_font_size 指定词云中字体的最小字号,默认4号(w=wordCloud.Wordcloud(min_font_size=10))

max_font_size 指定词语中字体的最大字号,根据高度自动调节 (w=wordCloud.Wordcloud(max_font_size=20))

还有很多函数等着大家去尝试,让自己做出的词云效果更好。

但是这时候的词云形状是方块,我感觉还是太过于单调。于是想做出有特点的词云形状。根据教材和网课的介绍,这时候我们需要用到scipy,因为scipy库是第三方库,于是我去cmd命令中进行下载。下载好之后,运用时却发生了问题。

 

这时我就感到很奇怪了,明明代码没有问题为何出现了这样的问题。于是我通过上网查询,终于知道了答案。因为我下载的是最新版的scipy库,但最新版本的scipy库里imread 模块被移除了。所以我们无法运用这个函数。这时候我们可以有两个方法解决这个办法:

1、pip install scipy==1.2.1,在cmd命令中输入这个代码,让你的scipy库的版本回到从前就可以使用imread模块了,操作和下载python第三方库一样。

2、本人用的是这个方法(也推荐这种),我用了另一个库来替代scipy库,这个库就是imageio库,同样也是在cmd命令中进行下载,方法与下载python第三方库一样。

关于图片:png、jpg这两种形式都行。我这里选用了心形的图片。

 

最终效果如下:

   

这样效果是不是就好多了。好这就是此次大作业的所有内容,但是在做这个词云的时候我还遇到了两个问题没有解决。1、就是我的词云出现了重复的词语该如何解决。2、我之前用的许多形状较为复杂的图片,词云就无法显示出图片的形状,还是方形。本人计算机水平有限,如有计算机水平好的同学希望告诉我如何解决这两个问题,同时也请同学们多多批评指正。

原文地址:https://www.cnblogs.com/pythonyx/p/12650383.html