王敏
《普通高中信息技术课程标准(2017年版)》“数据与计算”模块的“数据处理和应用”内容,突出数据处理的基本原理,聚焦技术性工具在数据处理中的功能,强调让学生通过典型的案例应用,了解数据分析和可视化技术表达的基本方法。[1]在2019粤教版信息技术必修1《数据与计算》的《5.4数据的可视化表达》章节教学中,笔者采用Python语言制作词云的案例实施教学,按照目的性、层次性、探究性原则,将抽象、复杂的难点内容以一组关联性的问题逐步呈现[2],课堂上借助多个问题的引导,让学生发现问题、分析问题、解决问题,从而掌握一种文本数据的可视化表现方式,初步体验利用程序设计处理数据的应用价值,并提高课堂教学的有效性。
● 问题的提出与设计思路
词云是研究分析文本内容的一种表现方式,主要是对文本中出现频率较高的词语予以视觉上的突出,这样不仅可以艺术化地呈现文本,使文本具有视觉冲击力,并且可将文本挖掘可视化。Python语言可以利用特定的模块来制作词云,代码简洁高效,但是,完整的词云制作需要借助多个模块,每个模块均使用各自特定的函数,函数功能相对独立,且名称多,参数格式多样,学生在实践中不易理解程序的实现原理,代码编写和调试难度较大。
建构主义学习理论强调,学生的学习活动应与任务或问题相结合,以探索问题的方式来引导和维持学习兴趣和动机,使学生拥有学习的主动权。笔者在教学实践中以问题为引导,将原本实践的项目拆分成多个小问题,在实现多个小目标的基础上层层递进,逐步完成程序的整体结构,让学生在分析具体问题的过程中,找出解决问题的关键,在算法实现过程中完成知识的建构,培养其辩证思维和计算思维,实现核心素养的落实。
● 问题引导的教学实践——词云制作
环节一:案例应用,导入新课
教师展示词云图片(如图1),该图片主要介绍了教育部近期发布的一个文件,在网络上引发了广泛的讨论。文件与教师、学生紧密相关,请学生猜一猜这个文件的主要内容是什么。
在学生观察图片并回答大致的内容后,教师展示《中小学教师实施教育惩戒规则》文件和蒙版图片(如图2),说明刚才的图片就是一张词云图片,是由一个文本文件和一张特定的图片结合在一起生成的。接着,分析图片的布局:从图片文字中可以看出,“教育”这个词的大小仅次于“学生”,位列第二,说明该文件的主旨——“惩戒规则”只是手段,而“教育学生”才是最终目的。然后,给出本节课的任务目标:编写程序制作一张个性化的词云图片。
环节二:新知教学,体验程序
教师展示另外几种词云图片,介绍Python语言的一个优秀的第三方模块wordcloud,它專门用于制作词云。wordcloud模块可以统计文本中词语的出现频率,并以此为标准来绘制图片,还可以根据需求来设定词云图片的大小、词语个数、颜色、形状等。使用wordcloud模块主要需要三步:第一步是配置词云参数,第二步是加载词云的文本,第三步是输出词云图片。其代码框架如图3所示。
学生练习使用wordcloud模块的框架,制作简单的词云图片,并自行修改字符串中的内容,观察图片效果。
问题1:从框架代码中发现,加载的文本需要直接写在程序中;如果文本内容多,代码编写将极为烦琐,是否有更简便的方式去解决?
教师介绍open命令,可以打开指定的文件。命令样例如下:
txt=open("a.txt","r").read() #将a.txt文件内容读取到变量txt中
学生开始实践任务,使用两个素材文件(第一篇英文,第二篇中文),编写程序制作对应的词云,并保存图片。
环节三:分析问题,改进程序
针对刚才任务的结果发现:第一篇文档的词云图片很快能够生成,但是第二篇文档的词云却出现问题,图片中没有文字,全部是大大小小的方框,如图4所示。
问题2:同样的程序,加载不同的文本文件却导致错误,可能是由于什么原因引起的?
教师引导学生查看两个文档的不同之处,思考可能的原因,然后指出在制作中文词云时,需要指定中文字体,可以在对象参数中配置。命令样例如下:
w=wordcloud.WordCloud(font_path="msyh.ttf") #加载“微软雅黑”字体(具体字体文件可在c:\windows\fonts中查看)
问题3:根据学生修改代码后的运行结果,发现加载了中文字体,图片中的文字可以正常显示,但是却以句子的形式呈现(如图5),为什么?
教师引导学生从中英文词语呈现的不同之处入手,观察结果并分析原因:刚才的代码运行结果中,中文整句显示,没有分词,原因在于中文不像英文那样单词之间用空格隔开。Python有第三方的jieba模块,针对中文进行分词,专门解决这个问题。命令样例如下:
txt=" ".join(jieba.lcut(txt)) #使用jieba模块中的lcut函数,对变量txt里的文本进行分词,并用" "(空格)将每个词语分隔开。
问题4:从上面的样例中,我们学习了在参数设置中加入字体,除此之外,还可以对词云图片设置哪些参数,从而生成更好的效果?
教师提供wordcloud相关参数的学习手册,组织学生自主学习,并开始学生活动:两人一组,根据参数学习手册,小组自主学习,尝试使用更多的参数设置,调整图片的效果。然后,选择一篇自己喜爱的文章,设置相应属性,制作一款个性化的词云图片。
问题5:刚才程序生成的词云图片都是矩形,如果要调整为指定图片的样式,该如何处理?
学生可以查看课件或上网查找相关资料,讨论学习相关知识。附加任务:自学蒙版参数mask的设置,在理解前述任务的基础上,制作指定图形的词云图片,注意原始图片应为白色背景图片。
环节四:展示成果,归纳总结
教师点评展示学生上传的成果,并请个别小组代表上台介绍。然后,总结Python制作词云图片的相关模块和程序结构,分析本节课活动的总体情况或出现的主要问题。
问题6:在本节课的活动中,我们针对一段文本生成词云图片,可以展示文章的主旨。除此之外,词云还可以有什么用处?
以学生根据活动任务的体验结果来讨论回答,教师介绍词云在诸多场合中的运用,如岗位招聘的技能需求分析、职业资格考试相关新闻的关键词统计应用、评论区年度热门阅读书目推荐、《三国演义》小说的人物出场次数等,如图6所示。词云是数据可视化的方式之一,可以让人们快速抓住信息的要点,突出关键的数据,而数据可视化就是把海量的数据以丰富的视觉效果呈现出来,并能够反映出数据的本质问题,有效提升了数据分析的效率。
问题7:为了更好地呈现数据、挖掘数据,请说说在我们的日常生活中,还有哪些数据可视化技术的运用?(课外拓展)
● 问题引导的策略
1.问题的提出要有目的性,围绕目标建构知识
教师在课前需要精心设计,将教学内容建构在“问题”的解决过程中。本节课教学内容的问题1用于完善程序的功能,提高程序的通用性;问题2和问题3主要针对词云制作的核心问题,是程序实现的关键步骤;问题4和问题5是在程序正确运行的基础上,用来进一步优化程序的效果,并适用于打造个性化的成果;问题6和问题7可以拓展学生的思维和视野,加深理解数据可视化的作用和价值,帮助其进行知识迁移,力求学以致用。例如,在分享问题6的观点时,有学生通过对《荷塘月色》的词云制作,发现“月光”才是仅次于“荷塘”的关键词,文章是通过对月光的描写来体现月色,这从另一个角度加深了对该文的认识和理解。问题的提出紧紧围绕课程目标,以关键步骤的实现过程和应用方案,培养学生的计算思维和信息意识,促进核心素养的落地。
2.问题的难度要有层次性,符合思维的逻辑规律
问题的提出要循序渐进,關键在于将复杂的问题分解为一系列的小问题,学生在克服小问题的基础上,依次扩展,逐步完善,最终解决整个问题。本案例从简单的三步框架开始,逐步加入文件操作、中文字体、jieba分词、特定形状等程序代码,将新的知识问题化,通过发现问题、收集和分析资料、探索答案、形成方案等一系列过程,不断引导学生主动探索,提高学生的学习水平,培养学生的思维能力。
3.问题的方案要有探究性,促进学生自主学习
问题的解决方案要有迹可循,既不能轻而易举,也不能过于复杂。教育家马赫穆托夫曾提出发展性的问题教学,注重在教学中让学生依据自身的知识基础进行独立的探索。本案例中提出诸多问题,要考虑到学生的最近发展区,问题应该基于真实情境,在实践中发现。例如,导入文本文件,有的学生在通过基础样例后就已经开始观察思考,提出疑问:是否有更好的方式提供文本?又如,程序运行结果错误,教师要引导学生从程序结果中去分析,思考可能的原因;同时,对于问题解决的方案也要提供充分的学习资源或多样化的学习方式,帮助学生积极探索,如词云对象参数的设置可以提供相应的函数手册,程序的语法错误可以提供主要错误自查表,错误结果的分析采用小组讨论或上网收集资料等方法,引导学生自主探究,去完成问题的最终答案。
● 结语
现代教育家杜威提出了学生中心、活动中心、经验中心的三中心论,强调“从做中学”,主张通过解决问题进行学习。“问题”是引起思维活动的原动力和牵引力,利用高质量的问题可以实现教学内容的结构化,根据学生的基础水平将关联性知识设计成系列问题,由此可将教学目标细化成多个问题,开展有效教学。[3]以问题为引导的教学,能够促使学生积极探索,主动学习,在问题的解决过程中掌握方法和知识,让学生依托“问题”的指引,一窥“素养”的芳踪,从而落实学科核心素养的培养。同时,教师通过对问题的创设,不仅能够提升挖掘案例价值的能力,加深对课标内涵的领悟,而且有利于在新课改中提高教学能力,促进专业水平的进一步成长。
参考文献:
[1]任友群,黄荣怀.普通高中信息技术课程标准(2017年版)解读[M].北京:高等教育出版社,2018:59.
[2]黄国庆.问题串教学法在信息技术教学中的应用[J].中小学电教,2017(12):61-62.
[3]曾文锋.“教、学、评”一体化视域下问题串创设的实践[J].福建基础教育研究,2019(11):110-113.