国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

協(xié)同過濾推薦的高校社團(tuán)系統(tǒng)*

2022-12-16 09:23:18李柯諭何明昌高利新王陳培
計算機(jī)時代 2022年12期
關(guān)鍵詞:社團(tuán)協(xié)同算法

李柯諭,何明昌,吳 丹,高利新,王陳培

(溫州大學(xué)數(shù)理學(xué)院,浙江 溫州 325035)

0 引言

目前大學(xué)生社團(tuán)規(guī)模激增,加大了社團(tuán)管理的難度,為此,有部分高校開發(fā)了高校社團(tuán)系統(tǒng)。高校社團(tuán)系統(tǒng)的開發(fā)并不簡單,設(shè)計語義分析、算法[1]以及系統(tǒng)軟硬件環(huán)境的搭建。目前許多已有系統(tǒng)基本上是網(wǎng)頁版,在移動設(shè)備上使用往往十分不便。

本文基于協(xié)同過濾算法,開發(fā)了移動版高校社團(tuán)系統(tǒng),來提升社團(tuán)工作效率。

1 技術(shù)實(shí)現(xiàn)

1.1 開發(fā)語言

PHP 語言是目前最流行的編程語言,并且具有開源性、數(shù)據(jù)庫連接的廣泛性等優(yōu)點(diǎn),上手容易,在補(bǔ)丁漏洞升級過程中,核心部分植入簡單易行,且速度快[2],與Java、Python 等語言進(jìn)行對比之后,我們選擇采用PHP進(jìn)行后臺開發(fā)。

1.2 技術(shù)結(jié)構(gòu)

為實(shí)現(xiàn)高校社團(tuán)組織工作交流、文件上傳下載等功能,系統(tǒng)采用Okhttp 框架,同時為增加功能多樣化,系統(tǒng)預(yù)留了功能擴(kuò)增接口;考慮到安全性和便捷性,APP 采用Ubuntu GNU/Linux 操作系統(tǒng),在登錄時采用JWT Token 進(jìn)行身份驗(yàn)證,并對重要的數(shù)據(jù)進(jìn)行MD5 加密存儲;考慮到高校社團(tuán)數(shù)量及使用人員較多,采用CDN,以保障服務(wù)器流暢。

1.3 Android前端

Android 系統(tǒng)基于Linux 系統(tǒng),其具有代碼開源的特點(diǎn),兼容性也比較好,是目前在移動應(yīng)用使用最多的系統(tǒng)。通過Android系統(tǒng),前端采用MVP三層架構(gòu)體系,使Controller 和View 做到完全解耦,避免View具有過于復(fù)雜的業(yè)務(wù)邏輯,減少Activity或Fragment的代碼數(shù)量,這樣做可以通過創(chuàng)建接口的方式增加系統(tǒng)靈活性,降低開發(fā)和維護(hù)的成本[3]。

1.4 后臺架構(gòu)

LAMP 架構(gòu)有著開源、大量的額外組件和擴(kuò)展功能模塊、代碼簡潔易于開發(fā)、方便易用和安全穩(wěn)定等優(yōu)點(diǎn),LAMP框架的后端采用MySQL數(shù)據(jù)庫服務(wù),可以存儲各種賬號信息、產(chǎn)品信息、客戶資料、業(yè)務(wù)數(shù)據(jù)等,其他程序可以通過SQL 語句進(jìn)行查詢、更改,同時還采用PHP 語言解釋動態(tài)網(wǎng)頁文件,提供Web 應(yīng)用程序開發(fā)和運(yùn)行環(huán)境[4],所以我們后臺采用LAMP 架構(gòu),考慮到讀寫效率和線程安全,數(shù)據(jù)存儲方面采用Redis非關(guān)系型數(shù)據(jù)庫,這樣就可以很好彌補(bǔ)存儲數(shù)據(jù)讀取數(shù)據(jù)慢的不足,另外我們系統(tǒng)還引入華為云開放云存儲服務(wù),以保證大量的上傳和下載視頻等文件。

1.5 數(shù)據(jù)庫

在系統(tǒng)后臺數(shù)據(jù)處理方面,主要涉及的數(shù)據(jù)表有用戶個人信息表、社團(tuán)信息表、用戶與社團(tuán)關(guān)系表。

⑴用戶個人信息表主要記錄用戶姓名、ID、賬號密碼等字段,如表1所示。

表1 用戶個人信息表(organization_user)

⑵ 社團(tuán)信息表主要記錄社團(tuán)名稱,類型等,如表2所示。

表2 社團(tuán)信息表(organization_organization)

⑶用戶與社團(tuán)關(guān)系表主要記錄用戶是否加入社團(tuán)、加入的社團(tuán)id等,如表3所示。

