王敏



《普通高中信息技術課程標準(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.