数据可视化之利用Python制作词云图

2020-01-25 16:14罗晶
中国科技教育 2020年9期
关键词:云图分词排序

罗晶

“十年树木,百年树人”,教育的根本目的在于增强学生的能力,使学生成为人才。为了提高学生的信息素养,培养未来的创造性人才,学生不但要学习现代技术,也要具备人文素养,使各种复杂知识在人文精神的烛照下融会贯通。如何在教学中介入文化价值,并运用现代教育技术提高学生的文化素质呢?这里我们以《三国演义》小说为例,让学生阅读学习,然后通过Python 编程进行分析。

《三国演义》是中国古典四大名著之一,亦是中国第一部长篇历史章回小说。它以人物为载体,形象地演绎了中国传统文化的基本精神,即仁、义、礼、智、信、勇等中国传统文化价值体系中的核心因素。那么,如何准确快捷地将这部长篇历史章回小说中的信息提取出来,并以生动的方式呈现给学生呢?这就需要用到词云图。

认识词云图

词云图是文本可视化的一种方式,借助相应的网站工具,对复杂的文本信息(如单词表、例句、课文)进行加工处理,词汇出现频率越高,字号越大,这样的词汇就是高频实义词,也是信息材料关注的焦点,最后以图形化的形式出现。总体来说,词云图有如下功能。

·提炼:提炼呈现实义词

·排序:按频率高低决定词汇显示的大小,出现次数越多,默认字号越大

·突显:对高频实义词起到突显的作用

·图像化:对整体外观形成特定的图像

Python 代码和环境选择

Python 相对其他代码,简单、易学、好上手,对语法要求不高,便于学生进行学习实践。

Python jieba 第三方库选择

Python 对于文章分析有众多库, 其中中文库包括yaha(哑哈)、jieba(结巴)、基于HMM 模型的中文分词、genius 中文分词等。通过使用,我们发现,jieba 库目前应用比较广,遇到问题容易找到解决方案,是优秀中文分词第三方库,于是决定应用jieba 库。jieba 分词有3 种模式,分别为精确模式、全模式和搜索引擎模式。

·精确模式:把文本精确切分开,不存在冗余单词。

·全模式:把文本中所有可能的词语都扫描出来,有冗余。

·搜索引擎模式:在精确模式基础上,对长词再次切分。

Python wordcloud第三方库选择

学生完成分析后需要进行展示,然后由大家讨论。为了展示更加美观,我们选择使用wordcloud。wordcloud庫是Python 词云展示第三方库,以词语为基本单位,更加直观和艺术地展示文本。它可以将文本中词语出现的频率作为一个参数绘制词云,而词云的大小、颜色、形状等都是可以设定的。

wordcloud 有3 个常见函数:wordcloud.WordCloud()、wordcloud.ImageColorGenerator()和wo r d c l o u d . r a n d om_ c o l o r _ f u n c ( )。wo r d c l o u d .WordClud() 代表一个文本对应词云的对象,要区分大小写,全小写是库,大写+ 小写是对象,可以根据文本中词语出现的频率等参数绘制词云。词云的形状、字体、尺寸和颜色都可以设定,一个词云就是一个wordcloud 对象。wordcloud.ImageColorGenerator() 可基于彩色图像生成相应彩色,而wordcloud.random_color_func() 则生成随机颜色

JupyterHub应用环境

Jupyter 是一款基于Python 的web notebook 服务,目前大多Python 数据挖掘与机器学习爱好者都在使用这款服务。其特性其实与IPython Notebook 差不多。准确说IPython Notebook 是一款提供增强型交互功能的shell,而Jupyter 除了IPython 的功能,还加入了普通编辑器的通用功能,是一款带代码交互的动态文档web 编辑器。

由于Jupyter 只支持单用户的使用场景,作为教师,我们需要看到学生的应用实践结果,需要多用户场景,因此,只支持单用户的Jupyter 可能不适用,于是有了JupyterHub。支持多用户的Jupyter Notebook 服务器,用于创建、管理、代理多个Jupyter Notebook 实例,具有扩展性和可定制性。

课程设计流程

第一步:课堂导引

提前1 周让学生阅读《三国演义》,然后在课堂上让学生各抒己见,分析自己对《三国演义》的看法。也许有的学生喜欢曹操,有的学生喜欢诸葛亮,还有的学生喜欢对某个事件进行分析,对此,我们都需要鼓励。

第二步:讲解与实践

在实践之前,我们需要向学生介绍Python 中jieba 库及其分词原理,以及wordcloud 应用方法,包括如何控制底色,如何把文字载入,如何生成指定图片类型等。在制作时,首先要引用jieba 库,把《三国演义》小说导入变量,然后将导入的变量应用jieba 进行分词(图1)。

接着,应用wordcloud 将已经汇总的词进行分析排序,把排序结果应用图片进行展示(图2)。

学生制作完成后,我们可以收集学生的作品,以此检验学生是否完成《三国演义》分词及分析,是否掌握了相关的Python 知识。

第三步:扩展思考

很多学生在分析的时候,主要是针对人物进行的。我们可以把我们认为重要的人物进行一次统计。

首先,用jieba 把词进行分割(图3)。

分割完成之后,把指定人物用循环进行统计,然后改变数据类型,变为列表(图4)。

将列表进行排序,最后用print统一输出,便可得出人物的相关数据(图5)

我们还可以让学生扩展思考:如何完成《三国演义》出场图?如何完成《三国演义》关系图?

总结

作为主要的人工智能语言,掌握Python 对于学生今后的发展非常重要。在教学实践中利用Python 制作词云图,既可以呈现文本的关键信息和主要内容,还可以将现代技术与人文素养相结合,提高学生的综合素质和能力。需要注意的是,利用Python 制作词云图,要求学生有一定的英语基础,并且熟悉键盘操作。

猜你喜欢
云图分词排序
过云图
分词在英语教学中的妙用
恐怖排序
结巴分词在词云中的应用
结巴分词在词云中的应用
节日排序
CAD派客云图发布V2.2.0版本
云图青石板
聚焦现在完成进行时
怎样识读卫星云图