在除上述的三個主要的數(shù)據(jù)表之外,系統(tǒng)還設(shè)計了用戶好友表、社團(tuán)聯(lián)結(jié)表等相關(guān)表格。

2 系統(tǒng)功能設(shè)計

2.1 需求分析

從使用者角度考慮,系統(tǒng)將用戶群體分為四類,普通用戶,注冊用戶,社團(tuán)管理員,系統(tǒng)管理員。普通用戶可以注冊,瀏覽公眾信息,可以注冊成為注冊用戶;注冊用戶可以登錄,參加、瀏覽相關(guān)社團(tuán)活動,加入、創(chuàng)建社團(tuán),與其他用戶進(jìn)行社交行為等;社團(tuán)管理員可以發(fā)布、管理社團(tuán)活動,審批和管理管理社員;系統(tǒng)管理員可以對申請的社團(tuán)進(jìn)行政治、法律審查,對所有注冊的用戶、社團(tuán)進(jìn)行管理與維護(hù)。

2.2 主要功能分析

系統(tǒng)平臺主要分為社團(tuán)、首頁、個人(我的)三個模塊。

⑴社團(tuán)

主要這社團(tuán)的一些信息。普通用戶可以瀏覽相關(guān)信息,系統(tǒng)會根據(jù)用戶的瀏覽記錄,通過協(xié)同過濾算法推薦相關(guān)的社團(tuán),并指導(dǎo)其注冊加入相關(guān)社團(tuán);

⑵首頁

有加入社團(tuán)的活動推薦、搜索框,搜索社團(tuán)、活動及聯(lián)系人等功能。用戶找到自己心儀的社團(tuán)的時候,可以點(diǎn)進(jìn)該社團(tuán)界面進(jìn)行申請加入社團(tuán)。加入社團(tuán)后:會顯示社團(tuán)內(nèi)的活動,有社團(tuán)歷史活動,正在進(jìn)行的社團(tuán)活動,以及未進(jìn)行的社團(tuán)活動,同時顯示社團(tuán)內(nèi)成員及成員狀態(tài)。用戶加入某個社團(tuán)后,可與參與該社團(tuán)的相關(guān)活動、打卡、發(fā)表與社團(tuán)相關(guān)的消息等。

⑶我的

主要是個人信息??梢圆榭磦€人及修改信息、社交列表、查看好友聯(lián)系人基礎(chǔ)信息及狀態(tài);加入社團(tuán)的活動推薦,同時有搜索框,點(diǎn)進(jìn)搜索框搜索相關(guān)社團(tuán)、活動及聯(lián)系人。另外有便捷系統(tǒng)設(shè)置及退出賬號,具體展示如圖1所示。

圖1 APP界面功能

2.3 功能實(shí)現(xiàn)

⑴JSON數(shù)據(jù)交換格式

目前流行的數(shù)據(jù)交換格式有XML,JSON,YAML等格式,JSON 格式易于閱讀和編寫,同時也易于機(jī)器解析和生成,是一種輕量級的數(shù)據(jù)交換格式,與XML 或HTML 片段相比,JSON 提供了更好的簡單性和靈活性,因此本系統(tǒng)采用JSON 格式進(jìn)行前臺與后臺數(shù)據(jù)交換。

⑵注冊及實(shí)名認(rèn)證

在注冊填寫信息時,姓名、性別、學(xué)校學(xué)院、學(xué)號、班級、電話號碼等是必填字段,郵箱、住址等是選填信息;在核對用戶注冊信息格式無誤后,通過與已經(jīng)注冊的用戶數(shù)據(jù)進(jìn)行對比,若關(guān)鍵字無重復(fù)則可進(jìn)行下一步驗(yàn)證,否則顯示相關(guān)信息重復(fù),注冊失敗。

token 認(rèn)證是在請求中發(fā)送token 而不是發(fā)送cookie,這樣能夠防止CSRF(跨站請求偽造),就算是在APP 客戶端使用cookie 存儲token,cookie 也僅僅是一個存儲機(jī)制而不是用于認(rèn)證,這樣就不會將信息存儲在Session 中,減少了對session 的操作,token 是有時效的,一段時間之后用戶需要重新驗(yàn)證[5]。基于token 這樣的特點(diǎn),系統(tǒng)在實(shí)名認(rèn)證方面,采取基于token 的認(rèn)證方式,即用戶不小心退出時,短時間內(nèi)再次登錄不需要再次輸入賬號密碼,這樣保障了用戶的便利性和體驗(yàn)感,同時提高了安全性和擴(kuò)展性。

⑶基于協(xié)同過濾的用戶推薦

