江西科技師范大學(xué)數(shù)學(xué)與計算機科學(xué)學(xué)院 程山英
在“互聯(lián)網(wǎng)+”教學(xué)時代,學(xué)生面對呈爆炸式增長的學(xué)習(xí)平臺和學(xué)習(xí)資源,容易陷入知識迷航,面對各種質(zhì)量參差不齊的教學(xué)資源無法高速、有效、精準(zhǔn)地在海量信息中找到所需要的學(xué)習(xí)資料。《數(shù)據(jù)庫原理》課程是一門知識點多、關(guān)聯(lián)性強的專業(yè)必修課程,學(xué)習(xí)者在互聯(lián)網(wǎng)中進(jìn)行學(xué)習(xí)時,很難精準(zhǔn)地找到所需要的學(xué)習(xí)資源。因此,將知識圖譜技術(shù)應(yīng)用到《數(shù)據(jù)庫原理》課程的教學(xué)中,用可視化的形式進(jìn)行知識表達(dá),學(xué)習(xí)者能進(jìn)行有效、科學(xué)地學(xué)習(xí)。因此,將專業(yè)學(xué)科與知識圖譜的可視化相結(jié)合,能提高教學(xué)質(zhì)量,促進(jìn)教育發(fā)展。
知識圖譜是一種語義網(wǎng)絡(luò),對現(xiàn)實世界的實體和實體之間的關(guān)系用可視化的形式顯現(xiàn)出來。知識圖譜通過有向圖把相關(guān)聯(lián)的語義信息連接在一起,能將網(wǎng)絡(luò)大數(shù)據(jù)的應(yīng)用價值大幅提高。
課程知識圖譜是知識圖譜與教育相融合,在教育上的具體應(yīng)用。課程知識圖譜將知識圖譜技術(shù)應(yīng)用于某個學(xué)科或者課程,將課程內(nèi)的所有知識點以(實體,關(guān)系,實體)的三元組形式構(gòu)建一個網(wǎng)狀的結(jié)構(gòu)。不同的知識點用“實體”表示,知識點的關(guān)聯(lián)用“關(guān)系”表示,關(guān)系在直觀上就是有向邊,有起點,有終點,邊的方向和標(biāo)簽?zāi)苷f明具體的關(guān)系類型。這樣通過知識圖譜可以將知識點、知識點之間的概念以直觀明了的方式呈現(xiàn)在學(xué)習(xí)者面前,以便學(xué)習(xí)者能客觀和清楚地理解知識點和知識之間的關(guān)系。
本文所構(gòu)建的知識圖譜是采用自底向上的方式完成的,首先進(jìn)行了實體提取的工作,其次構(gòu)建模式層的本體模式。
構(gòu)建課程知識圖譜的第一步是獲取大量的數(shù)據(jù)。首先確定領(lǐng)域范圍為《數(shù)據(jù)庫原理》;其次對經(jīng)典數(shù)據(jù)庫教材,高等教育出版社的《數(shù)據(jù)庫系統(tǒng)概論》進(jìn)行人工提取文字內(nèi)容,整理收集成文件;最后以《數(shù)據(jù)庫原理》教材作為參考依據(jù),應(yīng)用網(wǎng)絡(luò)爬蟲技術(shù),對教材中的相關(guān)知識點進(jìn)行數(shù)據(jù)采集,并在維基百科中找到相關(guān)的知識數(shù)據(jù)進(jìn)行下載。應(yīng)用相關(guān)算法對語料庫做處理,自動處理與人工篩選相結(jié)合,對所有數(shù)據(jù)進(jìn)行過濾與整合,得到知識點,為《數(shù)據(jù)庫原理》學(xué)科知識圖譜的構(gòu)建提供充分的數(shù)據(jù)支持。
XLink是基于跨語言知識庫XLORE的實體鏈接系統(tǒng)。將數(shù)據(jù)收集階段的知識點文檔進(jìn)行輸入,XLink能識別出《數(shù)據(jù)庫原理》知識點文檔中的知識點實體并鏈接到XLORE相對應(yīng)的實體上。文本信息和知識庫通過實體鏈接進(jìn)行橋接,為知識點文本理解提供了外部知識。本文的知識圖譜通過清華實驗室的實體抽取,XLink接口對之前數(shù)據(jù)收集階段形成的文件中的知識概念進(jìn)行抽取,得到文件中包含的知識概念。
BERT模型的全稱是Bidirectional Encoder Representations from Transformer。BERT模型是多層的Transformer架構(gòu)。在BERT模型中,多層的編碼器進(jìn)行編碼,對句子中的每一個詞應(yīng)用自注意力機制建立線性相關(guān),詞向量和位置向量在數(shù)據(jù)庫原理知識點中起著關(guān)鍵作用。因此本文將BERT模型引入數(shù)據(jù)庫原理知識點實體關(guān)系抽取模型框架中,運用BERT模型對知識概念進(jìn)行詞向量,然后以種子概念為聚類中心對抽取的知識概念進(jìn)行聚類,得到種子概念聚類后的結(jié)果,聚類越靠前,知識概念和本課程越有關(guān)系。
完成了數(shù)據(jù)采集和概念抽取后,將下來的工作是要從數(shù)據(jù)中抽取實體和關(guān)系。對聚類后的概念和課程對應(yīng)的概念進(jìn)行三元組劃分,構(gòu)造實體與實體間的關(guān)系,并將整理好的三元組寫入Neo4j圖形數(shù)據(jù)庫。假設(shè):任意一個實體對僅有一個關(guān)系。定義了六類實體對關(guān)系,分別是依賴,被依賴,包含,屬于,無關(guān),有關(guān)。需要特別說明的是,本文構(gòu)建了“章節(jié)概念”,將每一章的內(nèi)容進(jìn)行了知識點的歸納。
考慮到課程知識點的特殊性和知識的嚴(yán)謹(jǐn)性,初步對實體關(guān)系進(jìn)行了人工標(biāo)注。同時為了增強系統(tǒng)的可擴展性,預(yù)留了手工標(biāo)注數(shù)據(jù)的功能,在以后的使用過程中,如果發(fā)現(xiàn)數(shù)據(jù)、關(guān)系有誤差,隨時可以進(jìn)行更改。
在完成了數(shù)據(jù)采集、概念和關(guān)系抽取的工作后,就需要對《數(shù)據(jù)庫原理》知識圖譜進(jìn)行可視化的設(shè)計與實現(xiàn)。
應(yīng)用Python的py2neo,把之前文件中的實體和關(guān)系三元組全部存儲到Neo4j圖形數(shù)據(jù)庫中,在應(yīng)用Cypher語言對《數(shù)據(jù)庫原理》課程知識圖譜進(jìn)行各種個性化的查詢和路徑分析操作,如圖1所示,各知識點的關(guān)系很直觀清晰地顯示出來。
圖1 實體關(guān)系
Django是一個開源的Web框架,它擁有豐富的在線文檔,文檔記錄了完備的信息,特別容易上手進(jìn)行開發(fā)設(shè)計。Django有強大的數(shù)據(jù)庫訪問組件,方便進(jìn)行數(shù)據(jù)庫的訪問,且界面友好,有效的錯誤提示和幫助,適合連接數(shù)據(jù)庫的應(yīng)用程序。
實現(xiàn)開發(fā)知識圖譜展示W(wǎng)eb頁面,根據(jù)查詢的知識概念,得到該知識概念對應(yīng)的知識圖譜,同時調(diào)用開源的知識概念解釋接口,獲取對當(dāng)前知識概念的解釋。運用Django框架,對Neo4j后臺圖形數(shù)據(jù)庫中的知識圖譜數(shù)據(jù)與Web前端進(jìn)行交互,前端是通過Ajax方法調(diào)用后端接口查找數(shù)據(jù),實現(xiàn)可視化技術(shù)。
在Web頁面中,默認(rèn)顯示《數(shù)據(jù)庫原理》課程知識指定個數(shù)的節(jié)點,在右側(cè)的查詢中輸入查詢的內(nèi)容,能展開查詢節(jié)點的功能。
選擇計算機專業(yè)學(xué)生進(jìn)行對比學(xué)習(xí)實驗,將40名學(xué)生隨機分成二組,對比實驗學(xué)習(xí),然后進(jìn)行測試和調(diào)查問卷進(jìn)行學(xué)習(xí)效果分析。測試表明,應(yīng)用課程知識圖譜進(jìn)行學(xué)習(xí),測試時間有效縮短,測試成績明顯提升。對使用課程知識圖譜學(xué)習(xí)的學(xué)生進(jìn)行問卷調(diào)查。從結(jié)果可以看出90%的學(xué)生認(rèn)為課程知識圖譜使用方便,95%的學(xué)生認(rèn)為知識圖譜能幫助掌握課程整體結(jié)構(gòu),93%的學(xué)生認(rèn)為課程知識圖譜能幫助理解知識間的關(guān)聯(lián)。
通過效果分析可知,《數(shù)據(jù)庫原理》課程知識圖譜能幫助學(xué)生掌握知識整體結(jié)構(gòu)和理解知識點之間的關(guān)系,改善學(xué)生學(xué)習(xí)體驗,提升教學(xué)效果。
實踐結(jié)果表明,《數(shù)據(jù)庫原理》可視化知識圖譜系統(tǒng)的使用,使學(xué)習(xí)者形成清晰的知識體系,將知識內(nèi)容直觀簡潔地呈現(xiàn)給學(xué)習(xí)者,降低了學(xué)習(xí)者的視覺負(fù)擔(dān),提升學(xué)習(xí)者的學(xué)習(xí)效率,為知識圖譜應(yīng)用在教學(xué)中的發(fā)展提供啟示。