張學軍 董曉輝
[摘 ? 要] 隨著新版《普通高中信息技術課程標準(2017年版)》的發(fā)布,案例教學資源尤其是具有情境性、復雜性、綜合性、實踐性等特點的項目案例教學資源的建設成了一項亟須解決的任務。面對目前項目案例資源嚴重不足的現(xiàn)狀,文章在相關研究基礎上,基于大數(shù)據(jù)時代背景下人工智能應用的視角,提出了基于大數(shù)據(jù)的人工智能應用開發(fā)框架,闡述了該開發(fā)框架所包含的網(wǎng)絡爬蟲應用開發(fā)和基于大數(shù)據(jù)的人工智能應用開發(fā)流程的設計?;谠撻_發(fā)框架并結合新版《普通高中信息技術課程標準(2017年版)》中的“人工智能初步”模塊要求,構建了高中信息技術課程的人工智能應用設計框架。基于該設計框架,使用Python語言開發(fā)了有聲小說、教育故事文本分析、人臉檢測與人臉識別三個人工智能應用項目案例。這些項目案例融合了大數(shù)據(jù)、人工智能應用的典型特征,具有較好的遷移性,不但可以在高中信息技術課程中的“人工智能初步”模塊以及其他模塊中使用,其設計框架也為基于學科核心素養(yǎng)的高中信息技術課程教學的落地提供了一種解決思路。
[關鍵詞] 大數(shù)據(jù); 人工智能; 高中人工智能課程; 項目案例資源; 設計與開發(fā)
[中圖分類號] G434 ? ? ? ? ? ?[文獻標志碼] A
[作者簡介] 張學軍(1968—),男,甘肅會寧人。教授,博士,主要從事數(shù)字化教育資源設計與開發(fā)、人工智能教育研究。E-mail: xjzhang99@163.com。
一、問題的提出
根據(jù)美國市場調(diào)查公司IDC的預測,人類產(chǎn)生的數(shù)據(jù)量正在呈指數(shù)級增長,這個速度在2020年之前會一直保持下去。預計到2020年,全球?qū)⒖偣矒碛?5ZB(1ZB數(shù)據(jù)相當于全世界海灘上的沙子數(shù)量的總和)的數(shù)據(jù)量。一方面,數(shù)據(jù)量的爆炸式增長、社會的日益數(shù)字化,促使人類社會進入大數(shù)據(jù)時代[1];另一方面,大數(shù)據(jù)、云計算等技術推動人工智能進入快速發(fā)展期,以大數(shù)據(jù)為原材料、人工智能為引擎的科技時代的來臨不可阻擋。在教育領域,基于大數(shù)據(jù)的人工智能應用將使教育更加接近教育的本質(zhì):系統(tǒng)地幫助學習者提升認知能力并服務于學習者的個性化需求[2]。2017 年,國務院出臺的《新一代人工智能發(fā)展規(guī)劃》明確提出,在中小學階段設置人工智能相關課程,逐步推廣編程教育[3]。新版《普通高中信息技術課程標準(2017年版)》,將“人工智能初步”模塊列為選擇性必修課[4]。由于人工智能課程難度較大,不宜采用傳統(tǒng)的“講授”式教學,更適合應用情境化、基于問題、基于案例的教學模式[5]。從現(xiàn)有的理論研究來看,有較好價值的中學人工智能教育案例研究的成果很有限[6-8];從目前的實際應用情況來看,類似《人工智能基礎(高中版)》[9]這樣的配套了實驗平臺(提供案例)的教材還不多,提供的案例資源也很有限。項目案例資源作為一種特殊的教學資源,以貼近實際的項目為載體,具有情境性、復雜性、綜合性、實踐性等特點,能夠更好地幫助學生理解并運用知識來解決實際問題。因此,本文所在研究團隊開發(fā)了幾個典型的可用于高中人工智能教育應用的項目案例資源,為高中人工智能教育如何落地提供依據(jù),同時,也為高中一線信息技術教師如何上好人工智能課提供可借鑒的思路。因為開發(fā)的項目案例資源既涉及人工智能教育應用,同時,又關聯(lián)大數(shù)據(jù)如何獲取。所以,該項目案例資源不但可用于高中“人工智能初步”模塊的教學,而且高中信息技術課程其他模塊也能參考使用。
二、大數(shù)據(jù)背景下人工智能課程的技術基礎
高中信息技術課程的人工智能應用項目案例涉及數(shù)據(jù)獲?。ňW(wǎng)絡爬蟲)和人工智能領域的語音合成、文本分析、人臉檢測與人臉識別等多種技術。
(一)網(wǎng)絡爬蟲
網(wǎng)絡爬蟲是一種自動下載網(wǎng)絡資源的程序[10] ,網(wǎng)絡爬蟲按照實現(xiàn)的技術和結構可以分為通用網(wǎng)絡爬蟲、聚焦網(wǎng)絡爬蟲、增量式網(wǎng)絡爬蟲、深層網(wǎng)絡爬蟲等類型[11]。筆者所在研究團隊開發(fā)的3個項目案例中的網(wǎng)絡爬蟲屬于聚焦網(wǎng)絡爬蟲。聚焦網(wǎng)絡爬蟲也叫主題網(wǎng)絡爬蟲,顧名思義,聚焦網(wǎng)絡爬蟲是按照預先定義好的主題有選擇地進行網(wǎng)頁爬取的一種爬蟲。聚焦網(wǎng)絡爬蟲在開發(fā)時要關注以下幾點:第一,根據(jù)主題確定要爬取的網(wǎng)站數(shù)據(jù);第二,分析整個網(wǎng)站的數(shù)據(jù)結構(確定網(wǎng)站的URL格式,確定網(wǎng)頁的數(shù)據(jù)格式、編碼格式以及對外請求方式);第三,編寫代碼時,首先要通過請求網(wǎng)絡獲取服務器響應后的數(shù)據(jù),其次要分析數(shù)據(jù)結構,通過解析的方式過濾出有用的數(shù)據(jù),最后把過濾的數(shù)據(jù)進行保存(本地保存或數(shù)據(jù)庫保存)。本文在3個項目案例中使用Python語言,利用網(wǎng)絡爬蟲技術根據(jù)主題需要爬取了1057720部小說(文本)、2060篇教育故事(文本)和30680張人物圖片。
(二)語音合成
語音合成是文本轉(zhuǎn)換為語音的技術[12]?;谏疃壬窠?jīng)網(wǎng)絡(DNN)的語音合成一般要經(jīng)過如下步驟:文本→文本分析→特征提取→DNN處理→參數(shù)生成→波形生成→語音[13-14]。使用應用程序編程接口(API)是快速獲得語音合成等相關應用結果數(shù)據(jù)的好方法。很多知名的大公司都開放了API,如國外的Google、Amazon和國內(nèi)的百度、騰訊、阿里巴巴、科大訊飛等公司都開放了大量人工智能API,其中百度開放的人工智能API涉及百度語音(語音識別、語音合成)等11個大類和許多子類。本文在項目案例1“有聲小說”中,使用Python語言,通過調(diào)用百度語音API中的語音合成API,將1057720部小說(文本)轉(zhuǎn)換成了相應的語音文件(mp3格式)。
(三)文本分析
文本分析也稱為文本挖掘,是從文本數(shù)據(jù)中獲得高質(zhì)量的信息和見解所遵循的方法和過程[15]。文本分析一般由獲取文本信息(原始文本)、分詞(將原始的文本分割成一個個獨立的詞)、文本清洗(去除無用的標簽、特殊符號、停用詞)、標準化(詞干提取、詞形還原)、特征提?。ㄔ~頻率與逆文檔率、詞嵌入、文本轉(zhuǎn)換為稀疏矩陣)、建模(相似度算法、分類算法)等環(huán)節(jié)組成。本文在項目案例2“教育故事文本分析”中,使用Python語言,通過調(diào)用百度人工智能自然語言處理API中的情感傾向分析API,實現(xiàn)了2060篇教育故事文章的情感傾向分析。項目案例2中2060篇教育故事文章的文檔主題分析,則是使用Python語言,通過調(diào)用機器學習scikit-learn庫中隱含Dirichlet 分布(LatentDirichletAllocation,LDA)模塊實現(xiàn)的。
(四)人臉檢測與人臉識別
人臉檢測,簡單來說就是從圖片找到人臉的位置。一般來說,人臉檢測應該可以正確檢測出圖片中存在的所有人臉,不能有遺漏,也不能有錯檢[16]。由于人臉識別一般包含人臉檢測環(huán)節(jié),所以本文主要介紹人臉識別。人臉識別是基于人的臉部特征信息進行身份識別的一種生物識別技術[17]。本文在項目案例3“人臉檢測與人臉識別”中,使用Python語言,通過調(diào)用百度人工智能人臉識別API中的人臉檢測API和人臉對比API,實現(xiàn)了所選靜態(tài)圖片的人臉檢測和人臉識別,對于動態(tài)環(huán)境(攝像頭刷臉)下的人臉檢測和人臉識別,則是使用Python語言,通過調(diào)用人臉識別庫face_recognition和計算機視覺庫python-opencv聯(lián)合實現(xiàn)的。
三、基于大數(shù)據(jù)的人工智能應用開發(fā)框架設計
大數(shù)據(jù)背景下的人工智能應用開發(fā)不能只考慮人工智能應用因素,需要融合互聯(lián)網(wǎng)大數(shù)據(jù)、人工智能應用兩大因素,形成“互聯(lián)網(wǎng)大數(shù)據(jù)+人工智能應用”的開發(fā)思路。
(一)基于大數(shù)據(jù)的人工智能應用開發(fā)框架設計
基于大數(shù)據(jù)的人工智能應用開發(fā)涉及四個關鍵詞:大數(shù)據(jù)、人工智能應用、網(wǎng)絡爬蟲、大數(shù)據(jù)與人工智能應用的結合。對于大數(shù)據(jù),主要考慮大數(shù)據(jù)從哪里來以及如何存儲,本文認為目前大數(shù)據(jù)的主要來源就是互聯(lián)網(wǎng),互聯(lián)網(wǎng)上有各種各樣的大數(shù)據(jù),這些大數(shù)據(jù)來自于教育、文化、歷史等各個領域,互聯(lián)網(wǎng)大數(shù)據(jù)一般不能直接使用,要通過網(wǎng)絡爬蟲下載到本地,選用適合的存儲方式存儲成為可直接使用的大數(shù)據(jù)。本文認為,人工智能應用主要涉及自然語言處理、語音技術應用、圖像技術應用等應用領域;只有將本地大數(shù)據(jù)與人工智能應用相結合,才能滿足包含教育類文章主題分析等各種具體應用項目的要求?;诖髷?shù)據(jù)的人工智能應用開發(fā)框架如圖1所示。
互聯(lián)網(wǎng)是孕育各類大數(shù)據(jù)的非常重要的來源?;ヂ?lián)網(wǎng)上的大數(shù)據(jù)浩如煙海,如教育、文化、歷史、新聞、科技、體育、汽車、旅游、時尚、閱讀、圖片、音樂、電影、動漫、游戲、視頻、博客、微博、社區(qū)等各類大數(shù)據(jù),應有盡有。開發(fā)時,首先要根據(jù)主題需要選擇其中的某類主題,然后通過百度等搜索引擎查找、分析互聯(lián)網(wǎng)上與所選主題盡可能吻合的網(wǎng)站作為大數(shù)據(jù)的來源;然后利用網(wǎng)絡爬蟲技術編寫爬蟲程序,將所選網(wǎng)站上相應主題的大數(shù)據(jù)下載到本地電腦形成本地大數(shù)據(jù);接下來根據(jù)開發(fā)需要選擇人工智能應用中的某類應用(目前能實現(xiàn)的人工智能應用涉及自然語言處理、語音技術應用、圖像技術應用、視頻技術應用、知識圖譜應用、增強現(xiàn)實應用等多種類型,開發(fā)者可根據(jù)開發(fā)需要選擇其中具體的某類應用來進行);最后針對下載到本地的某個主題的大數(shù)據(jù)(如教育類文章),利用人工智能應用中的某類具體應用(如文章分類),開發(fā)相應的基于大數(shù)據(jù)的某個具體的人工智能應用(如教育類文章主題分析)。
(二)網(wǎng)絡爬蟲應用開發(fā)流程設計
網(wǎng)絡爬蟲應用程序是實現(xiàn)從互聯(lián)網(wǎng)大數(shù)據(jù)到本地大數(shù)據(jù)轉(zhuǎn)移的主要技術手段,網(wǎng)絡爬蟲應用開發(fā)流程如圖2所示。以Python語言為例,首先根據(jù)主題確定要爬取的網(wǎng)站數(shù)據(jù),分析整個網(wǎng)站的數(shù)據(jù)結構(確定網(wǎng)站的URL格式,確定網(wǎng)頁的數(shù)據(jù)格式、編碼格式以及對外請求方式),導入Python中os、time、re、json等本地庫以及requests、bs4、lxml、pandas等第三方庫,設定要爬取網(wǎng)站的地址;然后運用requests中get等方法爬取網(wǎng)站數(shù)據(jù),利用解析、過濾方法(如lxml中xpath)解析、過濾網(wǎng)站數(shù)據(jù),編碼為所需要的格式(如utf-8),并通過數(shù)據(jù)保存方法(如pandas中to_csv)保存到本地文件(當然也可以根據(jù)需要采用其他方法保存到本地數(shù)據(jù)庫)。
(三)基于人工智能API的人工智能應用開發(fā)流程設計
基于人工智能API的人工智能應用程序是實現(xiàn)基于大數(shù)據(jù)的人工智能應用的常用技術手段和核心環(huán)節(jié)。本文的人工智能應用程序所需的大數(shù)據(jù),指的是將所需要的互聯(lián)網(wǎng)大數(shù)據(jù)經(jīng)過網(wǎng)絡爬蟲應用程序爬取下來保存到本地的大數(shù)據(jù)?;谌斯ぶ悄蹵PI的人工智能應用開發(fā)流程如圖3所示。
以使用Python語言開發(fā)語音合成為例,首先導入Python中os、re等本地庫以及人工智能語音處理第三方庫(如百度語音處理aip);然后讀取爬取好的本好大數(shù)據(jù)[如本文中的1057720部小說,根據(jù)需要將每部小說切分成長度為1024字節(jié)的一系列片段(百度人工智能語音aip每次處理的文本長度要求不超過1024字節(jié))];調(diào)用人工智能API(如百度語音處理aip庫中AipSpeech模塊的語音合成方法systhesis)將相應文本數(shù)據(jù)轉(zhuǎn)換為音頻數(shù)據(jù);最后將音頻數(shù)據(jù)保存為mp3文件(本文在程序中還調(diào)用了ffmpeg軟件,將初步生成的一個個片段mp3文件拼接成了一個完整的mp3文件)。
四、高中信息技術課程人工智能應用設計框架
高中信息技術課程人工智能應用設計框架的構建有三個依據(jù):(1)普通高中信息技術課程標準(2017版)中“人工智能初步”模塊的要求;(2)華東師范大學出版社和商務印書館聯(lián)合出版的教材《人工智能基礎(高中版)》內(nèi)容要求;(3)基于大數(shù)據(jù)的人工智能應用開發(fā)框架。人工智能應用設計框架如圖4所示。
《普通高中信息技術課程標準(2017年版)》中“人工智能初步”模塊內(nèi)容要求明確指出,通過剖析具體案例,了解人工智能的核心算法,熟悉智能技術應用的基本過程和實現(xiàn)原理;知道特定領域(如機器學習)人工智能應用系統(tǒng)的開發(fā)工具和開發(fā)平臺,通過具體案例了解這些工具的特點、應用模式及局限性;利用開源人工智能應用框架,搭建簡單的人工智能應用模塊,并能根據(jù)實際需要配置適當?shù)沫h(huán)境、參數(shù)及自然交互方式等[4]。這些內(nèi)容要求在圖4中的“基于大數(shù)據(jù)的人工智能應用開發(fā)框架”中通過技術環(huán)境層、大數(shù)據(jù)接口層、人工智能API層和人工智能應用層等由低層到高層的四層結構整體體現(xiàn)出來。人工智能應用層包含語音識別/合成、圖像識別、自然語言處理等各種人工智能應用案例,人工智能API層包括百度人工智能API等開發(fā)工具和開發(fā)平臺,技術環(huán)境層包括tensorflow等開源人工智能應用框架。
華東師范大學出版社和商務印書館聯(lián)合出版的教材《人工智能基礎(高中版)》依據(jù)《普通高中信息技術課程標準(2017年版)》中“人工智能初步”模塊內(nèi)容要求編寫,該教材設計思路提煉為“耳聰目明,心靈手巧”[18],這八個字的設計思路體現(xiàn)在該教材的內(nèi)容結構[共九章,按先后順序為(1)人工智能:新時代的開啟心靈(開篇);(2)牛刀小試:察異辨花(目明);(3)別具慧眼:識圖認物(目明);(4)耳聽八方:析音賞樂(耳聰);(5)冰雪聰明:看懂視頻(目明) ;(6)無師自通:分門別類(目明);(7)識文斷字:理解文本(心靈);(8)神來之筆:創(chuàng)作圖畫(手巧);(9)運籌帷幄:圍棋高手(心靈)]中。
在分析上述高中信息技術課程人工智能應用設計框架構建的前兩個依據(jù)的基礎上,本研究基于大數(shù)據(jù)的人工智能應用開發(fā)框架,設計了高中信息技術課程人工智能應用設計框架中虛線框內(nèi)的應用開發(fā)框架,該框架在本質(zhì)上與圖1的框架是一致的,只不過為了便于解釋將它分為四層(技術環(huán)境層、大數(shù)據(jù)接口層、人工智能API層和人工智能應用層)。人工智能應用層包含語音識別/合成對應教材設計思路中的“耳聰”,圖像識別對應教材設計思路中的“目明”,自然語言處理對應教材設計思路中的“心靈”;人工智能應用層的實現(xiàn)需要調(diào)用下層的人工智能API層(如百度人工智能API接口等)來實現(xiàn)具體的語音識別/合成、圖像識別、自然語言處理等應用,因為現(xiàn)在的人工智能應用講求“無數(shù)據(jù),不智能”,因此,人工智能API層需要調(diào)用下層的大數(shù)據(jù)接口層(如網(wǎng)絡爬蟲等)來實現(xiàn)將互聯(lián)網(wǎng)上的大數(shù)據(jù)下載到本地,網(wǎng)絡爬蟲的實現(xiàn)依據(jù)圖2中的網(wǎng)絡爬蟲應用開發(fā)流程;大數(shù)據(jù)接口層最終依賴最低層技術環(huán)境層(如python、tensorflow等)的支持。高中信息技術課程人工智能應用設計框架圖中虛線框內(nèi)的應用開發(fā)框架的技術實現(xiàn)依據(jù)圖2的網(wǎng)絡爬蟲應用開發(fā)流程和圖3的基于人工智能API的人工智能應用開發(fā)流程來實施。
五、高中信息技術課程人工智能應用項目案例資源開發(fā)
本文開發(fā)的3個高中信息技術課程人工智能應用項目案例(項目案例之一:“有聲小說”,涉及語音合成,對應教材設計思路中的“耳聰”;項目案例之二:“教育故事文本分析”,涉及自然語言處理,對應教材設計思路中的“心靈”;項目案例之三:“人臉檢測與人臉識別”,涉及圖像識別,對應教材設計思路中的“目明”),均屬于基于大數(shù)據(jù)的人工智能應用,選用的程序開發(fā)語言是Python。之所以選擇Python作為高中人工智能應用開發(fā)語言,理由有以下幾個方面:第一,Python是最接近自然語言的計算機程序語言之一,也是當前業(yè)界人工智能應用開發(fā)的首選語言之一;第二,Python入門門檻低,開發(fā)者學習后可以快速上手,將精力集中于開發(fā)項目中的主要業(yè)務邏輯本身而不是側重于Python語法;第三,Python除了本身自帶的大量核心庫以外,還可以廣泛使用大量的第三方庫,從而快速實現(xiàn)網(wǎng)絡爬蟲、Web應用、數(shù)據(jù)分析、人工智能等各種應用開發(fā);第四,目前新課改在審的高中信息技術教材中大都使用了Python語言,Python語言很有可能成為高中信息技術教材甚至相應科目高考的首選語言。實踐過程中,每個項目案例資源開發(fā)時所采用的應用程序由網(wǎng)絡爬蟲、人工智能應用兩大部分組成。其中網(wǎng)絡爬蟲實現(xiàn)互聯(lián)網(wǎng)大數(shù)據(jù)向本地大數(shù)據(jù)的轉(zhuǎn)移,人工智能應用實現(xiàn)語音合成、文本情感分析、文檔主題分析、人臉檢測與識別等應用。程序開發(fā)環(huán)境:(1)操作系統(tǒng) win7/win10;(2)Python語言版本3.6;(3)Python集成開發(fā)環(huán)境PyCharm 2018.2。
(一)項目案例之一:有聲小說
該項目案例旨在體現(xiàn)人工智能課程三大應用(自然語言、語音、圖像/視頻)之一的語音技術應用,讓學生在復雜的項目情境中深刻體會人工智能課程中語音識別/合成技術的原理和算法,實現(xiàn)高中人工智能課程教材中的“耳聰”(能聽會說)目標,以及高中信息技術新課標的計算思維學科核心素養(yǎng)。該項目代碼包含學習Python編程所需的絕大部分語法,同時,又涉及網(wǎng)絡小說大數(shù)據(jù)爬取和人工智能中語音合成算法的應用。通過該項目的算法講解、代碼訓練,既能培養(yǎng)學生的文本大數(shù)據(jù)與人工智能語音技術應用能力,又能有效培養(yǎng)學生的計算思維。
1. 案例介紹
“有聲小說”項目實現(xiàn)爬取網(wǎng)絡小說大數(shù)據(jù)(文本)并轉(zhuǎn)換為語音(mp3文件)。在網(wǎng)絡爬蟲應用開發(fā)中,從起點中文網(wǎng)(https://www.qidian.com,2018-12-15)選擇免費的小說,利用Python編寫的網(wǎng)絡爬蟲程序(novelDownAll.py,程序代碼近50行) 共爬取了1057720部小說;在人工智能應用開發(fā)中,使用Python編寫的語音合成程序(SpeechSynthesisAll.py,程序代碼120多行) 將爬取的小說轉(zhuǎn)換為語音(mp3文件)。
2. 程序?qū)崿F(xiàn)
“有聲小說”是一個非常典型的基于大數(shù)據(jù)的人工智能應用項目,由通過網(wǎng)絡爬蟲爬取網(wǎng)絡小說程序和通過百度語音合成接口生成mp3小說程序兩部分組成,其程序開發(fā)流程如圖5、圖6所示。由于本文篇幅所限,未能提供程序源碼,有需要者可通過E-mail與作者聯(lián)系。
(二)項目案例之二:教育故事文本分析
該項目案例旨在體現(xiàn)人工智能課程三大應用(自然語言、語音、圖像/視頻)之一的自然語言處理應用,讓學生在復雜的項目情境中深刻體會人工智能課程中自然語言處理(含文本情感分析)的原理和算法,實現(xiàn)高中人工智能課程教材中的“心靈”(能思考會分析)目標以及高中信息技術新課標的計算思維學科核心素養(yǎng)。該項目代碼也包含了學習Python編程所需的絕大部分語法,同時,又涉及教育故事文本大數(shù)據(jù)爬取和人工智能中文本分析算法的應用。通過該項目的算法講解、代碼訓練,既能培養(yǎng)學生的文本大數(shù)據(jù)與人工智能自然語言處理應用能力,又能有效培養(yǎng)學生的計算思維。
1. 案例介紹
“教育故事文本分析”項目爬取了教育故事類文章并對這些文章進行了情感分析與主題分析。在網(wǎng)絡爬蟲應用開發(fā)中,從7C教育資源網(wǎng)(http://www.7cxk.net/,原名為中小學教育資源站,2018-12-20)中選擇了教育故事欄目,使用Python編寫的網(wǎng)絡爬蟲程序共爬取了2060篇文章;在人工智能應用開發(fā)中,使用Python編寫的程序?qū)崿F(xiàn)了2054篇(剔除了6篇,由于某些限制無法用人工智能API分析)文章的情感分析和2060篇文章的主題分析。
2. 情感分析過程及結果
本文之所以選擇7C教育資源網(wǎng)作為“教育故事文本分析”項目的數(shù)據(jù)來源,是由于該網(wǎng)站資源較為豐富,其中包括從小學到高中各學科的各類資源,其中既有學生資源,也有教師資源?!敖逃适隆保╤ttp://www.7cxk.net/teacher/guanli/gushi/)是7C教育資源網(wǎng)中屬于教師資源的一個欄目,積累了學科教師和教育名家撰寫的大量生動活潑、積極向上、教育價值和意義突出的教育故事類文章?!敖逃适挛谋痉治觥表椖繌纳鲜鼍W(wǎng)站中爬取的實驗樣本數(shù)據(jù)見表1。
表1中樣本長度在346字節(jié)至29120字節(jié)之間,樣本長度分布如圖7所示。
文本情感分析,簡單來說就是分析文本以理解作者表達觀點中所透露出來的情感、感覺或情緒。情感分析也稱為意見分析/挖掘,是指使用如自然語言處理NLP、字典資源、語言學和機器學習等技術來進行主觀意見相關的信息提?。ㄟ@些主觀意見包括情緒、態(tài)度、心情、情態(tài)等),并嘗試用這些來計算文本文檔所表示的極性(指文本是否表示積極、消極或中性的情緒,更高級的分析包括尋找更復雜的情緒如悲傷、快樂、憤怒和諷刺等)的過程[15]?!敖逃适挛谋痉治觥表椖壳楦蟹治鼋Y果如圖8(a)、(b)所示。
本文的情感分析調(diào)用了百度人工智能文本分析API的aip庫中的AipNlp模塊,調(diào)用的方法是sentimentClassify,使用該方法會返回極性 (Sentment:0表示積極,1表示中性,2表示消極)、積極情感概率(positive_prob)、消極情感概率(negative_prob)、置信度(confidence)等信息。由于連續(xù)頻繁調(diào)用百度人工智能文本分析API服務會被拒絕,所以2054個文本(1個文本代表1篇文章,2060個文本按順序從1~2060編號,剔除了6個由于某些限制無法用人工智能API分析的文章,其編號依次為367、1121、1137、1303、1439、2055)被分成兩個圖[圖8(a)、(b)]來顯示。由于百度人工智能文本分析API每次能處理的文本長度不超過1024個字節(jié),因此,將每個文本切分成了一系列片段,每個片段為1024個字節(jié),所以圖中縱坐標的單位是(片)段數(shù)(1024字節(jié)/段)。圖8(a)、(b)中的積極、中性、消極均表示置信度在95%及以上的文本數(shù)據(jù),積極_參考、中性_參考、消極_參考均表示置信度在95%以下的文本數(shù)據(jù),積極_總表示積極與積極_參考數(shù)量之和,消極_總表示消極與消極_參考數(shù)量之和,中性_總表示中性與中性_參考數(shù)量之和。
從圖8(a)、(b)中可以看出,2054篇教育故事類文章中情感極性屬于積極的最多,屬于消極的次之,屬于中性的最少,詳細占比如圖9所示。
從圖9可以看出,積極情感(置信度高)占22.73 %,積極情感占 48.80 %,積極情感合計占71.53%;消極情感(置信度高)占3.71 %,消極情感占 22.66 %,消極情感合計占26.37%;中性情感(置信度高)占0.04 %,中性情感占 2.21 %,中性情感合計占2.25%。從情感分析結果來看,積極情感占70%以上。該結果在一定程度上說明,7C教育資源網(wǎng)中的教育故事類文章表達的情感積極向上,由于該分析結果是對2054篇文章的整體分析,近似于全樣本 (全樣本為2060篇文章),因此,該分析結果有較好的參考價值。
3. 主題分析過程及結果
人工智能文本分析中的主題分析,就是采用聚類分析方法,從而確定文本的核心主題。典型的聚類分析方法有k-means聚類、近鄰傳播聚類、層次聚類等,本文的主題分析采用了LDA(Latent Dirichlet Allocation)。LDA是一種文檔主題生成模型,包含詞、主題和文檔三層結構,核心觀點是文章的每個詞都通過“以一定概率選擇了某個主題,并從這個主題中以一定概率選擇某個詞語”這樣一個過程得到[19]。本文的主題分析以上文介紹的2060篇文章作為數(shù)據(jù)分析來源,主題分析調(diào)用了機器學習scikit-learn庫中LDA模塊LatentDirichletAllocation,調(diào)用的方法是fit。主題分析的文檔先要經(jīng)過分詞、文本清洗、標準化、分詞文本轉(zhuǎn)換為稀疏矩陣等一系列步驟,然后使用fit方法生成相應的文檔主題模型。
設置自定義主題個數(shù)為5,每個主題的關鍵詞個數(shù)為8,則隨機兩次運行主題分析程序生成的文檔主題及關鍵詞,見表2、表3。
主題數(shù)與主題對應關鍵詞數(shù)不同,則結果不同。從表2、表3可以看出,即使每次運行時設置的主題數(shù)與主題對應關鍵詞數(shù)都相同,運行的結果也有差異,使用者可多次運行程序后選擇自己認為比較滿意的結果即可。
實際上,還可以使用pyLDAvis等Python第三方庫,將結果用圖來可視化展示。設置自定義主題個數(shù)為5,則使用pyLDAvis將結果可視化后如圖10所示。
圖10展示的是選擇主題1后的界面圖,圖中展示主題1所占的百分比為41.5%。主題1中包括前30個關鍵詞及所占比例(每個主題均包含30個關鍵詞),圖10右上部分滑動滑塊,可以從0~1調(diào)整參數(shù)λ的值,λ不同,前30個關鍵詞的順序和名稱會不同。經(jīng)反復設置不同的主題運行程序后發(fā)現(xiàn),本案例中主題分為3類是一個比較合理的選擇,因為此時3類主題合計占比為99.6%,其他主題合計占比為0.4%(在一定程序上可以忽略),同時,各主題所占的比例以及主題與主題之間沒有交叉且距離相對適中。3類主題關鍵詞及占比見表4。
(三)項目案例之三:人臉檢測與人臉識別
該項目案例旨在體現(xiàn)人工智能課程三大應用(自然語言、語音、圖像/視頻)之一的圖像/視頻技術應用,讓學生在復雜的項目情境中深刻體會人工智能課程中圖像檢測與識別的原理和算法,實現(xiàn)高中人工智能課程教材中的“目明”(能看會分析)目標以及高中信息技術新課標的計算思維學科核心素養(yǎng)。該項目代碼同樣包含了學習Python編程所需的絕大部分語法,同時,又涉及圖像大數(shù)據(jù)爬取和人工智能中圖像檢測與識別算法的應用。通過該項目的算法講解、代碼訓練,既能培養(yǎng)學生的圖像大數(shù)據(jù)與人工智能圖像/視頻技術應用能力,又能有效培養(yǎng)學生的計算思維。
1. 案例介紹
“人臉檢測與人臉識別”項目爬取了網(wǎng)絡中的海量人物圖片并對選擇的部分圖片實現(xiàn)了人臉檢測及人臉識別。在網(wǎng)絡爬蟲應用開發(fā)中,從新浪網(wǎng)導航“圖片”中“時尚”欄目下設的“美容”子欄目(http://slide.fashion.sina.com.cn/b/,2018-12-27)選擇圖片,使用Python編寫的網(wǎng)絡爬蟲程序(程序代碼近50行) 共爬取了30680張人物圖片;在人工智能應用開發(fā)中,使用Python編寫的人臉檢測和識別程序(程序代碼近170行) ,實現(xiàn)了基于靜態(tài)圖片或動態(tài)攝像的人臉檢測和識別程序。
2. 人臉檢測與人臉識別分析過程及結果
本文中對于靜態(tài)圖片的人臉檢測,是通過調(diào)用百度人工智能人臉檢測與識別aip庫中的AipFace模塊實現(xiàn)的,調(diào)用的方法是detect;對于靜態(tài)圖片的人臉識別,是通過調(diào)用百度人工智能人臉檢測與識別aip庫中的AipFace模塊實現(xiàn)的,調(diào)用的方法是match;對于動態(tài)環(huán)境(攝像頭刷臉)下的人臉檢測和人臉識別,則是通過調(diào)用Python第三方庫中的人臉識別庫face_recognition和計算機視覺庫python-opencv聯(lián)合實現(xiàn)的。
靜態(tài)圖片的人臉檢測的效果如圖11(a)、(b)所示[圖片來自公開的人臉數(shù)據(jù)集LFW(http://vis-www.cs.umass.edu/lfw/)]。為了避免侵權,本文未使用從新浪網(wǎng)中爬取的圖片。
從圖11(a)、圖11(b)的對比可以看出,圖11(b)中被識別的人臉被方形框所標記。應當注意的是,百度人工智能API提供的人臉檢測功能對圖片中的人臉數(shù)目有限制,本文測試結果為檢測的人臉數(shù)不超過10個。
對于靜態(tài)圖片的人臉識別,假設提供比對的靜態(tài)圖片如圖12(a)、(b)所示[圖片來自公開的人臉數(shù)據(jù)集LFW(http://vis-www.cs.umass.edu/lfw/)],則程序運行后顯示結果為:照片相似度為91.84%,是同一個人。一般來說,如果照片相似度在80%以上,則被識別為同一個人。
對于動態(tài)環(huán)境(攝像頭刷臉)下的人臉檢測和人臉識別,程序運行后顯示結果如圖13所示。
如圖13所示,在動態(tài)環(huán)境(攝像頭刷臉)下,人臉不但被檢測到(方形框標記人臉),而且也被識別出來(方形框左下方顯示出了被識別者的姓名信息)。
六、結 束 語
新版《普通高中信息技術課程標準(2017年版)》發(fā)布以來,筆者一直在思考一個問題:如何讓基于學科核心素養(yǎng)的信息技術課程教學真正落地?本文認為,對絕大多數(shù)一線教師來說,具有挑戰(zhàn)性的是缺乏適合教學應用的、優(yōu)秀的項目案例教學資源。因為就目前的實際情況來說,優(yōu)秀的項目案例教學資源太少了。巧婦難為無米之炊,新的信息技術課程倡導基于情境的案例式教學、項目式教學,這些教學方式比以往的教學方式更注重案例資源尤其是項目案例資源的積累和運用。如果能結合大數(shù)據(jù)背景,開發(fā)基于大數(shù)據(jù)的人工智能應用項目案例,不失為目前高中信息技術課程教學資源建設的一種新思路。通過開發(fā)這樣的項目案例資源,既解決了優(yōu)秀的項目案例資源缺乏的問題,又解決了高中信息技術課程中最具挑戰(zhàn)性的人工智能課程教學難的問題,從而使基于學科核心素養(yǎng)的信息技術課程教學初步落地,也讓大數(shù)據(jù)、人工智能這些概念不僅僅停留在理論宣傳上,更滲透到一線教師日常教學的實踐中。由于基于大數(shù)據(jù)的人工智能應用比較復雜、形式多樣,也許本文的研究僅僅只是一個開始。
[參考文獻]
[1] 陶皖.云計算與大數(shù)據(jù)[M].西安:西安電子科技大學出版社,2017:9-11.
[2] 何克抗. 21世紀以來的新興信息技術對教育深化改革的重大影響[J].電化教育研究,2019(2):5-12.
[3] 國務院.新一代人工智能發(fā)展規(guī)劃[EB/OL].[2019-01-22].http://www.gov.cn/zhengce/content/2017-07/20/content_ 5211996.htm.
[4] 中華人民共和國教育部.普通高中信息技術課程標準(2017年版)[M].北京:人民教育出版社,2018:9-10.
[5] 馬超,張義兵,趙慶國.高中《人工智能初步》教學的三種常用模式[J].現(xiàn)代教育技術,2008(8):51-53.
[6] 李鳴華.案例教學法在高中人工智能課程中的運用研究[J].中國電化教育,2008(2):99-102.
[7] 吳曉如.人工智能教育應用的發(fā)展趨勢與實踐案例[J].現(xiàn)代教育技術,2018(2):5-11.
[8] 趙飛龍,鐘錕,劉敏.人工智能科普教育探究——以初中“語音合成”課為例[J].現(xiàn)代教育技術,2018(5):5-11.
[9] 湯曉鷗,陳玉琨.人工智能基礎(高中版)[M].上海:華東師范大學出版社,商務印書館,2018:1-169.
[10] 周德懋,李舟軍.高性能網(wǎng)絡爬蟲研究綜述[J].計算機科學,2009(8):26-29,53.
[11] 韋瑋.精通Python網(wǎng)絡爬蟲:核心技術、框架與項目實戰(zhàn)[M].北京:機械工業(yè)出版社,2017:6-8.
[12] 楊順安.面向聲學語音學的普通話語音合成技術[M].北京:社會科學文獻出版社,1994:5-6.
[13] 張斌,全昌勤,任福繼.語音合成方法和發(fā)展綜述[J].小型微型計算機系統(tǒng),2016(1):186-192.
[14] 于延鎖,朱風云,李先剛,等.面向大語料庫的語音合成方法研究[J].北京大學學報(自然科學版),2014(5):791-796.
[15] 迪潘簡·撒卡爾.Python文本分析[M].閆龍川,高德荃,李君婷,譯.北京:機械工業(yè)出版社,2018:35-36.
[16] 何之源. 21個項目玩轉(zhuǎn)深度學習:基于Tensorflow的實踐詳解[M].北京:電子工業(yè)出版社,2018:112-113.
[17] 秦鴻,李泰峰,郭亨藝,等.人臉識別技術在圖書館的應用研究[J].大學圖書館學報,2018(6):49-54.
[18] 專知. 第一本人工智能中學教材來了!《人工智能基礎(高中版)》編著歷程 [EB/OL].[2019-01-27]. https://cloud.tencent.com/developer/article/1143504.
[19] 百度百科.LDA [EB/OL].[2019-01-27].https://baike.baidu.com/item/LDA/13489644?fr=aladdin.
[Abstract] With the release of the new version of Information Technology Curriculum Standards for Senior High Schools (2017 edition), the construction of case teaching resources, especially project case teaching resources with scenarios, complexity, comprehensiveness and practicality, has become an urgent task to be solved. Faced with the serious shortage of project case resources at present, based on relevant researches and from the perspective of AI application in the era of big data, this paper puts forward the framework of AI application development based on big data, and expounds its application development of web crawler and the design of AI application development based on big data. Based on the development framework and the requirements of the "Preliminary Artificial Intelligence" module in the new version of Information Technology Curriculum Standards for Senior High Schools (2017 edition), this paper constructs the design framework of AI application for high school information technology curriculum. Based on this design framework, three AI application cases of audio fiction, text analysis of educational stories, face detection and face recognition are developed by using Python language. Those project cases integrate the typical characteristics of big data and AI application, and have good mobility. Not only can they be used in the "preliminary AI" module and other modules of high school information technology curriculum, but also their design framework provides a solution to the implementation of high school information technology curriculum teaching based on subject core literacy.
[Keywords] Big Data; Artificial Intelligence; Artificial Intelligence Course in Senior High School; Project Case Resources; Design and Development