徐婭楠 連家豪 馮嘉楠 方美玉
摘 要: 目前眾多外賣軟件普及,改變了人們的日常飲食習(xí)慣。但是現(xiàn)有訂餐軟件多數(shù)是針對(duì)個(gè)人用戶開發(fā)的,企業(yè)或多人團(tuán)體訂餐極不方便。針對(duì)上述問題,使用開源SSM框架,基于協(xié)同過濾推薦的數(shù)據(jù)挖掘算法設(shè)計(jì)了團(tuán)隊(duì)訂餐系統(tǒng),專門針對(duì)多人用戶實(shí)現(xiàn)團(tuán)隊(duì)訂餐功能。
關(guān)鍵詞: 團(tuán)隊(duì)訂餐; 協(xié)同過濾; 數(shù)據(jù)挖掘; SSM
中圖分類號(hào):TP311.1 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2019)03-32-04
Design and realization of team's meal ordering system with
collaborative filtering algorithm
Xu Yanan, Lian Jiahao, Feng Jianan, Fang Meiyu
(School of Science and Technology, Zhejiang International Studies Uiversity, Hangzhou, Zhejiang 310012, China)
Abstract: At present, pervasive take-out APPs have changed people's daily eating ways. But most of them are developed for individual users and are extremely inconvenient for groups or business teams to order meal at the same time. Focusing on the problem, a team's meal ordering system is designed with the data mining algorithm of collaborative filtering recommendation and open source SSM framework. Its team's meal ordering function is specially realized for group users.
Key words: team's meal ordering; collaborative filtering; data mining; SSM
0 引言
在線外賣軟件如國內(nèi)的美團(tuán)、餓了嗎、百度外賣等和國外的Gesoo、RICEPO、GrubHub等極大改變了傳統(tǒng)電話訂餐的外賣餐飲方式。但是無論是國內(nèi)的還是國外的這些外賣軟件,他們大多數(shù)是針對(duì)個(gè)人用戶訂餐而設(shè)計(jì)的,目前尚未在各大應(yīng)用商店中發(fā)現(xiàn)有針對(duì)類似于團(tuán)隊(duì)這樣的多人訂餐功能的外賣app。與此同時(shí)在技術(shù)上,開源的SSM輕量級(jí)框架在Web開發(fā)上被廣泛應(yīng)用。在這樣的背景下,應(yīng)用SSM框架,我們結(jié)合協(xié)同過濾推薦算法開發(fā)了具有團(tuán)隊(duì)訂餐功能的訂餐網(wǎng)站。
1 團(tuán)隊(duì)訂餐系統(tǒng)的架構(gòu)與設(shè)計(jì)
1.1 開發(fā)技術(shù)概述
本網(wǎng)站數(shù)據(jù)庫采用Oracle公司的關(guān)系型數(shù)據(jù)庫MySql;Web服務(wù)器使用Apache Tomcat 8.0;網(wǎng)頁前端排版利用開源的bootstrap前端框架和layer web彈層組件,后端功能實(shí)現(xiàn)基于Spring+SpringMVC+Mybatis(SSM)框架。SSM是一個(gè)MVC模式的框架,對(duì)比傳統(tǒng)JavaEE的EJB(Enterprise Java Bean)更加輕量[1]。此外,網(wǎng)站采用協(xié)同過濾推薦算法,向用戶推薦符合口味喜好的商品。
1.2 總體功能
網(wǎng)站的功能模塊主要包括商家后臺(tái)模塊、用戶前臺(tái)模塊、協(xié)同過濾推薦工具和團(tuán)隊(duì)訂單打包工具等功能模塊,如圖1所示。商家后臺(tái)模塊包括分類管理、商品管理、個(gè)人訂單管理、團(tuán)隊(duì)訂單管理等功能;用戶前臺(tái)模塊包括用戶登錄注冊(cè)、商品瀏覽、在線購物等功能,其中,在線購物分為個(gè)人訂餐功能和團(tuán)隊(duì)訂餐功能。
1.3 數(shù)據(jù)庫設(shè)計(jì)
基于上述系統(tǒng)總體功能的設(shè)計(jì),考慮到協(xié)同過濾算法推薦工具和團(tuán)隊(duì)訂單打包工具的功能實(shí)現(xiàn),網(wǎng)站數(shù)據(jù)庫包括用戶表、訂單表、商品表、評(píng)分表等。具體字段設(shè)計(jì)見圖2。
2 典型算法設(shè)計(jì)與實(shí)現(xiàn)
2.1 協(xié)同過濾算法設(shè)計(jì)與實(shí)現(xiàn)
網(wǎng)站的用戶瀏覽模塊采用協(xié)同過濾推薦算法。協(xié)同過濾(Collaborative Filtering,CF)算法是最基本的推薦算法之一,其核心思想是:利用用戶已有的全部過去行為或者喜好,來預(yù)測(cè)當(dāng)前用戶最有可能感興趣的東西,并將其推薦給用戶[2]。
本網(wǎng)站的協(xié)同過濾推薦工具(Collaborative filtering recommendation tools,簡稱CFRtools)采用基于用戶的協(xié)同過濾算法,其基本原理是:過去喜好相似的用戶將來的喜好相似度高的可能性很大[3]。因此,先根據(jù)評(píng)分記錄,篩選其他用戶,再向用戶推薦。
CFRtools算法工具實(shí)現(xiàn)步驟如下:
⑴ 篩選用戶年齡信息和購買評(píng)分記錄(如圖3)
⑵ 計(jì)算用戶年齡相似度
不同年齡層的人,在喜好方面存在一定的差距。年齡差越小、年齡差占年齡的比例越小,相似度越高[4]。因此,CFRtools算法工具首先在所有用戶中根據(jù)年齡相似度計(jì)算公式,計(jì)算篩選出與用戶年齡相近的用戶。年齡相似度計(jì)算公式如下:
⑴
其中Uxa和Uya分別表示用戶x和用戶y的年齡。當(dāng)年齡相似度Sima(Ux,Uy)>3/4時(shí),表明用戶x和用戶y在年齡上相似。以圖3提供的數(shù)據(jù)為基礎(chǔ)篩選與用戶A年齡相似的其他用戶,根據(jù)公式⑴計(jì)算篩選,與用戶A年齡相似的用戶有用戶C、用戶E、用戶F、用戶H、用戶I。
⑶ 計(jì)算用戶口味喜好相似度
接著在第二步計(jì)算篩選出的用戶年齡相似度結(jié)果上,根據(jù)用戶的購買評(píng)分記錄,利用皮爾遜相關(guān)系數(shù)計(jì)算兩個(gè)用戶之間的相似度。皮爾遜相關(guān)系數(shù)(Pearson product-moment correlation coefficient,又稱PPMCC或PCCs)用于度量兩個(gè)變量之間的線性相關(guān)程度[5],其值介于-1到1之間。相關(guān)系數(shù)越大,說明兩個(gè)變量之間的相關(guān)度越高。皮爾遜相關(guān)系數(shù)計(jì)算公式如下:
⑵
公式⑵中,參與計(jì)算的數(shù)據(jù)為用戶x和用戶y都有購買評(píng)分記錄的商品。當(dāng)0.6 ⑷ 商品推薦 通過上述計(jì)算結(jié)果可知,用戶C購買過而用戶A沒有購買的食物并且評(píng)分高于3.0的酸湯肥牛撈飯推薦給用戶A。 2.2 團(tuán)隊(duì)訂餐關(guān)鍵算法設(shè)計(jì)與實(shí)現(xiàn) 項(xiàng)目的核心功能是團(tuán)隊(duì)訂餐功能。團(tuán)隊(duì)訂餐功能的實(shí)現(xiàn)見圖4。首先由團(tuán)隊(duì)leader創(chuàng)建團(tuán)隊(duì)訂單,團(tuán)隊(duì)訂單存在后,團(tuán)隊(duì)其他成員即可向團(tuán)隊(duì)訂單中添加自己的訂單信息。完成后,由leader統(tǒng)一支付打包完成的訂單。團(tuán)隊(duì)訂單形成過程的算法如下(涉及的類如圖5所示)。 4 結(jié)束語 基于協(xié)同過濾的團(tuán)隊(duì)訂餐系統(tǒng),采用SSM框架技術(shù)進(jìn)行開發(fā),提高系統(tǒng)的可維護(hù)性。通過團(tuán)隊(duì)訂餐算法實(shí)現(xiàn)多人訂餐功能,并且利用協(xié)同過濾算法,對(duì)用戶年齡和歷史購買評(píng)分記錄進(jìn)行數(shù)據(jù)挖掘,從而篩選出符合用戶口味喜好的食品。但是,由于協(xié)同過濾算法本身存在冷啟動(dòng)、矩陣稀疏等問題,還需要對(duì)其進(jìn)行更深度的優(yōu)化。 參考文獻(xiàn)(References): [1] 鄒紅霆.基于SSM框架的Web系統(tǒng)研究與應(yīng)用[J].湖南理工 學(xué)院學(xué)報(bào)(自科版),2017.30(1):39-43 [2] 楊安駒.協(xié)同過濾推薦算法的研究與應(yīng)用[D].揚(yáng)州大學(xué), 2015. [3] 周澤宇,王春玲.基于協(xié)同過濾的個(gè)性化選課推薦與評(píng)論系 統(tǒng)[J].信息記錄材料,2018.19(10):156-159 [4] 鄭志蘊(yùn),賈春園,王振飛等.基于微博的用戶相似度計(jì)算研究[J]. 計(jì)算機(jī)科學(xué),2017.44(2):262-266 [5] 申利民,楊益良,陳真.考慮相似比率的Web服務(wù)QoS協(xié)同預(yù) 測(cè)[J].計(jì)算機(jī)集成制造系統(tǒng),2016.22(1):144-154