王 兢
(鄭州大學 河南 鄭州 450001)
本系統(tǒng)采用B/S架構(gòu),使用Struts2+Spring+Hibernate技術(shù)框架開發(fā),利用MySQL數(shù)據(jù)庫進行數(shù)據(jù)存儲,從菜品的進貨入手,通過評論收集用戶的喜好,在此基礎(chǔ)上創(chuàng)新地引入基于物品的協(xié)同過濾推薦算法,結(jié)合家長和學校兩方面的特點,為學校的訂購進行推薦,為學校的餐飲服務(wù)提供便利。
(一)數(shù)據(jù)庫設(shè)計
經(jīng)需求分析,本系統(tǒng)一共設(shè)計了十一張表,分別為:學校信息表(school),供貨商信息表(producer),學校餐廳表(hall),餐廳進貨表(stock),供餐信息表(serve),用戶信息表(User),回復表(Reply),評論贊踩表(DLove),供餐贊踩表(SLove),敏感詞(Word)
,評論表(Discuss)。不同表之間通過主外鍵相互關(guān)聯(lián),為系統(tǒng)功能的實現(xiàn)奠定了基礎(chǔ),下面是對著十一張表中重點表的介紹。
1.學校信息表(school),它是以sid(學校編號)為自增主鍵,同時包含了sname(學校名稱)、spassword(學校密碼)、slogo(學校圖片)、saddress(學校地址)、sinfo(學校簡介)、
stel(學校聯(lián)系電話)、identify(身份)這些屬性列。
2.供貨商信息表(producer)它是以供貨商編號sid為主鍵,包含了pname(供貨商名稱)、
、ppassword(供貨商密碼)、plogo(供貨商圖片)、paddress(供貨商地址)、ptel(供貨商聯(lián)系電話)、pinfo(供貨商簡介/經(jīng)營范圍)屬性列。
3.供餐信息表(serve),它是以供餐編號eid為主鍵,sid(學校編號)為外鍵,包含了
etime(供餐時間)、variety(菜品種類)、elogo(供餐圖片)、edate(供餐日期)、ELove(贊)、
Edislike(踩)、Etitle(題目)屬性列。
4.用戶信息表(User)它是以Uphone(用戶手機號)為主鍵,包含了Uphone(手機號)、Uname(昵稱)、Upassword(密碼)、Ulevel(活躍等級)、Uemail(郵箱)、Ugroup(用戶組)、identify(用戶身份)屬性列。
(二)功能設(shè)計
基于前期的需求分析,本系統(tǒng)的功能主要分為兩大模塊學校模塊和家長模塊,其中學校模塊分為信息的注冊登錄功能,信息發(fā)布功能、評論回復功能以及菜品推薦功能,家長模塊分為注冊登錄功能、信息瀏覽功能和評論回復功能,這些模塊間的功能相輔相成共同組成了一個完整的系統(tǒng)。
1.登錄注冊功能是使用整個系統(tǒng)的前提,每個用戶憑借注冊的手機號或者郵箱來進行登錄并進行信息的發(fā)布或者評論回復。
2.信息發(fā)布功能是本系統(tǒng)的基礎(chǔ)功能和核心功能,本功能只有學校用戶才能使用,通過本功能進行菜品信息的公布,為菜品推薦奠定基礎(chǔ)。
3.評論回復功能是每個用戶學校發(fā)表的菜品進行自己的評價,除了有贊和踩兩種不同的選項外還可以發(fā)表自己的看法,這個功能是后期進行菜品推薦的基礎(chǔ)之一。
4.菜品推薦功能是本系統(tǒng)的一個特色功能,可以針對不同的學校,結(jié)合他們發(fā)布的信息和受歡迎程度為不同學校針對性的推薦特色菜品。
(三)算法設(shè)計
本系統(tǒng)采用基于物品的協(xié)同過濾算法(Item-based collaborative filtering,簡稱ItemCF),該算法由著名電子商務(wù)公司亞馬遜提出[1],并在業(yè)內(nèi)獲得了廣泛的應(yīng)用。該算法的基本思想是:通過分析用戶對物品的行為,計算物品之間的相似度,從而找出和目標物品具有一定相似度的物品集合,然后通過目標用戶的歷史行為數(shù)據(jù)預測其對相似物品的評分,并將預測評分高的一個或多個物品推薦給目標用戶[2],即向用戶推薦和他們之前喜歡的物品相似的物品。在本系統(tǒng)使用該算法可以一定程度上避免長尾分布和冷啟動問題。
1、在本系統(tǒng)中,通過查詢各個學校發(fā)布的菜品信息,通過三餐進行分類,同時收集評論用戶的個人喜好,從而建立學校-菜品評分矩陣R,R是一個m×n的矩陣,其中m學校的數(shù)量,n表示菜品的種類,Rmn的值始終在一定的取值范圍內(nèi),表示不同學校不同菜品的受歡迎程度,其中贊代表1,踩代表-1,該值越大代表受歡迎程度越高,通過計算菜品在m維學??臻g上的向量夾角的余弦值來表示商品間的相似度,夾角余弦值越大則相似度就越高。
2、Deshpande和Karypis的研究[3]指出,將相似度矩陣按最大值歸一化之后可以獲得更高的推薦準確率,同時對于目標商品的K個最近鄰商品,K取值應(yīng)在10到30之間。我們利用電商平臺的銷售交易數(shù)據(jù)集進行測試表明,K=10時可以獲得較高的準確率和召回率。最后,從不同學校的菜品中計算他們的相似程度從中剔除已經(jīng)有的菜品,根據(jù)相似程度的高低選出k個新的菜品,從中選出Top-N推薦學校,完成推薦過程[4]。
本文研究了基于JavaEE和協(xié)同過濾算法的中小學供餐平臺系統(tǒng)的設(shè)計。在依托網(wǎng)絡(luò)進行信息公開的同時,結(jié)合可靠準確的推薦算法,提高了學校食堂的受歡迎程度,有助于提高學校的形象,一定程度上解決家長的擔心。本系統(tǒng)基于B/S架構(gòu),考慮到更多的使用場景,后續(xù)可進一步研究設(shè)計開發(fā)移動端產(chǎn)品。隨著人民生活水平的提高,針對中小學供餐監(jiān)管平臺系統(tǒng)必將發(fā)揮更大的作用,而結(jié)合推薦算法提高系統(tǒng)智能化水平的方案也將對其發(fā)展起到積極作用。