王文豪 彭倩 陳力凱 石開洪 吳云
摘要:針對目前大多數(shù)的高校學(xué)習(xí)系統(tǒng)不能滿足不同師生群體的在線學(xué)習(xí)需求,該文運用了Python語言、Flask框架、SQLAlchemy、協(xié)同過濾算法等相關(guān)技術(shù)對系統(tǒng)的總體架構(gòu)、功能模塊、數(shù)據(jù)庫以及API進(jìn)行設(shè)計,實現(xiàn)了班級管理、作業(yè)管理、資料搜索、在線考試、學(xué)習(xí)資源推薦等主要功能。系統(tǒng)經(jīng)過實際測試后,系統(tǒng)運行穩(wěn)定,能夠較好地滿足不同師生群體的個性化需求。
關(guān)鍵詞:高校學(xué)習(xí)系統(tǒng);個性化推薦;Python;協(xié)同過濾
中圖分類號:TP311.5
文獻(xiàn)標(biāo)識媽:A
1 概述
目前許多高校已經(jīng)研發(fā)岀了本學(xué)校的“高校學(xué)習(xí)系統(tǒng)”,由,于高校學(xué)習(xí)系統(tǒng)的出現(xiàn),讓學(xué)生更容易獲取自己感興趣的專業(yè),知識以及在線完成老師分配的教學(xué)作業(yè)。然而當(dāng)前大部分地,區(qū)的高校學(xué)習(xí)系統(tǒng)并不能滿足不同高校師生的教學(xué)需求,各類,學(xué)習(xí)系統(tǒng)為學(xué)生提供的學(xué)習(xí)資源和反饋信息基本上都是千篇,一律,然而不同用戶群體對不同學(xué)習(xí)資源的需求是存在差異,的。本文基于以上需求,擬開發(fā)一款針對不同師生群體的個性,化推薦的“高校學(xué)習(xí)系統(tǒng)”,通過數(shù)據(jù)挖掘、日志分析等技術(shù),釆,集學(xué)生用戶的學(xué)習(xí)需求、學(xué)習(xí)習(xí)慣、學(xué)習(xí)成績等個性化的數(shù)據(jù),通過基于物品的協(xié)同過濾算法為不同學(xué)生的學(xué)習(xí)需求進(jìn)行個,性化、有針對地推薦相關(guān)學(xué)習(xí)資料和課程。
2 系統(tǒng)設(shè)計
本系統(tǒng)運用RESTful,API設(shè)計理念進(jìn)行API設(shè)計,同時使用了SQLAlchemy、Flask,框架[1]、Pandas、Xpath、Bootstrap、Vue等技術(shù),實現(xiàn)了系統(tǒng)功能。
2.1 功能模塊設(shè)計
根據(jù)系統(tǒng)需求,系統(tǒng)分為教師端和學(xué)生端,教師端的功能,模塊主要有創(chuàng)建班級、管理班級、發(fā)布作業(yè)、批改作業(yè)、發(fā)布資,料等;學(xué)生端的主要功能模塊有加入班級、查看作業(yè)及狀態(tài)、在,線考試、個性化課程推薦等功能詳細(xì)功能如圖1所示。
2.2 數(shù)據(jù)庫設(shè)計
本文根據(jù)系統(tǒng)需求共設(shè)計了,20個數(shù)據(jù)庫表分別為用戶表,(user)教師表(teacher)學(xué)生表(student)用戶認(rèn)證表(usertoken),作業(yè)表(work),資料表(data),搜索資料表(search),題目表(peoblem),帖子表(post)班級表(class)等。在這里選取用戶表、作業(yè),表講述其中的邏輯結(jié)構(gòu)設(shè)計。
1)用戶表(用戶編號用戶名,用戶學(xué)號/工號,用戶密碼,用,戶手機(jī)號碼用戶權(quán)限編號,用戶出生年月,手機(jī)驗證碼id)其,中用戶編號為主鍵,用戶學(xué)號/工號具有唯一性用戶密碼和用,戶手機(jī)號碼不為空,手機(jī)驗證碼id為外鍵。
2)作業(yè)表(作業(yè)編號,班級編號,作業(yè)名稱,作業(yè)發(fā)布人,作,業(yè)發(fā)布人編號,作業(yè)發(fā)布時間作業(yè)截止時間作業(yè)狀態(tài)),其中,作業(yè)編號為主鍵班級編號、作業(yè)發(fā)布人編號和作業(yè)發(fā)布人為,外鍵。
3 技術(shù)實現(xiàn)
3.1 ORM技術(shù)的實現(xiàn)
系統(tǒng)后端在數(shù)據(jù)訪問層與數(shù)據(jù)庫交互時,使用session,=Session()創(chuàng)建會話類通過會話類的實例對象session調(diào)用方法,add()、delete()、update()和query()實現(xiàn)對數(shù)據(jù)庫的增刪改查操,作。以“創(chuàng)建作業(yè)”功能為例系統(tǒng)后端運用session的add。方法,向作業(yè)表中添加數(shù)據(jù)。用戶在創(chuàng)建作業(yè)頁面輸入的,“work_classid”,為,“13”,;“work_name”,為“數(shù)學(xué)作業(yè),4”,;“work_deadtime”為截止時間;“work_statement”為作業(yè)狀態(tài),此,外“work_issueid”為當(dāng)前創(chuàng)建者用戶編號,“work_issuer”為,“test"。
3.2 RESTful?API的實現(xiàn)
本文以“創(chuàng)建作業(yè)”,API[2]為例當(dāng)用戶觸發(fā)“創(chuàng)建作業(yè)”功能,時,系統(tǒng)調(diào)用對應(yīng)的API前端從頁面獲取請求參數(shù)。在后端獲取到參數(shù)后,運用封裝好的。pen方法新建Http請求,并指定此,請求的方法、URL以及驗證信息,最后調(diào)用send方法將請求參,數(shù)發(fā)送到后端服務(wù)。此API的請求方式是POST路徑是“/sys-,tem/class/create/work/”狀態(tài)碼200表示前后端數(shù)據(jù)交互成功。
3.3 推薦算法的實現(xiàn)
基于物品的協(xié)同過濾算法⑶是當(dāng)前最主流、最基礎(chǔ)、應(yīng)用最,多的推薦算法,該算法主要是通過分析用戶的行為信息并計算,與該物品之間的相似度的物品最終推薦給用戶。例如用戶A,為一個數(shù)據(jù)結(jié)構(gòu)的視頻點過贊而用戶B對一個數(shù)據(jù)結(jié)構(gòu)的視,頻以及一個機(jī)器學(xué)習(xí)的視頻點了贊ItemCF算法則會將機(jī)器學(xué),習(xí)的學(xué)習(xí)資源推薦給用戶A?;谖锲返膮f(xié)同過濾算法在本,系統(tǒng)中的運用流程如下:
Stepl:系統(tǒng)后端服務(wù)器調(diào)用學(xué)習(xí)資料的API接口,并通過,AJAX接收前端的請求參數(shù);
Step2:通過前端傳回的usertoken獲取該用戶的user_id和,該用戶所在班級的所有同學(xué)的user_id并獲取該用戶已下載的,學(xué)習(xí)資源編號和該班級所有用戶下載的學(xué)習(xí)資源編號建立用,戶-學(xué)習(xí)資源的倒排表train;
Step3:根據(jù)用戶-學(xué)習(xí)資源倒排表train得到每個學(xué)習(xí)資源,集合將集合里的學(xué)習(xí)資源兩兩加一得到一個矩陣再將這些,矩陣相加得到矩陣C最后將矩陣C歸一化得到學(xué)習(xí)資源之間,的余弦相似度矩陣W;
Step4:得到相似度矩陣W之后通過ItemCF的計算公式計,算用戶A對學(xué)習(xí)資源的興趣字典rank,并根據(jù)用戶興趣度由高,向低排序取10個學(xué)習(xí)資料編號;
Step5:根據(jù)10個學(xué)習(xí)資料的編號獲取對應(yīng)學(xué)習(xí)資料的相,關(guān)信息封裝成推薦列表返回到前端。
4 系統(tǒng)實現(xiàn)
本文最終設(shè)計并實現(xiàn)了基于個性化推薦的高校學(xué)習(xí)系統(tǒng),系統(tǒng)功能界面如圖2所示。
本系統(tǒng)于2019年3月部署到貴州大學(xué)校園網(wǎng)上開始在貴,州大學(xué)東校區(qū)測試運行用戶總數(shù)量統(tǒng)計結(jié)果如圖3所示。從,圖中可以得出,由于2019年3月至4月系統(tǒng)還在調(diào)試和推廣,期,用戶數(shù)量相對較少。在2019年4月至6月,處于大學(xué)生剛,剛開學(xué)在校學(xué)習(xí)的時間在學(xué)院的大力推廣之下,教師和學(xué)生,通過該系統(tǒng)進(jìn)行線上學(xué)習(xí),使得用戶總數(shù)量急速上升;在2019,年7月至8月期間因暑假原因,用戶數(shù)增量不大,但在9月份,用戶數(shù)量得到提高已達(dá)450人次。
5 結(jié)束語
目前,該系統(tǒng)在貴州大學(xué)花溪東校區(qū)的運營情況良好學(xué),校師生使用該系統(tǒng)作為日常教學(xué)工具的頻率不斷增加,系統(tǒng)訪,問量日均達(dá)到100次左右,充分說明此系統(tǒng)能夠滿足不同師生,群體的需求對學(xué)生的個性化學(xué)習(xí)有著重要意義,體現(xiàn)了該系,統(tǒng)具有高實用和推廣的價值。
參考文獻(xiàn):
[1]李超,徐云龍華中偉,等.一種基于Python,F(xiàn)lask的Web服務(wù)器端設(shè)計[J].信息與電腦:理論版2019(8):87-88.
[2]張前進(jìn).基于REST的泛在網(wǎng)絡(luò)資源服務(wù)架構(gòu)設(shè)計[J].陜西理工學(xué)院學(xué)報:自然科學(xué)版201733⑵:60-6368.
[3]林麗金,李文翔楊俊賢,等.基于協(xié)同過濾在高校學(xué)習(xí)資源個性化推薦系統(tǒng)中應(yīng)用研究[J].價值工程201635(4):191-193.
[4]李曉瑜.協(xié)同過濾推薦算法研究[J].計算機(jī)與數(shù)字工程2019,47(9):2118-21222136.
[通聯(lián)編輯:代影]