用戶注冊時,可以綁定QQ 號或者微信號來進(jìn)行獲取數(shù)據(jù),這樣就可以減少一些信息錄入,減輕用戶的工作量,同時通過用戶在QQ 號或微信號的一些標(biāo)簽推測出用戶的喜好,利用用戶選擇的標(biāo)簽來推薦其喜歡的社團(tuán)。

為了提高推薦的準(zhǔn)確性,采取基于用戶的協(xié)同過濾算法(User-CF)和基于物品的協(xié)同過濾算法(Item-CF)。User-CF 算法是基于假設(shè)“用戶會喜歡與他興趣相投的其他用戶喜歡的項(xiàng)目”,從與用戶(U)有較高相似度的用戶集合(C)喜歡的社團(tuán)與活動中,選取用戶(U)未采取任何行動的社團(tuán)與活動,推薦給用戶(U)。

而Item-CF 算法基于假設(shè)“用戶會喜歡與他過往喜歡的項(xiàng)目相似的項(xiàng)目”,從與用戶(U)過往喜歡的社團(tuán)與活動有較高相似度的社團(tuán)與活動集合(W)中,選取用戶(U)未采取任何行動的社團(tuán)與活動,推薦給用戶(U);兩者的基礎(chǔ)思想是相似的,這里只對如何實(shí)現(xiàn)基于物品的協(xié)同過濾算法(Item-CF)進(jìn)行較為詳細(xì)的解釋。

創(chuàng)建社團(tuán)與活動時采取的是標(biāo)簽,借用共同標(biāo)簽占總體標(biāo)簽的比例來計算相似度,這里采取Jaccard公式,公式為:

主要思想是去重的jaccard系數(shù),算法如下。

①先定義A∩B函數(shù):

② 對兩組數(shù)據(jù)進(jìn)行逐一比較,在相同時進(jìn)行數(shù)量增加:

③返回相同的個數(shù):

④再定義A∪B函數(shù):

⑤對兩組數(shù)據(jù)進(jìn)行逐一比較,在取得不重復(fù)的時候進(jìn)行數(shù)量增加:

⑥返回不重復(fù)的個數(shù):

⑦計算|A∩B|/|A∪B|函數(shù):

⑧判斷數(shù)組是否為0,輸入數(shù)組的值:

⑨最后返回值:

為降低熱門活動和熱門社團(tuán)對于推薦的準(zhǔn)確率的影響,在計算用戶相似度時,系統(tǒng)采取加入懲罰因子的解決方案,將項(xiàng)目出現(xiàn)次數(shù)的對數(shù)取倒數(shù)作為懲罰因子,其中,N(i)表示項(xiàng)目i 出現(xiàn)的次數(shù);i 表示用戶u 和v 共同感興趣的活動;分母則表示用戶u 和用戶v有所行動的社團(tuán)和活動的集合長度,公式如下:

3 結(jié)束語

本文基于協(xié)同過濾算法開發(fā)了移動版高校社團(tuán)系統(tǒng)。師生通過手機(jī)登錄該系統(tǒng)進(jìn)行各種日常、學(xué)習(xí)活動??梢噪S時隨地辦公,發(fā)布及參加相關(guān)活動,進(jìn)行社團(tuán)規(guī)劃和活動策劃。系統(tǒng)還為大學(xué)生參加各類社團(tuán)提供了學(xué)習(xí)、交流、鍛煉的機(jī)會,以滿足學(xué)生個性化發(fā)展的需要。

猜你喜歡
社團(tuán)協(xié)同算法
繽紛社團(tuán)
蜀道難:車與路的協(xié)同進(jìn)化
基于MapReduce的改進(jìn)Eclat算法
Travellng thg World Full—time for Rree
“四化”協(xié)同才有出路
汽車觀察(2019年2期)2019-03-15 06:00:50
進(jìn)位加法的兩種算法
最棒的健美操社團(tuán)
軍事文摘(2017年16期)2018-01-19 05:10:15
K-BOT拼插社團(tuán)
三醫(yī)聯(lián)動 協(xié)同創(chuàng)新
一種改進(jìn)的整周模糊度去相關(guān)算法
邹平县| 泰安市| 清原| 绥中县| 德安县| 大丰市| 朝阳市| 简阳市| 凤阳县| 台北市| 周宁县| 承德县| 东阿县| 拉萨市| 原平市| 神农架林区| 金门县| 疏附县| 常州市| 海盐县| 镇原县| 白玉县| 福泉市| 山丹县| 成都市| 墨脱县| 安仁县| 浙江省| 柏乡县| 德江县| 巨野县| 略阳县| 当涂县| 奉节县| 长海县| 宁蒗| 宁波市| 中山市| 东方市| 南雄市| 贵阳市|