内容正文:
第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
$$