閆 瑾, 劉爽英, 白 姍, 王偉艷, 張 丹
(中北大學(xué) 軟件學(xué)院, 山西 太原 030051)
隨著教育現(xiàn)代化的不斷發(fā)展, 新時代高等教育背景下對大學(xué)生學(xué)業(yè)預(yù)警的研究關(guān)系到國家人才培養(yǎng)體系的建設(shè)。近年來, 高等院校對學(xué)生學(xué)習(xí)過程的管理愈發(fā)嚴(yán)格, 學(xué)業(yè)管理也在由“事后處理型”向“事前事中預(yù)防型”轉(zhuǎn)變, 以確保我國高等教育人才的培養(yǎng)質(zhì)量[1]。學(xué)業(yè)預(yù)警機(jī)制能夠幫助學(xué)生進(jìn)行自我評估, 及時端正學(xué)習(xí)態(tài)度, 避免出現(xiàn)掛科、無法畢業(yè)等學(xué)業(yè)問題。各大高校學(xué)業(yè)預(yù)警機(jī)制已經(jīng)形成, 并且開始初步應(yīng)用, 但一般僅應(yīng)用于評獎學(xué)金、轉(zhuǎn)專業(yè)等特殊情況, 并未將其融入到學(xué)校的日常教育教學(xué)活動管理中。因此, 如何完善學(xué)生學(xué)業(yè)預(yù)警體系, 提高預(yù)警相關(guān)主體對預(yù)警機(jī)制的重視程度和執(zhí)行力已成為當(dāng)前研究的熱點(diǎn)[2]。
目前, 常用的學(xué)業(yè)預(yù)警方法有數(shù)據(jù)挖掘、云計(jì)算、區(qū)塊鏈、機(jī)器學(xué)習(xí)等, 申民哲[3]提出了一種基于數(shù)據(jù)挖掘的學(xué)生畫像與學(xué)業(yè)預(yù)警方法, 姜志鵬等[4]提出了一種基于云計(jì)算的高校學(xué)生學(xué)業(yè)預(yù)警技術(shù), 梁建[5]提出了一種基于區(qū)塊鏈的新工科人才培養(yǎng)的智慧管理方法, 這些工作通過對學(xué)習(xí)數(shù)據(jù)以及考試數(shù)據(jù)進(jìn)行挖掘, 分析數(shù)據(jù)并構(gòu)建模型進(jìn)行預(yù)測, 能夠得到較高的預(yù)測準(zhǔn)確度。但是, 這些方法較為注重預(yù)測結(jié)果, 在一定程度上忽略了過程, 在早期干預(yù)方面存在不足且不夠直觀。
為了更直觀地呈現(xiàn)學(xué)生學(xué)習(xí)的情況, 并能夠在掛科、無法畢業(yè)等問題出現(xiàn)之前采取措施, 本文使用了知識圖譜的方法。知識圖譜具有強(qiáng)大的查詢和推理能力、較強(qiáng)的實(shí)時更新與人機(jī)交互性能, 以及出色的可視化性能。知識圖譜在學(xué)科建設(shè)中已被廣泛研究和應(yīng)用, 如: 張春霞等[6]對數(shù)學(xué)課程進(jìn)行了研究, 通過構(gòu)建數(shù)學(xué)課程本體, 提出了一種數(shù)學(xué)課程知識圖譜構(gòu)建方法以及知識推理方法; 黃煥等[7]通過對適應(yīng)性學(xué)習(xí)系統(tǒng)的功能需求進(jìn)行研究, 設(shè)計(jì)了以“Java程序設(shè)計(jì)基礎(chǔ)”課程為示例的課程知識圖譜; 郎亞坤等[8]以“C++”課程為例, 構(gòu)建了課程知識圖譜, 并使用Neo4j圖數(shù)據(jù)庫完成可視化。知識圖譜強(qiáng)調(diào)實(shí)體間關(guān)系與實(shí)體屬性, 因此, 知識圖譜能夠很好地表達(dá)出知識點(diǎn)的掌握關(guān)系。
借鑒以上研究, 本文進(jìn)行了學(xué)業(yè)預(yù)警知識圖譜的構(gòu)建與應(yīng)用, 首先, 通過protégé完成模式層的構(gòu)建, 對知識的數(shù)據(jù)結(jié)構(gòu)(包含實(shí)體、關(guān)系、屬性)進(jìn)行了設(shè)計(jì); 其次, 以事實(shí)三元組為單位, 存儲具體的信息; 最后, 使用D2RQ對模式層與數(shù)據(jù)層進(jìn)行映射, 完成學(xué)業(yè)預(yù)警知識圖譜的構(gòu)建。本文所構(gòu)建的知識圖譜重點(diǎn)針對線上教學(xué), 對學(xué)生未完成的學(xué)習(xí)內(nèi)容進(jìn)行重點(diǎn)提示, 以實(shí)現(xiàn)“事前事中預(yù)防”的目標(biāo)。此外, 本文還結(jié)合學(xué)生線上和線下所學(xué)科目, 在其可能影響到學(xué)生正常畢業(yè)前就進(jìn)行學(xué)業(yè)預(yù)警, 以解決學(xué)業(yè)預(yù)警方法中過程化與可視化不足的問題。
知識圖譜是一種以圖的形式表示實(shí)體與實(shí)體之間關(guān)系的知識庫[9], 實(shí)質(zhì)上是不同規(guī)模的語義網(wǎng)絡(luò), 將知識實(shí)體或概念作為節(jié)點(diǎn), 語義關(guān)系作為邊, 其基本組成單位是“實(shí)體—關(guān)系—實(shí)體”和“實(shí)體—屬性—值”兩種三元組[10]。知識圖譜技術(shù)能夠?yàn)楫悩?gòu)信息提供統(tǒng)一化的表示平臺, 能夠有效呈現(xiàn)實(shí)體間的關(guān)系, 因此便于使用者從“關(guān)系”層面分析問題。
知識圖譜構(gòu)建過程包括模式層和數(shù)據(jù)層的構(gòu)建, 模式層構(gòu)建在數(shù)據(jù)層之上, 是整個知識圖譜的核心。模式層存儲的是結(jié)構(gòu)化的、具有概括性的知識, 數(shù)據(jù)層主要存儲的是結(jié)構(gòu)化的數(shù)據(jù), 常存儲在數(shù)據(jù)庫中[11]。通過知識圖譜的構(gòu)建可以將本體中的知識和實(shí)例數(shù)據(jù)進(jìn)行具體的結(jié)合。
學(xué)業(yè)預(yù)警知識圖譜以學(xué)校課程、學(xué)生和課程知識作為具體研究對象, 由實(shí)體關(guān)系和屬性的獲取、專業(yè)課程知識的表示、圖譜的構(gòu)建和應(yīng)用三部分組成。知識圖譜構(gòu)建框架如圖1 所示。
圖1 知識圖譜構(gòu)建框架圖
首先, 實(shí)體關(guān)系和屬性的獲取需要從學(xué)生數(shù)據(jù)、課程數(shù)據(jù)和知識點(diǎn)數(shù)據(jù)入手, 抽取知識并處理為結(jié)構(gòu)化數(shù)據(jù); 其次, 根據(jù)學(xué)校專業(yè)課知識點(diǎn)框架對知識進(jìn)行表示, 將學(xué)生、課程、知識進(jìn)行有效鏈接, 構(gòu)建知識圖譜; 最后, 基于知識獲取和專業(yè)知識圖譜完成構(gòu)建, 使用Neo4j圖數(shù)據(jù)庫完成可視化, 實(shí)現(xiàn)直觀的學(xué)習(xí)表示與學(xué)業(yè)預(yù)警。
知識圖譜的模式層通常采用本體庫來管理, 本體(Ontology)可以看成描述某個學(xué)科領(lǐng)域知識的一個通用概念模型。本體構(gòu)建的目標(biāo)旨在獲取、描述和表示相關(guān)領(lǐng)域的知識, 提供對該領(lǐng)域知識的共同理解, 確定領(lǐng)域內(nèi)共同認(rèn)可的詞匯, 提供該領(lǐng)域特定的概念定義和概念之間的關(guān)系, 提供該領(lǐng)域中發(fā)生的活動以及該領(lǐng)域的主要理論和基本原理, 達(dá)到人機(jī)交流的效果[12]。
知識圖譜模式層的建立通常分為自頂向下和自底向上2種模式。對于較為成熟的領(lǐng)域, 采用自頂向下的方法進(jìn)行圖譜構(gòu)建就足以滿足需求。但是, 對于知識體系欠缺完備性的領(lǐng)域, 就需要通過自底向上的方式, 對這類知識進(jìn)行基于數(shù)據(jù)驅(qū)動的方式構(gòu)建[13-15]。本文采用自頂向下的方式構(gòu)建知識圖譜, 后續(xù)再通過各類實(shí)例數(shù)據(jù)自底向上補(bǔ)充完善。
首先設(shè)計(jì)模式層, 本文采用樹狀結(jié)構(gòu)進(jìn)行模式層中類層次的構(gòu)建, 每個子類繼承其祖先節(jié)點(diǎn)的屬性, Object類是根節(jié)點(diǎn), 其他所有類是其子節(jié)點(diǎn)。然后對類關(guān)系、類領(lǐng)域、類屬性進(jìn)行定義。類關(guān)系定義描述了類之間存在相互的關(guān)系, 包括isGet, isPass, isInclude; 類領(lǐng)域定義是為了便于將多個領(lǐng)域中的類進(jìn)行分組管理, 包括User類、Course類、Knowledge類以及各自的子類; 類屬性定義用于描述各個類具有的屬性。本文模式層中類層次結(jié)構(gòu)的設(shè)計(jì)圖如圖2 所示。
圖2 類層次結(jié)構(gòu)設(shè)計(jì)圖
知識通常以“實(shí)體-關(guān)系-實(shí)體”或者“實(shí)體-屬性-值”三元組作為基本表達(dá)方式。存儲在圖數(shù)據(jù)庫中的所有數(shù)據(jù)將構(gòu)成龐大的實(shí)體關(guān)系網(wǎng)絡(luò), 形成知識的“圖譜”。知識圖譜數(shù)據(jù)層通常存儲在MySQL、Oracle及SQL Server等關(guān)系型數(shù)據(jù)庫中, 通過對類、對象屬性和數(shù)據(jù)屬性的映射, 將數(shù)據(jù)層與預(yù)設(shè)模式層結(jié)合, 實(shí)現(xiàn)知識圖譜的實(shí)例化[16], 最終存儲到圖數(shù)據(jù)庫Neo4j并展示。本文實(shí)例數(shù)據(jù)使用MySQL數(shù)據(jù)庫來存儲, 其中包含4個數(shù)據(jù)層類表與6個數(shù)據(jù)層關(guān)系表, 如表1 和表2 所示。
表1 數(shù)據(jù)層類表
表2 數(shù)據(jù)層關(guān)系表
完成知識圖譜模式層的構(gòu)建后, 設(shè)計(jì)對應(yīng)的映射語句, 將表1 和表2 中的結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)化成三元組數(shù)據(jù)。知識圖譜基于關(guān)系型數(shù)據(jù)庫的本體映射方法主要有兩種, 一種是將三元組數(shù)據(jù)存儲在SQL中, 再將SQL數(shù)據(jù)轉(zhuǎn)化為RDF數(shù)據(jù), 并與本體OWL文件關(guān)聯(lián), 另一種是將本體存儲在關(guān)系型數(shù)據(jù)庫中, 通過外鍵連接。由于第二種方法需要大量自連接操作, 開銷巨大, 而第一種方法比較靈活方便, 因此, 本文采用第一種方法, 使用D2RQ工具進(jìn)行映射。
采用本體建模軟件protégé完成本體構(gòu)建, 作為知識圖譜的模式層。使用MySQL數(shù)據(jù)庫來存儲數(shù)據(jù), 關(guān)系型數(shù)據(jù)庫可以實(shí)現(xiàn)數(shù)據(jù)與本體的映射。對關(guān)系型數(shù)據(jù)庫中的結(jié)構(gòu)化數(shù)據(jù), 抽取數(shù)據(jù)信息, 通過D2RQ工具將結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)化為三元組數(shù)據(jù), 存儲在SQL中, 并將SQL數(shù)據(jù)轉(zhuǎn)化為RDF數(shù)據(jù), 與本體OWL文件關(guān)聯(lián), 然后加入到知識圖譜中, 再使用Neo4j圖數(shù)據(jù)庫實(shí)現(xiàn)可視化和查詢。這種直接映射的方式能夠讓用戶更加靈活地編輯和設(shè)置映射規(guī)則。
D2RQ映射語言是一種聲明性語言, 用于描述關(guān)系數(shù)據(jù)庫架構(gòu)與RDFS詞匯表或OWL本體之間的關(guān)系。該映射定義一個虛擬RDF圖, 其中包含數(shù)據(jù)庫中的信息。這類似于SQL中的視圖概念, 不同之處在于虛擬數(shù)據(jù)結(jié)構(gòu)是RDF圖, 而不是虛擬關(guān)系表。它的機(jī)理就是通過mapping文件, 把對RDF的查詢等操作翻譯成SQL語句, 最終在RDB上實(shí)現(xiàn)對應(yīng)操作。
將數(shù)據(jù)庫中的每一張表看作是一個類, 因此, 表中的每一行就是該類的一個實(shí)例, 表中的每一列就是這個類所包含的屬性, 表3 所示為部分關(guān)系數(shù)據(jù)庫與本體庫的映射關(guān)系。
表3 部分映射關(guān)系表
通過D2RQ映射將數(shù)據(jù)庫中的表與本體中的類相關(guān)聯(lián)。D2RQ提供了自己的mapping language, 根據(jù)數(shù)據(jù)庫自動生成預(yù)定義的mapping文件, 對文件進(jìn)行修改, 把數(shù)據(jù)映射到本體上。以Course表為例, 部分映射語句如下:
map:Course a d2rq:ClassMap;
d2rq:dataStorage map:Database;
d2rq:class:Course;
d2rq:uriPattern “course/@@course.id@@”;
d2rq:classDefinitionLabel “course”;
再使用命令“.dump-rdf.bat-o kg_course.nt.kg_course_mapping.ttl”將數(shù)據(jù)轉(zhuǎn)為RDF, 使用命令“CALL semantics.importRDF(“ file:///course.rdf”,“RDF/XML”,{ shortenUrls: false, typesToLabels: true})”將數(shù)據(jù)導(dǎo)入Neo4j圖數(shù)據(jù)庫進(jìn)行查詢和可視化展示。
構(gòu)建知識圖譜需要獲取相關(guān)數(shù)據(jù)與屬性, 由于作者所在學(xué)院在讀研究生總數(shù)僅為160人, 數(shù)據(jù)量較少, 實(shí)驗(yàn)結(jié)果說服力較弱。因此, 使用Kaggle與百度百科網(wǎng)頁的數(shù)據(jù), 分為可視化測試與有效性測試。數(shù)據(jù)集具體信息、實(shí)驗(yàn)過程與實(shí)驗(yàn)結(jié)果如下所述。
3.2.1 可視化測試
使用八爪魚采集器獲取百度百科中相關(guān)課程信息進(jìn)行可視化測試, 對采集到的數(shù)據(jù)進(jìn)行處理, 將非結(jié)構(gòu)化文本數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù), 使用Cypher語言中Match子句進(jìn)行查詢。
Cypher是Neo4j官網(wǎng)提供的聲明式查詢語言, 使用它可以完成任意的知識圖譜查詢過濾操作。從Neo4j數(shù)據(jù)庫查詢數(shù)據(jù)的方法有多種, 最常用的是使用Match子句指定搜索模式進(jìn)行操作。
在可視化測試中主要通過紅色粗線條的數(shù)量來進(jìn)行警示, 紅色粗線條指向未通過的課程, 紅色越多代表掛科數(shù)目越多, 則畢業(yè)越可能受到影響。
在知識圖譜中查詢學(xué)生“張三”的課程通過情況, 如圖3 所示。其中已通過課程用綠色細(xì)線條呈現(xiàn), 關(guān)系為“ispass”, 未通過課程用紅色粗線條呈現(xiàn), 關(guān)系為“nopass”, 可以直觀地看出張三同學(xué)未通過“隨機(jī)過程”科目。
圖3 “張三”課程通過情況知識圖譜
再對學(xué)生“王五”課程通過的情況進(jìn)行查詢, 如圖4 所示, 由圖可知, 王五同學(xué)課程通過情況圖譜大面積標(biāo)紅, 有8門未通過的科目, 已經(jīng)達(dá)到總科目數(shù)量的一半, 會影響到正常畢業(yè)。
圖4 “王五”課程通過情況知識圖譜
在知識圖譜中, 對科目“隨機(jī)過程”中“隨機(jī)過程的基本概念”知識點(diǎn)的掌握情況進(jìn)行查詢, 如圖5 所示。圖5 中, 已掌握的知識點(diǎn)用綠色細(xì)線條呈現(xiàn), 關(guān)系為“isget”, 未掌握的知識點(diǎn)用紅色粗線條呈現(xiàn), 關(guān)系為“noget”, 可以直觀地看出圖中未掌握的知識點(diǎn)有平穩(wěn)隨機(jī)過程的概念與定義、平穩(wěn)隨機(jī)過程相關(guān)函數(shù)的性質(zhì)、平穩(wěn)隨機(jī)過程的相關(guān)系數(shù)和相關(guān)時間。
圖5 知識點(diǎn)掌握情況知識圖譜
在知識圖譜中查詢各類知識點(diǎn)之間的關(guān)系情況, 如圖6 所示。其中的知識點(diǎn)關(guān)系主要有“include”和“parallel”。可由知識點(diǎn)之間的包含關(guān)系、并列關(guān)系確定知識學(xué)習(xí)順序, 由簡到難。
圖6 知識點(diǎn)關(guān)系知識圖譜
對系統(tǒng)的時效性進(jìn)行測試, 以查詢知識圖譜中所有實(shí)體與關(guān)系的響應(yīng)時間作為評估指標(biāo)。使用“MATCH(n)RETURN n”進(jìn)行多次查詢測試, 系統(tǒng)平均在9 ms后開始傳輸, 并在25 ms后完成。
3.2.2 有效性測試
為驗(yàn)證本文知識圖譜構(gòu)建的有效性, 進(jìn)行實(shí)驗(yàn)測試。由于作者所在學(xué)院在讀研究生總數(shù)僅為160人, 數(shù)據(jù)量較少, 實(shí)驗(yàn)結(jié)果說服力較弱, 且本模塊的目的為驗(yàn)證所構(gòu)建的知識圖譜中每門課程的通過節(jié)點(diǎn)數(shù)與未通過節(jié)點(diǎn)數(shù)是否與數(shù)據(jù)集中一致, 是否出現(xiàn)了較大錯誤, 因此, 使用Kaggle公開數(shù)據(jù)集1(https://www.kaggle.com/datasets/spscientist/students-performance-in-exams)和公開數(shù)據(jù)集2(https://www.kaggle.com/datasets/aljarah/xAPI-Edu-Data[17-18])進(jìn)行模擬驗(yàn)證, 本文所構(gòu)建的知識圖譜是基于學(xué)生課程成績的, 此數(shù)據(jù)集中包含大量學(xué)生課程成績, 可替代性較強(qiáng)。
數(shù)據(jù)集1包含8個屬性, 對數(shù)據(jù)集進(jìn)行處理并融合模擬數(shù)據(jù)得到7 817條學(xué)生數(shù)據(jù), 選取關(guān)鍵屬性math score, reading score, writing score, 增加name屬性。name表示姓名, 為保護(hù)隱私用字母代替, math score, reading score, writing score分別為數(shù)學(xué)成績、閱讀成績、寫作成績。其中, 通過數(shù)學(xué)課程的有4 539人, 通過閱讀課程的有4 712人, 通過寫作課程的有4 734人, 數(shù)據(jù)集1中部分信息如表4 所示。
表4 數(shù)據(jù)集1部分信息
使用“MATCH p=()-[r:’ispass’]->()RETURN p”對三門課程的通過節(jié)點(diǎn)數(shù)進(jìn)行查詢, 查詢結(jié)果如表5 所示, 查詢結(jié)果與表4 中的信息一致。
表5 數(shù)據(jù)集1的通過節(jié)點(diǎn)數(shù)
數(shù)據(jù)集2包含17個屬性, 對數(shù)據(jù)集進(jìn)行處理, 選取關(guān)鍵屬性question, resource, announcement, discussion, 增加name屬性。name表示姓名, 為保護(hù)隱私用字母代替, question, resource, announcement, discussion分別為學(xué)生在課堂上舉手的成績、學(xué)生訪問課程內(nèi)容的成績、學(xué)生查看新公告的成績、學(xué)生參加討論組的成績。其中, 通過question, resource, announcement, discussion每個項(xiàng)目的分別有210, 265, 112, 152人, 數(shù)據(jù)集2中部分信息如表6 所示。
表6 數(shù)據(jù)集2部分信息
使用“MATCH p=()-[r:’ispass’]->()RETURN p”對四項(xiàng)成績的通過節(jié)點(diǎn)數(shù)進(jìn)行查詢, 查詢結(jié)果如表7 所示, 查詢結(jié)果與表6 中信息一致。
表7 數(shù)據(jù)集2通過節(jié)點(diǎn)數(shù)
為了保證學(xué)業(yè)預(yù)警知識圖譜的質(zhì)量, 通過隨機(jī)抽樣的方法進(jìn)行知識圖譜三元組質(zhì)量的校驗(yàn), 本文數(shù)據(jù)取自Kaggle公開數(shù)據(jù)集中的結(jié)構(gòu)化數(shù)據(jù), 并對數(shù)據(jù)進(jìn)行了處理, 數(shù)據(jù)源質(zhì)量可靠, 因此隨機(jī)選取1/10進(jìn)行校驗(yàn), 采樣得到782條三元組。將數(shù)據(jù)分發(fā)給5位具備專業(yè)背景的人員, 對實(shí)體及屬性有無錯誤進(jìn)行校驗(yàn)標(biāo)注, 采樣標(biāo)注后得到的準(zhǔn)確率為94.23%。
由實(shí)驗(yàn)結(jié)果可知, 本文提出的知識圖譜構(gòu)建方法有效, 采樣標(biāo)注后得到的準(zhǔn)確率為94.23%, 能夠呈現(xiàn)學(xué)習(xí)程度; 同時, 時效性良好, 在查詢知識圖譜中實(shí)體與關(guān)系的過程中, 平均響應(yīng)時間為9 ms, 并在25 ms內(nèi)完成知識圖譜的加載, 未出現(xiàn)響應(yīng)時間過長的問題, 可以正常使用; 另外, 在過程性與可視性方面的表現(xiàn)良好, 可以起到學(xué)業(yè)預(yù)警作用。
本文介紹了目前學(xué)業(yè)預(yù)警機(jī)制的常用方法和基本情況, 基于相關(guān)研究進(jìn)行了學(xué)業(yè)預(yù)警知識圖譜的構(gòu)建與應(yīng)用。主要對模式層與數(shù)據(jù)層進(jìn)行了設(shè)計(jì)與構(gòu)建, 并對二者進(jìn)行映射, 并使用Neo4j圖數(shù)據(jù)庫進(jìn)行可視化顯示, 完成了學(xué)業(yè)預(yù)警知識圖譜的構(gòu)建。為了驗(yàn)證所構(gòu)建知識圖譜的可行性, 對公開數(shù)據(jù)集進(jìn)行數(shù)據(jù)處理, 完成有效性和可視化測試, 實(shí)驗(yàn)結(jié)果表明, 所構(gòu)建的知識圖譜可以達(dá)到現(xiàn)有學(xué)業(yè)預(yù)警方法的效果, 經(jīng)采樣標(biāo)注后得到的準(zhǔn)確率為94.23%, 且時效性良好, 平均在9 ms內(nèi)完成傳輸, 同時在過程化與可視化方面有較大提升, 能夠?qū)崿F(xiàn)“事前事中預(yù)防”的目標(biāo), 具有實(shí)際應(yīng)用價值。在未來的工作中, 將進(jìn)一步研究知識圖譜中的知識融合技術(shù), 通過融合同一領(lǐng)域中不同的知識圖譜來擴(kuò)充知識范圍、細(xì)化知識點(diǎn), 以達(dá)到學(xué)業(yè)預(yù)警個性化的目標(biāo)。