駱偉 殷宏濤 陶琛










文章編號:2096-1472(2022)-02-42-03
DOI:10.19644/j.cnki.issn2096-1472.2022.002.010
摘? 要:高校中的社團較多,如何能讓大學生快速地找到感興趣的社團,成為社團管理者面臨的主要問題。為了向大學生推薦可能喜歡的社團,本項目通過基于協同過濾的推薦算法,找到共同出現的頻率來計算語義的相似度,并通過計算空間向量的夾角余弦值進而計算文本之間的相似度,能夠在提高社團管理者工作效率的同時,為需要加入社團的學生和對社團文化有濃厚興趣的學生提供更加全面的信息。實驗結果表明,當推薦項目數量為10時,該方法的召回率、準確率和Fl值分別提高了12.81%、7.65%和14.51%,表明基于協同過濾的推薦算法可有效提高推薦結果。
關鍵詞:社團管理;推薦算法;語義相似度;余弦相似度
中圖分類號:TP311.5? ? ?文獻標識碼: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)
高校社團管理系統的開發目標是為大學生、社團管理層、社團負責教師提供一個社團管理的平臺。本系統通過對語義相似度和余弦相似度的計算,基于物品的協同過濾算法,完成對用戶的個性化推薦。本系統能夠為廣大師生用戶群提供一個學校社團信息分享的途徑和一種新的社團管理模式,讓社團信息更加集中化,為想要加入社團的學生提供更加全面準確的社團信息以及便捷的社團信息申請方式;為社團管理者提供一個統一、全面、便捷的社團管理途徑,讓社團招新、社團活動申請等從紙質化辦公環境和繁雜的數據統計中擺脫出來。本系統根據社團需求進行系統性的分析,使社團信息更加全面化,讓社團事務的管理更加便捷。
2? ?系統架構及技術(System architecture)
高校社團管理系統采用B/S網絡結構模式,以及前后端分離的開發形式。前端采用當下流行的Vue框架。Vue是一種前端漸進式的輕量級框架,采用MVVM(Model-View-ViewModel)軟件架構的設計模式,實現DOM監聽和數據的雙向綁定,真正實現了事件驅動編程。后端使用的是Spring Boot框架。Spring Boot采用面向切面編程和聲明式的編程模式,集成優化了Spring框架,只需要添加配置文件,就能把相應的組件加載進來。它以注解的形式完成了配置文件的添加,實現了自動化配置,提高了開發的效率。系統架構圖如圖1所示。
3? ?系統需求設計(System requirement design)
3.1? ?系統功能結構圖
根據需求調研結果確定本系統主要包括三個功能模塊,分別為超級管理員、普通管理員和普通用戶。系統功能結構圖如圖2所示。
3.2? ?數據庫設計
概念模型(E-R圖)如圖3所示,共包括六個實體,分別是用戶、活動與經費、社團、新聞、用戶社團申請、用戶活動申請。E-R圖表示實體之間的類型、屬性和聯系方式。
通過對領域對象、業務對象及對象間的關聯進行分析,設計了本系統的數據庫用戶信息表、新聞信息表、社團信息表、活動與經費信息表、用戶與社團關系信息表、用戶與活動關系信息表。
3.3? ?系統用例概述
高層用例應滿足用戶基本業務需求的用例概述。這些用例從教師(超級管理員)操作、社長(管理員)操作、普通用戶操作三個方面完成。高層用例圖如圖4所示。
4? ?設計與實現(Design and implementation)
因本文的篇幅限制,不能一一介紹本系統各個功能代碼和運行情況截圖,且一些功能的大體執行思路相似或相對常見,所以只對系統的核心功能進行介紹和展示。
4.1? ?創建社團
用戶可以點擊創建社團,進入創建社團頁面,填寫社團信息創建社團。在創建社團過程中,添加一條社團信息的同時,需要向用戶社團關系表中添加當前用戶的用戶社團關系信息。調用Axios封裝的addGroup接口,請求參數為param,向后臺提交請求后接收返回數據。創建社團如圖5所示。
4.2? ?社團管理
社團管理如圖6所示。用戶可以點擊社團管理,進入社團管理頁面,審批創建社團的申請。
4.3? ?關鍵技術難點和解決方案
(1)JavaScript關鍵字Let的使用問題
在使用Let聲明變量時發現聲明的變量無效,導致后臺無法接收到數據。出現的問題如圖7所示。
主要問題為ES6可以使用Let關鍵字來實現塊級作用域。因為Let聲明變量后變量只在Let所在的代碼塊內有效,所以If語句中Let聲明的param變量只在當前If語句中生效,后臺無法接收到請求參數。
(2)Vue組件中Style的Scoped屬性
Scoped屬性的作用是使得當前Vue組件中的樣式不會影響其他Vue組件的樣式。在使用Scoped屬性時,部分Element-UI樣式會無效,但是為了不“污染”其他頁面,不得不使用Scoped屬性,這時需要自己去手動重寫組件的樣式。但是我們會發現重寫樣式時CSS代碼無效,這時可以使用Vue深度選擇器、/deep/深度選擇器。若不寫/deep/,設置的寬高是不會生效的。出現的問題如圖8所示。
(3)Axios的跨域請求問題
瀏覽器的安全限制限制了當前地址向非同源地址發送AJAX請求,即限制了跨域訪問。本項目瀏覽器端的地址為http://localhost:8080,服務器端的地址為http://127.0.0.1:8888,因為瀏覽器同源策略的限制,即協議、域名、端口全部相同,所以瀏覽器端請求服務器端屬于跨域訪問。為解決跨域訪問問題,我們在后端添加了CorsConfig過濾器配置類,進而允許跨域請求。
(4)推薦算法
基于統計經驗的分布,假設認為具有相似詞匯的句子應該擁有相似的語義。通過統計詞匯在文本中共同出現的頻率來計算語義的相似度,以計算機可讀取的向量形式來表達文本是該假設的主要思路。
在本系統中主要采用的是余弦相似度算法,采用構建空間向量模型的方式,通過計算空間向量的夾角余弦值進而計算文本之間的相似度。在系統中將兩條新聞的標題進行分詞,將兩個句子的分詞結果進行去重合并,將去重合并結果(T,T,…,T)看作n 維坐標系中的坐標軸,分別統計兩個句子對應去重合并結果的詞頻(W,W,…,W)作為坐標值,列出兩個句子的詞頻向量,利用兩個句子的向量夾角余弦值來確定兩個句子的相似度,從而進行推薦。向量夾角余弦值越接近1,說明向量夾角越接近0,兩個句子的語義就越相似。計算方法如下:
用戶登錄后,高校社團管理系統首先收集用戶的注冊信息、瀏覽記錄信息等數據,運用基于物品的過濾協同算法,使用余弦相似度算法計算出用戶可能感興趣的社團,最后響應到前端個性化推薦模塊。推薦流程如圖9所示。
5? ?結論(Conclusion)
社團生活是校園生活中不可或缺的一部分,本系統將線下的部分社團事務轉移到了線上,在豐富社團生活的同時為社團相關事務的申請和管理提供便捷。在未來的開發中我們將繼續完善和改進推薦算法,引入基于情感的相似度計算和基于信任的推薦算法,從而提高推薦的準確度。
參考文獻(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的移動應用可視化平臺的研究[J].工業控制計算機,2019,32(05):106-107.
[3] 劉敏.基于SpringBoot框架社交網絡平臺的設計與實現[D].長沙:湖南大學,2018.
[4] 劉建國,周濤,汪秉宏.個性化推薦系統的研究進展[J].自然科學進展,2009,019(001):1-15.
[5]李連,朱愛紅,蘇濤.一種改進的基于向量空間文本相似度算法的研究與實現[J].計算機應用與軟件,2012(02):282-284.
[6] 張根宇.基于TF-IDF和余弦相似度的文本相似度算法研究和優化策略[J].中國科技成果,2019(16):25-26.
[7] 余燕萍.基于相似用戶情感分析的推薦算法研究[J].科技廣場,2016(8):13-16.
[8] 陳婷,朱青,周夢溪,等.社交網絡環境下基于信任的推薦算法[J].軟件學報,2017,028(003):721-731.
作者簡介:
駱? 偉(1980-),男,碩士,副教授.研究領域:人工智能.
殷宏濤(2000-),男,本科生.研究領域:軟件工程.
陶? ? 琛(1999-),男,本科生.研究領域:軟件工程.
2193500520397