7.8实例:出场人物统计(课件)-《程序设计基础(Python)》同步教学(人民邮电版)

2024-08-19
| 25页
| 145人阅读
| 14人下载
普通

内容正文:

第7章 常用库的使用 1 学习目标/Target 掌握random库的使用,能够使用random库生成随机数 掌握turtle库的使用,能够使用turtle库绘制不同图形 掌握time库的使用,能够使用time库处理时间 掌握jieba库的使用,能够使用jieba库对中文文本实现分词 掌握WordCloud库的使用,能够使用WordCloud库制作词云图 2 章节概述/ Summary 在Python中,库(Library)是一种涵盖了特定功能集合的说法,而非严格定义。Python库提供了大量的函数或方法,可以帮助开发人员更有效地解决各种任务和问题,从而更轻松地开发程序。Python中的库通常分为两种类型,分别是标准库(Standard Library)和第三方库(Third-Party Library),其中标准库会随Python解释器一同被安装,导入程序后直接使用,包括random、turtle、time等;第三方库是由Python使用者编写和分享的,使用前需要额外安装,比如jieba、wordcloud等。本章将介绍一些常用库的基本用法。 3 目录/Contents 01 随机数工具:random库 实例:验证码 绘图工具:turtle库 02 03 实例:绘制几何图形 04 时期时间工具:time库 05 4 目录/Contents 06 实例:二十四节气倒计时 中文分词工具:jieba库 实例:出场人物统计 07 08 词云工具:WordCloud库 09 实例:生成词云图 10 5 实例:出场人物统计 7.8 6 7.8 实例:出场人物统计 《西游记》是我国古代第一部浪漫主义章回体长篇神魔小说,也是我国古典四大名著之一。全书主要描写了孙悟空、唐僧、猪八戒、沙僧和白龙马一同西行取经,历经九九八十一难到达西天见到如来佛祖,最终五圣成真的故事。《西游记》篇幅巨大、出场人物繁多。 7.8 实例:出场人物统计 本实例要求读者编写程序,读取xiyouji.txt文件并统计《西游记》小说中的关键人物(指出场次数排在前10 名的人物的出场次数。 7.8 实例:出场人物统计 本实例的实现思路可以分为以下步骤: (1)获取小说的全部内容 (2)统计中文词语及数量 (3)删除无意义的词语 (4)输出中文词语及数量 词云工具:WordCloud库 7.9 10 7.9 词云工具:WordCloud库 WordCloud是Python的第三方库之一,专门用于生成词云图。词云图是一种可视化方式,可以将文本中出现频率高的关键词制作成不同形状的图形,例如云朵、圆形、矩形、心形、星形等。在生成词云图的过程中,通常会根据词频自动调整每个词的大小,让词频高的词汇展示的更大,词频低的展示的较小,使人们更加直观地了解文本的主题和重点。 WordCloud库以文本中词语出现的频率作为参数来绘制词云图,并支持对词云图的形状、颜色和大小等属性进行设置。利用WordCloud库生成词云图主要包含以下三个步骤: (1)利用WordCloud()方法创建词云对象。 (2)利用WordCloud对象的generate()方法加载词云图用到的文本。 (3)利用WordCloud对象的to_file()方法生成词云图。 7.9 词云工具:WordCloud库 参数 功能说明 width 指定词云对象生成图片的宽度,默认为400像素 height 指定词云对象生成图片的高度,默认为200像素 min_font_size 指定词云中字体的最小字号,默认为4号 max_font_size 指定词云中字体的最大字号,默认根据高度自动调节 font_step 指定词云中字体字号的步间隔,默认为1 WordCloud()方法在创建词云对象时可通过参数设置词云的属性。 WordCloud()方法的常用参数 7.9 词云工具:WordCloud库 参数 功能说明 font_path 指定字体文件的路径,默认为当前路径 max_words 指定词云显示的最大单词数量,默认为200 stop_words 指定词云的排除词列表,即不显示的单词列表 background_color 指定词云图片的背景颜色,默认为黑色 mask 指定词云形状,默认为长方形 WordCloud()方法在创建词云对象时可通过参数设置词云的属性。 WordCloud()方法的常用参数 7.9 词云工具:WordCloud库 generate()方法需要接收一个字符串作为参数,字符串中的内容便是词云图用到的文本。若字符串中的内容全部为汉字,那么在创建词云对象时必须通过font_path参数指定字体文件的路径,不指定的话将无法正常显示汉字。 7.9 词云工具:WordCloud库 to_file()方法用于以图片形式输出词云图,该方法接收一个表示图片文件名的字符串作为参数,图片的格式可以为PNG或JPEG格式。 7.9 词云工具:WordCloud库 16 以xiyouji.txt文件和孙悟空图片wukong.png为例,演示如何通过wordcloud库生成其他形状的词云图片,代码如下: import wordcloud # 创建词云对象 w = wordcloud.WordCloud(font_path='AdobeHeitiStd-Regular.otf', max_words=500, max_font_size=40, background_color='white') # 加载词云图用到的文本 file = open(r'xiyouji.txt', encoding='utf-8') string = file.read() file.close() w.generate(string) # 生成词云图 w.to_file('xiyou.jpg') 7.9 词云工具:WordCloud库 如果想生成如网络词云图一样以其他图片作为外型的词云,需要先利用Pillow库中Image模块的open()函数加载图片文件,open()函数的语法格式如下: open(fp, mode="r", formats=None) open()函数加载图片文件后会返回一个图片对象,该对象无法直接传递给WordCloud()方法的mask参数,而是需要先使用numpy库的array()函数将图片对象转换成数组,再将这个数组传递给mask参数。 7.9 词云工具:WordCloud库 需要说明的是,以上提到了两个库:Pillow和Numpy,这两个库都需要提前安装到当前的开发环境中,具体安装命令如下: pip install Pillow==9.5.0 pip install numpy==1.24.3 7.9 词云工具:WordCloud库 import wordcloud import numpy as np from PIL import Image picture = Image.open("wukong.png") mk = np.array(picture) w = wordcloud.WordCloud(font_path=‘AdobeHeitiStd- Regular.otf', mask=mk,max_words=500, background_color='white') file = open(r'xiyouji.txt', encoding='utf-8') string = file.read() file.close() w.generate(string) w.to_file('xiyou.jpg') 接下来,以xiyouji.txt文件和孙悟空图片wukong.png为例,演示如何通过wordcloud库生成其他形状的词云图片,代码如下: 7.9 词云工具:WordCloud库 Pillow库起初只是PIL库的一个分支,后期又在此基础上增加了大量特性,兼容了PIL库的绝大多数用法。由于PIL库已经停止维护,所以Pillow库得到了广泛的应用,并且取代了PIL库。为了方便开发人员使用,库的设计者并没有改变Pillow库的用法,导入PIL库其实就相当于导入Pillow库。 7.9 词云工具:WordCloud库 实例:生成词云图 7.10 22 7.10 实例:生成词云图 本实例要求根据xiyouji.txt文件的内容生成一个形状如熊猫的词云图。 本实例的实现思路可以分为以下步骤: (1)创建词云对象 (2)加载词云图用到的文本 (3)生成词云图 7.10 实例:生成词云图 本章小结 本章主要围绕Python中常用的标准库或第三方库进行介绍,其中标准库包括random库、turtle库、time库,第三方库包括jieba库、WordCloud库。通过本章的学习,读者要熟练掌握这几个库的基本用法,能够根据具体的场景选择合适的库进行开发。 本 章 小 结 25 $$

资源预览图

7.8实例:出场人物统计(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
1
7.8实例:出场人物统计(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
2
7.8实例:出场人物统计(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
3
7.8实例:出场人物统计(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
4
7.8实例:出场人物统计(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
5
7.8实例:出场人物统计(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。