当前位置:   article > 正文

python 列表生成式_用 Python 分析热播剧《庆余年》都有哪些关键词

庆余年关键词

最近《庆余年》大火,不怎么看电视剧的我也追起了剧来,可就在今天,突然发现好像进度条撑不住了,怎么就要大结局了,小说那么长怎么拍成电视剧就这么短,我表示看不够啊,处于对未知剧情的好奇,以及我实在没时间看完整本小说,我就打算用词云来分析分析这本书都有些啥关键词,开始操作之前先让大家看一看我做出来的结果:

4d211e9d67410c5e7539a2d51ac755e6.png

准备工作

首先介绍一下我们今天会用到的几个 Python 库:

  1. jieba 网址:https://github.com/fxsjy/jieba
  2. imageio 网址:https://imageio.github.io/
  3. wordcloud 网址:https://pypi.org/project/wordcloud/
890049d93bfc03cffb921f86d64fb4b1.png

jieba

4c23aa120bb9f91c8594a0baf359755a.png

imageio

62ad5b6966da6a666ebc25e0353b77ff.png

wordcloud

数据处理

我们先将准备好的 庆余年.txt 使用 openutf-8 的编码格式打开,然后使用 read() 函数将 txt 里的内容传给一个变量 joy,最后试着查看一下变量 joy 前 1000 个字符的内容

603a5b84f0197d734cbf92ee47dd4186.png

然后使用 jieba 的精准模式进行分词,打印输出一部分检查一下,可以我们发现分词的结果中有很多无意义的字符,比如: ''、'很、'算' 等等

5ac2248d282856f5cc627106bebbe499.png

我们现在添加以下条件判断对这些词进行筛选,其实就是使用列表生成式,关于列表生成式不太清楚的可以昨天的文章:Python:你会生成列表吗?-- 列表生成式

4441d88e0ede67eae877984376fa0790.png

接下来这一步很重要,使用 join() 函数将已经经过分词,且简单去除了无意义内容的字符,以空格为间隔,以字符串的形式,存入一个新的变量 document 中,至此,我们一会需要使用的数据已经处理好了

12eb145b4e38e17bcd68a638f2867579.png

制作词云

我们这次要制作的词云是以一张图片为形状容器的,所以我们先导入图片,使用 imageio 库的 imread() 函数

c74c7abf8cb891912f912e855617366c.png

然后使用 wordcloud 库制作词云,先配置词云基本的属性,背景颜色:whitemask 就是词云的形状,默认是方形,这里使用之前读取的 imgfont_path 也就是使用什么字体必须设置,因为我们的词云是中文字,不设置不会出现字,直接给一个本地字体文件的路径,然后将之前处理好的文字数据 document 使用 wordcloud 的 generate() 函数传入

97401380b64e419df3492aed6991f1ff.png

最后使用 to_file() 函数将词云保存为本地图片

8c80fbaf70234e1efcd00bdf9900b309.png

打开本地目录查看最后成果:

d0facf88d7b85d8fe8bca8ebcde8243e.png

今天的分享到此结束,别忘了点个赞,本次项目的所有文件及源码已上传至 GitHub

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/692126
推荐阅读
相关标签
  

闽ICP备14008679号