“十年树木,百年树人”,教育的根本目的在于增强学生的能力,使学生成为人才。为了提高学生的信息素养,培养未来的创造性人才,学生不但要学习现代技术,也要具备人文素养,使各种复杂知识在人文精神的烛照下融会贯通。如何在教学中介入文化价值,并运用现代教育技术提高学生的文化素质呢?这里我们以《三国演义》小说为例,让学生阅读学习,然后通过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()
wordcloud.random_color_func()
wordcloud.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进行分词。
接着,应用wordcloud将已经汇总的词进行分析排序,把排序结果应用图片进行展示。
学生制作完成后,我们可以收集学生的作品,以此检验学生是否完成《三国演义》分词及分析,是否掌握了相关的Python知识。
第三步:扩展思考
很多学生在分析的时候,主要是针对人物进行的。我们可以把我们认为重要的人物进行一次统计。
首先,用jieba把词进行分割。
分割完成之后,把指定人物用循环进行统计,然后改变数据类型,变为列表。
将列表进行排序,最后用print统一输出,便可得出人物的相关数据。
我们还可以让学生扩展思考:如何完成《三国演义》出场图?如何完成《三国演义》关系图?
总结
作为主要的人工智能语言,掌握Python对于学生今后的发展非常重要。在教学实践中利用Python制作词云图,既可以呈现文本的关键信息和主要内容,还可以将现代技术与人文素养相结合,提高学生的综合素质和能力。需要注意的是,利用Python制作词云图,要求学生有一定的英语基础,并且熟悉键盘操作。
领取专属 10元无门槛券
私享最新 技术干货