駱偉 殷宏濤 陶琛
文章編號(hào):2096-1472(2022)-02-42-03
DOI:10.19644/j.cnki.issn2096-1472.2022.002.010
摘? 要:高校中的社團(tuán)較多,如何能讓大學(xué)生快速地找到感興趣的社團(tuán),成為社團(tuán)管理者面臨的主要問(wèn)題。為了向大學(xué)生推薦可能喜歡的社團(tuán),本項(xiàng)目通過(guò)基于協(xié)同過(guò)濾的推薦算法,找到共同出現(xiàn)的頻率來(lái)計(jì)算語(yǔ)義的相似度,并通過(guò)計(jì)算空間向量的夾角余弦值進(jìn)而計(jì)算文本之間的相似度,能夠在提高社團(tuán)管理者工作效率的同時(shí),為需要加入社團(tuán)的學(xué)生和對(duì)社團(tuán)文化有濃厚興趣的學(xué)生提供更加全面的信息。實(shí)驗(yàn)結(jié)果表明,當(dāng)推薦項(xiàng)目數(shù)量為10時(shí),該方法的召回率、準(zhǔn)確率和Fl值分別提高了12.81%、7.65%和14.51%,表明基于協(xié)同過(guò)濾的推薦算法可有效提高推薦結(jié)果。
關(guān)鍵詞:社團(tuán)管理;推薦算法;語(yǔ)義相似度;余弦相似度
中圖分類(lèi)號(hào):TP311.5? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
Design and Implementation of College Clubs Recommendation?System based on Collaborative Filtering Algorithm
LUO Wei, YIN Hongtao, TAO Chen
(Department of Software Engineering, Dalian Neusoft University of Information, Dalian 116023, China)
luowei@neusoft.edu.cn; 208105166@qq.com; 709510257@qq.com
Abstract: There are many clubs in colleges and universities. How to make college students quickly find clubs of their interests has become the main problem faced by club managers. In order to recommend clubs that college students might like, this paper proposes to use a collaborative filtering recommendation algorithm to find the frequency of common occurrences for calculating semantic similarity. The similarity between texts is calculated by calculating the cosine of the space vector angle. It can not only improve the work efficiency of club managers, but also provide more comprehensive information for students who need to join the club and students who are very interested in club culture. Experimental results show that when the number of recommended items is 10, the recall rate, the accuracy rate and Fl value of this method are increased by 12.81%, 7.65% and 14.51% respectively, indicating that the recommendation algorithm based on collaborative filtering effectively improves recommendation results.
Keywords: club management; recommendation algorithm; semantic similarity; cosine similarity
1? ?引言(Introduction)
高校社團(tuán)管理系統(tǒng)的開(kāi)發(fā)目標(biāo)是為大學(xué)生、社團(tuán)管理層、社團(tuán)負(fù)責(zé)教師提供一個(gè)社團(tuán)管理的平臺(tái)。本系統(tǒng)通過(guò)對(duì)語(yǔ)義相似度和余弦相似度的計(jì)算,基于物品的協(xié)同過(guò)濾算法,完成對(duì)用戶(hù)的個(gè)性化推薦。本系統(tǒng)能夠?yàn)閺V大師生用戶(hù)群提供一個(gè)學(xué)校社團(tuán)信息分享的途徑和一種新的社團(tuán)管理模式,讓社團(tuán)信息更加集中化,為想要加入社團(tuán)的學(xué)生提供更加全面準(zhǔn)確的社團(tuán)信息以及便捷的社團(tuán)信息申請(qǐng)方式;為社團(tuán)管理者提供一個(gè)統(tǒng)一、全面、便捷的社團(tuán)管理途徑,讓社團(tuán)招新、社團(tuán)活動(dòng)申請(qǐng)等從紙質(zhì)化辦公環(huán)境和繁雜的數(shù)據(jù)統(tǒng)計(jì)中擺脫出來(lái)。本系統(tǒng)根據(jù)社團(tuán)需求進(jìn)行系統(tǒng)性的分析,使社團(tuán)信息更加全面化,讓社團(tuán)事務(wù)的管理更加便捷。
2? ?系統(tǒng)架構(gòu)及技術(shù)(System architecture)
高校社團(tuán)管理系統(tǒng)采用B/S網(wǎng)絡(luò)結(jié)構(gòu)模式,以及前后端分離的開(kāi)發(fā)形式。前端采用當(dāng)下流行的Vue框架。Vue是一種前端漸進(jìn)式的輕量級(jí)框架,采用MVVM(Model-View-ViewModel)軟件架構(gòu)的設(shè)計(jì)模式,實(shí)現(xiàn)DOM監(jiān)聽(tīng)和數(shù)據(jù)的雙向綁定,真正實(shí)現(xiàn)了事件驅(qū)動(dòng)編程。后端使用的是Spring Boot框架。Spring Boot采用面向切面編程和聲明式的編程模式,集成優(yōu)化了Spring框架,只需要添加配置文件,就能把相應(yīng)的組件加載進(jìn)來(lái)。它以注解的形式完成了配置文件的添加,實(shí)現(xiàn)了自動(dòng)化配置,提高了開(kāi)發(fā)的效率。系統(tǒng)架構(gòu)圖如圖1所示。
3? ?系統(tǒng)需求設(shè)計(jì)(System requirement design)
3.1? ?系統(tǒng)功能結(jié)構(gòu)圖
根據(jù)需求調(diào)研結(jié)果確定本系統(tǒng)主要包括三個(gè)功能模塊,分別為超級(jí)管理員、普通管理員和普通用戶(hù)。系統(tǒng)功能結(jié)構(gòu)圖如圖2所示。
3.2? ?數(shù)據(jù)庫(kù)設(shè)計(jì)
概念模型(E-R圖)如圖3所示,共包括六個(gè)實(shí)體,分別是用戶(hù)、活動(dòng)與經(jīng)費(fèi)、社團(tuán)、新聞、用戶(hù)社團(tuán)申請(qǐng)、用戶(hù)活動(dòng)申請(qǐng)。E-R圖表示實(shí)體之間的類(lèi)型、屬性和聯(lián)系方式。
通過(guò)對(duì)領(lǐng)域?qū)ο?、業(yè)務(wù)對(duì)象及對(duì)象間的關(guān)聯(lián)進(jìn)行分析,設(shè)計(jì)了本系統(tǒng)的數(shù)據(jù)庫(kù)用戶(hù)信息表、新聞信息表、社團(tuán)信息表、活動(dòng)與經(jīng)費(fèi)信息表、用戶(hù)與社團(tuán)關(guān)系信息表、用戶(hù)與活動(dòng)關(guān)系信息表。
3.3? ?系統(tǒng)用例概述
高層用例應(yīng)滿(mǎn)足用戶(hù)基本業(yè)務(wù)需求的用例概述。這些用例從教師(超級(jí)管理員)操作、社長(zhǎng)(管理員)操作、普通用戶(hù)操作三個(gè)方面完成。高層用例圖如圖4所示。
4? ?設(shè)計(jì)與實(shí)現(xiàn)(Design and implementation)
因本文的篇幅限制,不能一一介紹本系統(tǒng)各個(gè)功能代碼和運(yùn)行情況截圖,且一些功能的大體執(zhí)行思路相似或相對(duì)常見(jiàn),所以只對(duì)系統(tǒng)的核心功能進(jìn)行介紹和展示。
4.1? ?創(chuàng)建社團(tuán)
用戶(hù)可以點(diǎn)擊創(chuàng)建社團(tuán),進(jìn)入創(chuàng)建社團(tuán)頁(yè)面,填寫(xiě)社團(tuán)信息創(chuàng)建社團(tuán)。在創(chuàng)建社團(tuán)過(guò)程中,添加一條社團(tuán)信息的同時(shí),需要向用戶(hù)社團(tuán)關(guān)系表中添加當(dāng)前用戶(hù)的用戶(hù)社團(tuán)關(guān)系信息。調(diào)用Axios封裝的addGroup接口,請(qǐng)求參數(shù)為param,向后臺(tái)提交請(qǐng)求后接收返回?cái)?shù)據(jù)。創(chuàng)建社團(tuán)如圖5所示。
4.2? ?社團(tuán)管理
社團(tuán)管理如圖6所示。用戶(hù)可以點(diǎn)擊社團(tuán)管理,進(jìn)入社團(tuán)管理頁(yè)面,審批創(chuàng)建社團(tuán)的申請(qǐng)。
4.3? ?關(guān)鍵技術(shù)難點(diǎn)和解決方案
(1)JavaScript關(guān)鍵字Let的使用問(wèn)題
在使用Let聲明變量時(shí)發(fā)現(xiàn)聲明的變量無(wú)效,導(dǎo)致后臺(tái)無(wú)法接收到數(shù)據(jù)。出現(xiàn)的問(wèn)題如圖7所示。
主要問(wèn)題為ES6可以使用Let關(guān)鍵字來(lái)實(shí)現(xiàn)塊級(jí)作用域。因?yàn)長(zhǎng)et聲明變量后變量只在Let所在的代碼塊內(nèi)有效,所以If語(yǔ)句中Let聲明的param變量只在當(dāng)前If語(yǔ)句中生效,后臺(tái)無(wú)法接收到請(qǐng)求參數(shù)。
(2)Vue組件中Style的Scoped屬性
Scoped屬性的作用是使得當(dāng)前Vue組件中的樣式不會(huì)影響其他Vue組件的樣式。在使用Scoped屬性時(shí),部分Element-UI樣式會(huì)無(wú)效,但是為了不“污染”其他頁(yè)面,不得不使用Scoped屬性,這時(shí)需要自己去手動(dòng)重寫(xiě)組件的樣式。但是我們會(huì)發(fā)現(xiàn)重寫(xiě)樣式時(shí)CSS代碼無(wú)效,這時(shí)可以使用Vue深度選擇器、/deep/深度選擇器。若不寫(xiě)/deep/,設(shè)置的寬高是不會(huì)生效的。出現(xiàn)的問(wèn)題如圖8所示。
(3)Axios的跨域請(qǐng)求問(wèn)題
瀏覽器的安全限制限制了當(dāng)前地址向非同源地址發(fā)送AJAX請(qǐng)求,即限制了跨域訪問(wèn)。本項(xiàng)目瀏覽器端的地址為http://localhost:8080,服務(wù)器端的地址為http://127.0.0.1:8888,因?yàn)闉g覽器同源策略的限制,即協(xié)議、域名、端口全部相同,所以瀏覽器端請(qǐng)求服務(wù)器端屬于跨域訪問(wèn)。為解決跨域訪問(wèn)問(wèn)題,我們?cè)诤蠖颂砑恿薈orsConfig過(guò)濾器配置類(lèi),進(jìn)而允許跨域請(qǐng)求。
(4)推薦算法
基于統(tǒng)計(jì)經(jīng)驗(yàn)的分布,假設(shè)認(rèn)為具有相似詞匯的句子應(yīng)該擁有相似的語(yǔ)義。通過(guò)統(tǒng)計(jì)詞匯在文本中共同出現(xiàn)的頻率來(lái)計(jì)算語(yǔ)義的相似度,以計(jì)算機(jī)可讀取的向量形式來(lái)表達(dá)文本是該假設(shè)的主要思路。
在本系統(tǒng)中主要采用的是余弦相似度算法,采用構(gòu)建空間向量模型的方式,通過(guò)計(jì)算空間向量的夾角余弦值進(jìn)而計(jì)算文本之間的相似度。在系統(tǒng)中將兩條新聞的標(biāo)題進(jìn)行分詞,將兩個(gè)句子的分詞結(jié)果進(jìn)行去重合并,將去重合并結(jié)果(T,T,…,T)看作n 維坐標(biāo)系中的坐標(biāo)軸,分別統(tǒng)計(jì)兩個(gè)句子對(duì)應(yīng)去重合并結(jié)果的詞頻(W,W,…,W)作為坐標(biāo)值,列出兩個(gè)句子的詞頻向量,利用兩個(gè)句子的向量夾角余弦值來(lái)確定兩個(gè)句子的相似度,從而進(jìn)行推薦。向量夾角余弦值越接近1,說(shuō)明向量夾角越接近0,兩個(gè)句子的語(yǔ)義就越相似。計(jì)算方法如下:
用戶(hù)登錄后,高校社團(tuán)管理系統(tǒng)首先收集用戶(hù)的注冊(cè)信息、瀏覽記錄信息等數(shù)據(jù),運(yùn)用基于物品的過(guò)濾協(xié)同算法,使用余弦相似度算法計(jì)算出用戶(hù)可能感興趣的社團(tuán),最后響應(yīng)到前端個(gè)性化推薦模塊。推薦流程如圖9所示。
5? ?結(jié)論(Conclusion)
社團(tuán)生活是校園生活中不可或缺的一部分,本系統(tǒng)將線下的部分社團(tuán)事務(wù)轉(zhuǎn)移到了線上,在豐富社團(tuán)生活的同時(shí)為社團(tuán)相關(guān)事務(wù)的申請(qǐng)和管理提供便捷。在未來(lái)的開(kāi)發(fā)中我們將繼續(xù)完善和改進(jìn)推薦算法,引入基于情感的相似度計(jì)算和基于信任的推薦算法,從而提高推薦的準(zhǔn)確度。
參考文獻(xiàn)(References)
[1] PARK D H, KIM H K, CHOI I Y, et al. A literature review and classification of recommender systems research[J]. Expert Systems with Applications, 2012, 39(11):10059-10072.
[2] 馮傳波,彭章友,張鐘浩.基于Vue.js的移動(dòng)應(yīng)用可視化平臺(tái)的研究[J].工業(yè)控制計(jì)算機(jī),2019,32(05):106-107.
[3] 劉敏.基于SpringBoot框架社交網(wǎng)絡(luò)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)沙:湖南大學(xué),2018.
[4] 劉建國(guó),周濤,汪秉宏.個(gè)性化推薦系統(tǒng)的研究進(jìn)展[J].自然科學(xué)進(jìn)展,2009,019(001):1-15.
[5]李連,朱愛(ài)紅,蘇濤.一種改進(jìn)的基于向量空間文本相似度算法的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2012(02):282-284.
[6] 張根宇.基于TF-IDF和余弦相似度的文本相似度算法研究和優(yōu)化策略[J].中國(guó)科技成果,2019(16):25-26.
[7] 余燕萍.基于相似用戶(hù)情感分析的推薦算法研究[J].科技廣場(chǎng),2016(8):13-16.
[8] 陳婷,朱青,周夢(mèng)溪,等.社交網(wǎng)絡(luò)環(huán)境下基于信任的推薦算法[J].軟件學(xué)報(bào),2017,028(003):721-731.
作者簡(jiǎn)介:
駱? 偉(1980-),男,碩士,副教授.研究領(lǐng)域:人工智能.
殷宏濤(2000-),男,本科生.研究領(lǐng)域:軟件工程.
陶? ? ?。?999-),男,本科生.研究領(lǐng)域:軟件工程.
2193500520397