彭琰 孔令圓 鄭汀華 馬華
摘? 要: 近年來基于MOOC的在線學(xué)習(xí)方式開始大規(guī)模普及,但是,海量的MOOC資源紛繁復(fù)雜,各大MOOC學(xué)習(xí)平臺(tái)之間的課程數(shù)據(jù)也并未實(shí)現(xiàn)整合共享,從而使學(xué)習(xí)者在挑選合適的學(xué)習(xí)資源時(shí)面臨極大困難。因此,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)面向個(gè)性化學(xué)習(xí)的MOOC資源庫系統(tǒng)。文章介紹了該系統(tǒng)的整體結(jié)構(gòu)、課程數(shù)據(jù)分類與建模方法、課程資源與知識(shí)點(diǎn)的映射方法、資源爬蟲的設(shè)計(jì)和系統(tǒng)集成情況。該系統(tǒng)具有良好的實(shí)用性和可擴(kuò)展性,可為個(gè)性化學(xué)習(xí)的MOOC推薦平臺(tái)提供關(guān)鍵的基礎(chǔ)數(shù)據(jù)及相關(guān)資源。
關(guān)鍵詞: 個(gè)性化學(xué)習(xí); 數(shù)據(jù)爬取; MOOC; 資源庫; 系統(tǒng)開發(fā)
中圖分類號(hào):G642? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? 文章編號(hào):1006-8228(2022)03-73-04
Abstract: In recent years, MOOC online learning has been popularized on a large scale. However, the online MOOC resources are numerous and complicated, and the course data among the major online MOOC learning platforms has not been integrated and shared, so that the learners face great difficulties in selecting suitable learning resources. Aiming at this issue, a MOOC resource library system for personalized learning was designed and implemented. The overall structure of the system, curriculum data classification and modeling methods, curriculum resources and knowledge points mapping methods, resource crawler design and system integration effects are introduced in this paper. The system has good practicability and scalability, and can provide key basic data and related resources for the MOOC personalized learning recommendation platform.
Key words: personalized learning; data crawling; MOOC; resource library; system development
0 引言
近年來,在新冠肺炎疫情背景下,在線教育教學(xué)[1]得到快速發(fā)展。iMedia Research(艾媒咨詢)研究顯示,未來在線教育市場規(guī)模將保持逐年增長態(tài)勢,2019年市場規(guī)模已突破4000億元,受疫情影響,預(yù)計(jì)2025年中國在線教育市場規(guī)模將達(dá)到8000億元,2020到2025年的復(fù)合增長率將達(dá)11.4%。同時(shí)在線教育也為學(xué)習(xí)者提供了一種多元化的學(xué)習(xí)模式,它具有時(shí)間和地點(diǎn)靈活、可重復(fù)學(xué)習(xí)等優(yōu)點(diǎn),然而各大在線MOOC學(xué)習(xí)平臺(tái)課程數(shù)據(jù)紛繁復(fù)雜,網(wǎng)站之間的課程數(shù)據(jù)也未實(shí)現(xiàn)整合共享,課程知識(shí)點(diǎn)關(guān)聯(lián)性不強(qiáng)。
針對(duì)此現(xiàn)狀,我們爬取各大在線學(xué)習(xí)平臺(tái)中的海量課程數(shù)據(jù),在建立課程資源與知識(shí)點(diǎn)的映射關(guān)系的基礎(chǔ)上,開發(fā)了一個(gè)擁有豐富知識(shí)元結(jié)構(gòu)[2]的MOOC共享資源庫,以為個(gè)性化學(xué)習(xí)平臺(tái)[3]提供關(guān)鍵的基礎(chǔ)數(shù)據(jù)和相關(guān)資源。
1 MOOC資源庫建設(shè)思路
現(xiàn)今,國內(nèi)外已有大量在線教育平臺(tái),例如,學(xué)堂在線、中國大學(xué)MOOC、Educoder、Coursera、EDX、Udemy等。非專業(yè)教育學(xué)習(xí)平臺(tái)上也有許多高效的學(xué)習(xí)資源,例如,bilibili、貼吧。面對(duì)互聯(lián)網(wǎng)上紛繁復(fù)雜的課程信息、視頻信息、實(shí)訓(xùn)內(nèi)容等海量開放資源,我們采用自行設(shè)計(jì)的爬蟲進(jìn)行數(shù)據(jù)爬取并運(yùn)用SQL語句對(duì)爬取得到的數(shù)據(jù)進(jìn)行處理加工,通過去重以減少數(shù)據(jù)冗余,將處理過后的數(shù)據(jù)集存入本地?cái)?shù)據(jù)庫,再經(jīng)過知識(shí)點(diǎn)關(guān)聯(lián)和課程建模之后上傳至云端服務(wù)器,以提供給學(xué)習(xí)推薦系統(tǒng)使用。
MOOC在線教育平臺(tái)經(jīng)過近些年來的快速發(fā)展,在課程種類、課程數(shù)量和質(zhì)量等方面都有了顯著提升。國內(nèi)的中國大學(xué)MOOC、學(xué)堂在線等已成為了在線課堂學(xué)習(xí)的主流網(wǎng)站,它們可供學(xué)習(xí)的課程較為全面,課程視頻受到廣大學(xué)習(xí)者的喜愛。這些網(wǎng)站提供了豐富的MOOC數(shù)據(jù)來源,基于它們進(jìn)行課程知識(shí)點(diǎn)的掛接已具備可行性,通過掛接知識(shí)點(diǎn),可極大地減少后續(xù)課程建模以及MOOC資源的知識(shí)點(diǎn)關(guān)聯(lián)工作量,從而為面向個(gè)性化學(xué)習(xí)的MOOC推薦系統(tǒng)提供可擴(kuò)展、易維護(hù)的基礎(chǔ)資源庫支持。
本系統(tǒng)擬使用Python開發(fā)數(shù)據(jù)爬蟲??紤]到MOOC資源庫所需的課程數(shù)據(jù)種類繁多,所需爬取的網(wǎng)站各有不同,無法直接采用Scrapy框架[4],因此自行設(shè)計(jì)爬蟲結(jié)構(gòu),采用Python HTTP+request對(duì)不同網(wǎng)站的課程數(shù)據(jù)進(jìn)行爬取,使用標(biāo)簽數(shù)據(jù)分析庫XML以及Beautifulsoup作用域分析爬取下來的標(biāo)簽類型數(shù)據(jù),提取所需數(shù)據(jù)并對(duì)獲得的數(shù)據(jù)經(jīng)SQL語句處理后存入本地MySQL數(shù)據(jù)庫中。
2 MOOC資源庫系統(tǒng)設(shè)計(jì)
2.1 整體架結(jié)構(gòu)
程序分成三個(gè)部分,第一部分為數(shù)據(jù)的爬取;第二部分包括課程數(shù)據(jù)的分類處理、課程建模和知識(shí)點(diǎn)關(guān)聯(lián);第三部分為提供相應(yīng)數(shù)據(jù)接口,為個(gè)性化學(xué)習(xí)平臺(tái)提供數(shù)據(jù)支持。爬取到的數(shù)據(jù)經(jīng)過初步的去重處理后使用SQL存入數(shù)據(jù)庫,在第二階段應(yīng)用相應(yīng)的pymysql庫從數(shù)據(jù)庫提取數(shù)據(jù)進(jìn)行分析處理。
爬蟲程序的主體使用了Python HTTP+request庫。爬取的數(shù)據(jù)均由BeautifulSoup庫對(duì)標(biāo)簽類型的數(shù)據(jù)進(jìn)行分析,采用自行設(shè)定的標(biāo)簽庫進(jìn)行分類及查找。得到標(biāo)簽庫返回?cái)?shù)據(jù)之后,使用Python正則表達(dá)re模塊以及Word2vec語義切詞技術(shù)[5],對(duì)所需的課程信息進(jìn)行處理,最后使用相應(yīng)的SQL語句對(duì)得到的課程數(shù)據(jù)進(jìn)行去重后存入本地?cái)?shù)據(jù)庫。程序爬蟲大致流程如圖1所示。
2.2 課程數(shù)據(jù)分類與建模
建立了12個(gè)Word2vec詞向量模型,分別對(duì)應(yīng)12個(gè)課程大類,同時(shí)為12個(gè)課程大類分別劃分其中的具體標(biāo)簽。每個(gè)課程大類中的標(biāo)題和課程簡介部分,被單獨(dú)提取為一個(gè)文本文件作為初始語料,對(duì)爬取的課程簡介使用jieba庫進(jìn)行切詞,使用TF-IDF算法[6]計(jì)算得到計(jì)算機(jī)類語料的關(guān)鍵詞,然后對(duì)所得到的數(shù)據(jù)進(jìn)行訓(xùn)練,得到詞向量模型,此過程重復(fù)多次。然后針對(duì)課程詳細(xì)信息表中的每一門課程,根據(jù)其標(biāo)題與課程簡介中含有標(biāo)簽或其相似詞的情況,獲得課程與標(biāo)簽的相關(guān)度,進(jìn)而構(gòu)建課程標(biāo)簽表。課程數(shù)據(jù)標(biāo)簽、類別劃分及部分課程數(shù)據(jù)如圖2、圖3和圖4所示。
2.3 課程資源與知識(shí)點(diǎn)的映射關(guān)聯(lián)
本資源庫針對(duì)各類不同課程,如Java、Python等,構(gòu)建了全局知識(shí)點(diǎn)框架,對(duì)所爬取的各類學(xué)習(xí)資源進(jìn)行知識(shí)點(diǎn)關(guān)聯(lián)映射,進(jìn)而構(gòu)建了一個(gè)內(nèi)容豐富、邏輯清晰的學(xué)習(xí)資源庫。以Java課程為例,以思維導(dǎo)圖方式呈現(xiàn)的Java知識(shí)點(diǎn)框架部分內(nèi)容如圖5所示。
我們將其關(guān)聯(lián)的MOOC學(xué)習(xí)資源(例如,課件資源、教學(xué)視頻資源、試題資源)與上述劃分的一級(jí)知識(shí)點(diǎn)、二級(jí)知識(shí)點(diǎn)進(jìn)行關(guān)聯(lián),進(jìn)行隸屬M(fèi)OOC資源的匹配、難度級(jí)別的匹配,同時(shí)以合理的方式進(jìn)行編號(hào)與重命名,以為后續(xù)平臺(tái)后端接口的調(diào)用提供支持。最終完成的學(xué)習(xí)資源庫的數(shù)據(jù)庫存儲(chǔ)格式、文件編排樣式如圖6~圖8所示。
2.4 資源爬蟲的設(shè)計(jì)
針對(duì)課程資源的選取范圍應(yīng)廣泛但不重復(fù),多樣但不冗余,同時(shí)非專業(yè)教育學(xué)習(xí)網(wǎng)站上的優(yōu)秀課程資源也是我們數(shù)據(jù)選取的方向,并且,針對(duì)不同課程的要求,需要個(gè)性化定制爬取資源,對(duì)于需要視頻、課件以及章節(jié)試題的課程將提供相應(yīng)的數(shù)據(jù)資源。同時(shí)對(duì)于與課程類別相關(guān)的知識(shí)資源,進(jìn)行選擇性爬取,選取各大MOOC網(wǎng)站熱度高的相關(guān)知識(shí)資源。程序目前支持的MOOC網(wǎng)站信息如圖8所示。
程序部分實(shí)現(xiàn)代碼示例如下:
def main(url):
"""解析命令行參數(shù)并調(diào)用相關(guān)模塊進(jìn)行下載"""
if re.match(r'https?://www.icourse163.org/(spoc/)?
(course|learn)/', url):
from moocs import icourse163 as mooc
elif re.match(r'https?://www.xuetangx.com/courses/
.+/about', url):
from moocs import xuetangx as mooc
elif re.match(r'https?://mooc.study.163.com/
(course|learn)/', url):
from moocs import study_mooc as mooc
elif re.match(r'https?://www.icourses.cn/web/sword/portal/
videoDetail', url):
from moocs import icourses as mooc
elif re.match(r'https?://www.livedu.com.cn/ispace4.0/
moocxjkc/toKcView.do\?kcid=', url):
from moocs import livedu as mooc
else:
print('課程地址有誤!')
sys.exit(1)
3 MOOC資源庫系統(tǒng)實(shí)現(xiàn)
本系統(tǒng)現(xiàn)已被集成到真實(shí)的個(gè)性化MOOC推薦系統(tǒng)(115.159.54.233:8080/moocrec),并部署于騰訊云服務(wù)器。系統(tǒng)實(shí)現(xiàn)效果圖如圖9所示。集成后的推薦效果如圖10和圖11所示。
4 結(jié)束語
本文開發(fā)的面向個(gè)性化學(xué)習(xí)的MOOC資源庫系統(tǒng),是以自行設(shè)計(jì)的爬蟲結(jié)構(gòu)為基礎(chǔ),使用了Python HTTP+request和Word2vec語義切詞技術(shù),通過從各大MOOC網(wǎng)站上獲取課程數(shù)據(jù),進(jìn)行課程數(shù)據(jù)去重、分類及課程數(shù)據(jù)知識(shí)點(diǎn)的掛接,為面向個(gè)性化學(xué)習(xí)的MOOC推薦平臺(tái)提供關(guān)鍵的基礎(chǔ)數(shù)據(jù)和資源來源。該系統(tǒng)充分挖掘了課程數(shù)據(jù)間的相關(guān)性并進(jìn)行了標(biāo)簽化處理,使各課程的數(shù)據(jù)資源能更好更快捷的為個(gè)性化推薦平臺(tái)所使用,系統(tǒng)具有良好的實(shí)用性和可擴(kuò)展性。未來研究中,我們將逐步擴(kuò)展課程數(shù)據(jù)源的廣度及深度,為學(xué)習(xí)者精選更優(yōu)質(zhì)和多樣的學(xué)習(xí)資源。
參考文獻(xiàn)(References):
[1] 管佳,李奇濤.中國在線教育發(fā)展現(xiàn)狀、趨勢及經(jīng)驗(yàn)借鑒[J].中國電化教育,2014(8):62-66
[2] 武建光,蘇云梅,于琦,等.基于知識(shí)元的學(xué)術(shù)文獻(xiàn)分類研究[J].情報(bào)理論與實(shí)踐,2019,42(3):160-165
[3] 孔令圓,彭琰,鄭汀華,馬華.面向個(gè)性化學(xué)習(xí)的慕課資源推薦系統(tǒng)開發(fā)[J].計(jì)算機(jī)時(shí)代,2021(7):46-49
[4] 韓貝,馬明棟,王得玉.基于Scrapy框架的爬蟲和反爬蟲研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2019,29(2):139-142
[5] 李曉,解輝,李立杰.基于Word2vec的句子語義相似度計(jì)算研究[J].計(jì)算機(jī)科學(xué),2017,44(9):256-260
[6] 路健,范增民,劉彩娜.基于TF-IDF算法的供應(yīng)鏈信息定向挖掘模型[J].計(jì)算機(jī)仿真,2021,38(7):153-156,349
3125501908202