◎ 費宗翔 田 鵬
課程與教學調(diào)研是上海市教育委員會教學教研室(以下簡稱“市教研室”) 每年的一項常規(guī)工作。多年來在調(diào)研中積累了大量的課程與教學調(diào)研報告(以下簡稱“調(diào)研報告”)。調(diào)研報告以文本的形式保存和印刷,內(nèi)容服務于調(diào)研對象。雖然市教研室在開展調(diào)研工作前已經(jīng)對調(diào)研報告的內(nèi)容要素、調(diào)研工具格式進行了詳細規(guī)定,但調(diào)研報告數(shù)量多、語義描述方式多樣、內(nèi)容表征意義存在模糊性。如何快速、直觀地把握調(diào)研報告的語義、歸納凝練報告主題、分析評估趨勢變化成為一個難題。
隨著信息技術的不斷發(fā)展、計算機算力和存儲能力的不斷增強,自然語言處理(Natural Language Processing,簡稱NLP)技術讓這一問題的解決成為可能。NLP是人工智能領域的重要組成部分,它可以使計算機理解人類自然語言內(nèi)容,實現(xiàn)機器語言和人類語言之間的互通。該技術已經(jīng)日趨成熟,開始應用在我們?nèi)粘I畹暮芏喾矫?,比如智能音箱、微博熱搜榜等。但NLP在教育領域少有應用,本研究嘗試借助NLP技術,對市教研室積累的歷年調(diào)研報告進行語義分析,提煉報告的核心內(nèi)容,形成報告的摘要和主題詞。為市教研室課程與教學調(diào)研專項數(shù)據(jù)的積累提供支持,為深度分析調(diào)研質(zhì)量提供數(shù)據(jù)參考。
結(jié)構(gòu)化的數(shù)據(jù)可以通過尋找實體與實體之間、實體各屬性間的關系,實現(xiàn)對數(shù)據(jù)的分析,常見的有學生考試成績分析等。但調(diào)研報告是單純的文本數(shù)據(jù),沒有清晰的結(jié)構(gòu)關系,要讓計算機能讀懂報告文本、理解自然語言,通常離不開語料預處理、特征工程、特征選擇、模型訓練四個核心步驟。語料即語言材料,它首先要通過洗清、分詞、詞性標注、去停用詞四個主要環(huán)節(jié)進行預處理;其次通過數(shù)字化、向量化將其表示成計算機能夠計算的類型,并選擇合適的、表達能力強的特征,構(gòu)造特征向量;最后選擇適合的算法模型,并訓練模型進行文本分析。
調(diào)研報告與一般文本相比,語言比較專業(yè)、內(nèi)容格式豐富、體例相對統(tǒng)一?;谶@些特點,筆者選擇2015—2019年連續(xù)5年、10個區(qū)共計415份課程與教學調(diào)研報告文件作為語料,開展語義分析。
調(diào)研報告的富文本格式特點,使得我們在語料預處理環(huán)節(jié)中要更多地關注文本中其他格式信息和無用信息的篩選和清洗,以提升計算機分析的速度和精度。
目前市教研室積累的調(diào)研報告大多為使用文字處理軟件撰寫的電子文檔,這些文檔包含了大量的圖片、表格等富文本格式,如果簡單地全文件讀取作為學習算法的輸入,會影響計算機分析的速度,故需從中摘取單純的無格式文本。在具體實現(xiàn)過程中,嘗試通過調(diào)用原生Win32Api軟件接口,實現(xiàn)對文檔格式的統(tǒng)一處理和去格式轉(zhuǎn)換,再將無格式文本統(tǒng)一存入數(shù)據(jù)庫,以便后續(xù)處理。除此之外,調(diào)研報告中通常包含諸如附文、附錄、附表以及課堂實錄等內(nèi)容,其對報告的主旨只起到輔助說明的作用。但這些文本的格式繁雜、內(nèi)容過長,容易喧賓奪主,影響分析精度。因此,考慮將其直接刪除。得益于調(diào)研報告統(tǒng)一的格式規(guī)范,通常在主旨報告的開始和結(jié)束處都會有一些標識字樣,比如,主旨報告的正文結(jié)束后,通常有教研員的姓名信息、附錄本身也會以某些特殊字樣作為開頭,故可用正則表達式定位到附錄起始位置,將其清理干凈。經(jīng)測試,在清除附錄后,主題詞和摘要計算的速度及精度都有所提升。
要對調(diào)研報告進行數(shù)據(jù)挖掘與分析,可以先將非結(jié)構(gòu)化的文本數(shù)據(jù)轉(zhuǎn)為結(jié)構(gòu)化(或半結(jié)構(gòu)化)的數(shù)據(jù)。2015年之后的調(diào)研報告遵循著較為統(tǒng)一的分段規(guī)范,基本包括了調(diào)研概況、結(jié)論和建議等段落,且每個分段前都有清晰的標題,所以考慮將調(diào)研報告按段落拆分,通過正則表達式匹配的方式,枚舉段落編號將之拆分。拆分后的段落文本,以條目為單位分開存儲在數(shù)據(jù)庫中,同時又綁定到報告本身,既可以實現(xiàn)段落的單獨提取,也可以按報告重新聚合,為后續(xù)對主題模型的訓練和調(diào)參提供了較大便利。具體如表1所示。
表1 調(diào)研報告的拆分表(部分)
調(diào)研報告由多個段落組成,段落由句子組成,而詞語是構(gòu)成句子的基本單位。在語義分析過程中,詞語是可以被計算機識別、學習的最小單位。因此,在語料處理過程中,必須對中文文本進行專門的分詞處理,將報告切分成詞語。目前最常用的分詞組件是開源的“Jieba”分詞,它的功能和易用性都很強。詞性在識別語義的過程中也有著重要的作用,故分詞后,詞語集中每個詞的詞性,都應當基于語境,給予判斷和標注,以便在后續(xù)識別學習的過程中,可以有選擇性地抽取有意義的部分進行訓練,提高模型工作的準確率。例如,停用詞的處理就是基于詞性標注。中文文本中有很多助詞、代詞、語氣詞等詞語是不影響文本語句含義的,同時也有一些數(shù)字、字符在單個詞語層面無實意,可它們的存在又增加了文本數(shù)據(jù)的維度,沖淡了有意義詞語的比例。為了方便分析,將這些詞標記為停用詞,并在分詞后去除這些停用詞,以提高文本數(shù)據(jù)的質(zhì)量,方便計算機識別。
經(jīng)過前面的語料處理,基于調(diào)研報告的詞庫原型已基本構(gòu)成,為了數(shù)據(jù)的持久化和后續(xù)處理的共享性,需要建設文本數(shù)據(jù)庫,將文本數(shù)據(jù)的所有有關信息錄入其中。
首先在字典表中,會記錄所有出現(xiàn)過的詞語(包括停用詞),并對它的詞性和是否為停用詞進行標記;在分詞表中,包含了每篇報告的完整分詞,每個詞映射到字典表中并標記它在正文中的位置。此外,每篇調(diào)研報告的標題、工作內(nèi)容、段落等信息也會錄入文本數(shù)據(jù)庫中。整個文本數(shù)據(jù)庫包含了原始調(diào)研報告中所有的可讀文字,既可以篩選有關文本,又可以聚合還原報告,大大提高了文本處理的靈活性,也為后續(xù)應用功能的開發(fā)奠定了良好基礎。
語義分析中用到的算法有很多,如何結(jié)合調(diào)研報告的特點,選擇適切的算法模型,需要不斷試錯、調(diào)整、優(yōu)化。例如,特征詞提取算法,分詞庫形成后,通過計算報告中各詞組的詞頻,可以找到文章的高頻詞,但高頻詞是不是最能代表文章核心的詞呢?調(diào)研報告是在同一領域(教學調(diào)研)、有相似主題(每個學段有相同的調(diào)研主題)的文檔,最常出現(xiàn)的詞就是“教師”“學生”“教學”等,若這些詞被選為報告的核心詞并不合適。所以需要調(diào)整算法,選擇TF-IDF模型來標記報告的特征詞組。TF-IDF是一種用于信息檢索與數(shù)據(jù)挖掘的常用加權技術,它將某篇報告中出現(xiàn)頻率高且在其他報告中出現(xiàn)頻率低的詞作為特征詞,并賦予高權重,這樣的詞更可能體現(xiàn)這篇報告的核心與特點。
再比如摘要提取算法,自動的摘要提取可以加速人工檢查文本內(nèi)容的效率。若有一份合理的、有效涵蓋調(diào)研報告內(nèi)容的摘要,閱讀者就可以快速鎖定到需關注的內(nèi)容,詳細精讀,提取有價值的內(nèi)容。TextRank是常用的自動摘要算法,它由Google的PageRank算法改造和演化而來,用于得到文檔中概括性較強的句子。TextRank算法將文本拆分成句子、將句子作為網(wǎng)絡圖中的節(jié)點,句子間的相似度用節(jié)點間的相似度來表示,從而構(gòu)建基于句子結(jié)構(gòu)關系的文本網(wǎng)絡圖。通過對文本網(wǎng)絡圖的迭代計算可以實現(xiàn)對文本中句子重要性的排序,從而篩選出最重要的句子作為本文的摘要。因此,自動摘要提取的關鍵在于準確計算句子間的相似度。每個句子是由一個個詞語組合而成的,故句子相似度又可以歸結(jié)為句中詞語相似度。筆者最終選擇適合長度相同的向量間相互比較的海明距離度量方法,計算兩個句子的相似度。如果句中有重復的詞就加1,故數(shù)值越高兩個句子的相似度越高。根據(jù)此算法得到的摘要能較好地貼合報告的主旨。
分詞是中文文本處理時的必要步驟,“Jieba”分詞模塊采用基于統(tǒng)計的分詞方法,在全切分所得的所有結(jié)果中求某個切分方案S,使得S方案的概率(P(S))最大?!癑ieba”還自帶了一個叫作dict.txt的分詞庫,里面有2萬多條詞,是基于人民日報語料等資源訓練得來的。
在實際操作過程中,筆者發(fā)現(xiàn)分詞的效果存在問題。一些教育領域特有的名詞沒有被切分準確。例如,“信息科技”是一門學科的名稱,是一個完整的詞,但實際分詞過程中,根據(jù)人民日報語料資源,切分為“信息”和“科技”的概率更高。這樣的分詞集合就會與之前的語義相去甚遠。因此,按教育領域的用詞特點去擴充分詞庫,非常必要。通過分析閱讀相關政策文件,最終鎖定到提及教育類關鍵詞的重要文件,包括《教育部工作要點》《教育改革方案》《教育部主題詞表》《上海市教育工作要點》《教研室工作重點》等。我們將其內(nèi)容摘錄到擴展詞庫中,并增加權重。當然這樣還遠遠不夠,每年有關部門都會提出新的政策要求,新的詞組也應當以迭代的方式錄入擴展詞庫中,保證詞庫緊跟每年的教育政策要點,以便達到更好的分詞效果。
TextRank算法中,用海明距離計算兩個句子的相似度,得到的摘要雖貼合報告的主旨,但中規(guī)中矩,一些“特色”無法反映出來。因為海明距離是平權計算,故獨特性高的句子沒能突顯。如果采用加權計算,摘要里就能看到“特色”補充。于是結(jié)合TF-IDF模型,嘗試給特征詞加權,句子中的特征詞越多則數(shù)值越高,成為摘要句子的可能性就越高,報告的“特色”也就能被突顯出來。
但在實際操作中發(fā)現(xiàn),有時提取出的“特色”句子并不適合成為摘要。以寶山區(qū)歷史學科的調(diào)研報告為例,計算機自動提取報告中排序前十的句子,經(jīng)教研員確認,其中前七個句子有較好的代表性,確實是該報告的核心內(nèi)容。后三個句子,有較強的學科區(qū)分度,在其他學科出現(xiàn)的概率非常低,但不是核心內(nèi)容,不適合作為報告摘要。結(jié)合教研員的反饋,詞語向量化的過程還需進一步優(yōu)化。傳統(tǒng)的獨熱映射模型和詞袋模型,直接按照詞庫容量定義空間維度,映射結(jié)果是稀疏的、不能反映詞在前后的語義。詞向量模型可以將稀疏的詞典空間壓縮至稠密的低維空間,一個詞對應一個空間中的向量,增加信息表示的效率,提高運算性能。同時,向量的坐標有隱含的語義信息,海明距離較近的兩個向量,會有更相似的語義屬性,提高語義處理的精度。因此,嘗試將TextRank算法和詞向量、Word2Vec模型結(jié)合起來,建立詞與詞之間的關系,完善自動摘要算法。
利用主題模型,可獲得調(diào)研報告的主題詞分布,從而直觀地確定報告的主要內(nèi)容和關注重點。 選擇LDA模型,將詞庫中的詞語聚成10類主題,再通過計算某篇調(diào)研報告的主題分布,選出排名前三的主題詞作為這篇報告的主題詞。但在人工校驗時發(fā)現(xiàn),部分報告的主題詞與報告內(nèi)容不符,比如某篇初中學段調(diào)研報告中排序第二的主題詞是“學校建設”,但查閱原文發(fā)現(xiàn)作者關注的是“課程建設”。繼續(xù)研究發(fā)現(xiàn),主要原因一是聚類后主題詞的提煉不夠準確;二是類別中的詞語相似度高、區(qū)分度不明顯、聚類效果不佳。根據(jù)校驗結(jié)果,重新設定分詞的聚類數(shù)。最后發(fā)現(xiàn)基于現(xiàn)在的語料,聚成14類主題,效果最好。因此,在完成調(diào)研報告的語義分析后,我們研發(fā)了調(diào)研報告語義分析結(jié)果檢驗小程序,通過接口接入課程與教學調(diào)研系統(tǒng),接收調(diào)研系統(tǒng)提交的調(diào)研報告,自動計算報告的主題分布和摘要,并將結(jié)果呈現(xiàn)給撰寫此報告的教研員,教研員對計算機分析的結(jié)果進行打分和評價,這些反饋將助力后續(xù)的算法優(yōu)化研究。
這是市教研室第一次嘗試使用NLP技術對非結(jié)構(gòu)化數(shù)據(jù)進行分析,對該項工作價值的認識也是在不斷實踐探索中得以明確。
語義分析的常用方法與算法模型如果直接套用在我們的調(diào)研報告上,所得結(jié)果準確率很低。非結(jié)構(gòu)化的文本數(shù)據(jù)與結(jié)構(gòu)化數(shù)據(jù)不同,它有一定的獨特性和不確定性,需要在實踐的過程中不斷地累積數(shù)據(jù)、調(diào)整算法、優(yōu)化方案。在本次研究過程中,通過擴充詞庫、調(diào)整算法模型、接入人工檢驗程序等方法,不斷提升語義分析結(jié)構(gòu)的準確率。從小程序獲得的用戶反饋數(shù)據(jù)來看,大家對分析結(jié)果還是比較肯定的。因此,本次研究的價值除了獲得從2015年至2019年,共計415份課程與教學調(diào)研報告文件的準確率比較高的主題詞和摘要之外,還獲得了一份比較完整的、適用于教育教研領域的、獨一無二的專業(yè)詞庫,一個及時獲取用戶檢驗結(jié)果的自動化小程序和一套有助于教育領域文本數(shù)據(jù)挖掘的一般方法。依照這樣的方法,再加上調(diào)研報告的數(shù)量不斷積累,未來語義分析結(jié)果的準確率會不斷提升。
調(diào)研報告文本分析的目標是提煉出報告的主題詞和摘要,但過程中形成的文本數(shù)據(jù)庫可為業(yè)務部門的研究或改進工作提供參考。例如,從筆者統(tǒng)計了415篇報告的詞頻統(tǒng)計和在文章中出現(xiàn)的次數(shù)可見,調(diào)研過程中對上海各區(qū)的教學、教研、作業(yè)、教研組、評價等高度關注,符合市教研室對調(diào)研工作的總體要求。但是“考試測驗”等不是高頻詞,可能與其關注度不夠有關,也可能與部分學科和學段沒有考試測驗有關。數(shù)據(jù)只是呈現(xiàn)事實性,但是數(shù)據(jù)如何解讀,需要業(yè)務部門的專家進行分析,因此,研究中的過程性數(shù)據(jù),可以為業(yè)務部門改進工作,或者規(guī)范工作提供參考。
后續(xù)筆者計劃進一步積累更多的教育領域詞匯,提高文本分析的精度;進一步區(qū)分詞性,增加對報告情感的分析;進一步解讀數(shù)據(jù)背后的意義,形成某次調(diào)研的質(zhì)量評估和分析報告,供決策者參考。