張 敏,張臘梅,陳正玉
(常熟理工學(xué)院 江蘇 常熟 215500)
互聯(lián)網(wǎng)發(fā)展日新月異,大量的旅游信息依托旅游網(wǎng)站應(yīng)運而出,而這些網(wǎng)站不僅要整理繁多的景區(qū)信息還要管理用戶的海量數(shù)據(jù)。對于用戶而言,很難在海量的信息當(dāng)中高效地找到滿足個人需求的信息。傳統(tǒng)的旅游推薦信息大多是根據(jù)熱門推薦或者是將景點按照簡單的類型分類推薦,這種推薦的方式對用戶而言缺乏個性化。為了滿足用戶個性化的需求,目前比較合適的技術(shù)是將協(xié)同過濾算法與推薦系統(tǒng)相結(jié)合[1]。系統(tǒng)可以根據(jù)不同用戶的歷史行為來預(yù)測彼此的喜好,并有針對性的推薦偏好景區(qū)。目前,很多領(lǐng)域都有使用個性化推薦系統(tǒng),比如:音樂推薦、電影推薦、電子商務(wù)等。由于旅游信息紛繁復(fù)雜,所以將個性化推薦系統(tǒng)與旅游領(lǐng)域相結(jié)合的旅游推薦相對較少,因此本文是將協(xié)同過濾算法應(yīng)用在旅游景點的推薦上。綜上所述,經(jīng)濟飛速增長,智能時代的來臨,大量信息蜂擁而至,國內(nèi)旅游網(wǎng)站對于個性化推薦算法的應(yīng)用并不完善,也難以滿足用戶個性化的需求。通過協(xié)同過濾算法與旅游推薦的結(jié)合,將旅游信息的各個方面進行科學(xué)化的管理以及個性化的推薦,同時也可以豐富對旅游信息系統(tǒng)的研究。
國內(nèi)外對協(xié)同過濾算法的應(yīng)用已經(jīng)很廣泛,比較典型的是電子商務(wù)和多媒體領(lǐng)域。同時經(jīng)過多年的研究,協(xié)同算法也運用到很多推薦系統(tǒng)中,相對成熟的有用于電子郵件推薦的Tapestry、用于新聞推薦的GroupLens、用于音樂推薦的Ringo以及用于電影推薦的MovieLens等[2]。協(xié)同過濾算法主要分為基于用戶和基于物品兩種類型。比較典型的MovieLens采用的是基于用戶的協(xié)同過濾,觀影人在觀影后會對影片評分,通過評分的相似度來尋找相似愛好的觀影人,然后獲取相似用戶的愛好電影。比較知名的亞馬遜商城運用的是基于物品的協(xié)同過濾算法,通過對比物品的相似性來篩選出相似率高的物品進行推薦。就目前而言,所研究的協(xié)同過濾算法本身也存在著很多問題,比如初始用戶沒有歷史行為無法獲得協(xié)同推薦信息、推薦的準(zhǔn)確性不高、延展性較差等[3]。對此專業(yè)人士提出很多解決方案,比如在考慮協(xié)同因素時加入時間這一因素、采用云模型等[4]。雖然該算法目前仍存在不足,但卻是解決用戶個性化需求問題的好方法。將基于協(xié)同過濾的個性化推薦算法與旅游推薦相結(jié)合已經(jīng)成為滿足游客個性化需求的發(fā)展趨勢,而且該推薦系統(tǒng)可以提高用戶信息管理的效率。
基于web的旅游推薦系統(tǒng)開發(fā)設(shè)計的任務(wù):首先是對基于協(xié)同過濾算法的推薦系統(tǒng)的發(fā)展背景、研究意義以及研究現(xiàn)狀進行論述。然后根據(jù)相關(guān)用戶進行需求分析確定系統(tǒng)開發(fā)的設(shè)計方案,主要設(shè)計的用戶包括游客和管理員。游客使用的功能包括出行攻略推薦、用戶評論、個人中心,管理員使用的功能包括管理員賬號管理、添加新聞、添加景區(qū)等。通過用戶和管理員角色功能模塊的設(shè)計以及協(xié)同過濾算法的實現(xiàn),進行信息存儲和個性化推薦。最后實現(xiàn)上述模塊功能并在系統(tǒng)實現(xiàn)后對各個功能進行測試。
該系統(tǒng)是采用Java語言開發(fā)的,該語言具有跨平臺的無關(guān)性、面向?qū)ο?、安全性得以保障、支持多個任務(wù)、多種編寫方式,代碼編寫簡單的特征[5],與其他程序開發(fā)語言相比,Java語言具有明顯的優(yōu)勢和良好的發(fā)展趨勢,可以應(yīng)用于網(wǎng)站以及大型游戲等方面。數(shù)據(jù)庫使用的是 MySQL,該數(shù)據(jù)庫對數(shù)據(jù)的存儲結(jié)構(gòu)與其他存儲方式不同的是即使開發(fā)的系統(tǒng)數(shù)據(jù)庫不同,但是對數(shù)據(jù)的存儲和接口的使用方式可以是相同的,因此用MySQL數(shù)據(jù)庫存儲數(shù)據(jù)十分便捷。采用的是B/S結(jié)構(gòu),該結(jié)構(gòu)主要是通過瀏覽器進行網(wǎng)站訪問,可以在遠程服務(wù)器上進行安裝,然后通過連接網(wǎng)絡(luò)就可以訪問,系統(tǒng)使用B/S結(jié)構(gòu)進行開發(fā)具有極大的便利性,用戶使用起來就會不受時間、地點的限制[6]。
協(xié)同過濾推薦算法分為基于用戶的推薦算法和基于物品的推薦算法[7]。本文主要使用的是基于用戶的協(xié)同過濾算法。通過計算用戶對景點評論作為相似度權(quán)重,首先通過余弦相似度計算用戶歷史行為的相似性,然后將相似度靠前的用戶定義為相似用戶,最后將自己評論過的景點推薦給相似好友。概念圖如圖1所示。
圖1 協(xié)同過濾推薦概念圖
基于web的旅游推薦系統(tǒng)開發(fā)設(shè)計的目標(biāo)是更好的管理協(xié)同過濾的旅游信息,對系統(tǒng)的開發(fā)目標(biāo)確認后,對系統(tǒng)進行可行性分析,從技術(shù)、操作以及經(jīng)濟等方面進行分析。
3.1.1 技術(shù)可行性
本系統(tǒng)開發(fā)采用Java,系統(tǒng)基于B/S結(jié)構(gòu)以及MySQL 數(shù)據(jù)庫進行數(shù)據(jù)存儲,系統(tǒng)開發(fā)功能完整,使用簡單,建立的數(shù)據(jù)庫穩(wěn)定并且安全,開發(fā)人員對系統(tǒng)開發(fā)技術(shù)易于掌握,所以基于協(xié)同過濾的旅游推薦系統(tǒng)在技術(shù)方面具有開發(fā)的可行性。
3.1.2 操作可行性
基于web的旅游推薦系統(tǒng)頁面設(shè)計簡潔大方,用戶可以直觀的選擇相關(guān)功能的使用。如果操作失誤會有報錯提示。本系統(tǒng)具有易操作、易管理、交互性好的特點。
3.1.3 經(jīng)濟可行性
該系統(tǒng)開發(fā)環(huán)境是idea,用的數(shù)據(jù)庫是MySQL,這些軟件都可以購買。因此在開發(fā)經(jīng)濟上成本低,開發(fā)規(guī)模小,開發(fā)周期較短,在經(jīng)濟方面具有較高的可行性。
3.2.1 系統(tǒng)開發(fā)流程
在對系統(tǒng)進行具體模塊的詳細設(shè)計之前先做好需求分析以及功能模塊的整體設(shè)計[8]。完成詳細設(shè)計之后要對相應(yīng)模塊進行測試以及完善。本系統(tǒng)的開發(fā)流程如圖2所示。
圖2 系統(tǒng)開發(fā)流程圖
3.2.2 用戶登錄流程
如果想要進入后臺管理系統(tǒng)就必須以管理員的身份登錄,游客第一次使用可以在不登錄的情況下瀏覽景區(qū)、新聞、攻略等,但是要想對景區(qū)進行評論就必須先在前臺登錄。如圖3所示。
圖3 登錄流程圖
3.2.3 系統(tǒng)操作流程
用戶要想實現(xiàn)前臺的全部功能,就要先憑注冊的賬號進行登錄。所輸入信息與數(shù)據(jù)信息比對,無誤可以進行各項前臺功能操作。操作流程如圖4所示。
圖4 系統(tǒng)操作流程圖
完成系統(tǒng)分析后要進行的是系統(tǒng)設(shè)計。系統(tǒng)設(shè)計主要包含詳細設(shè)計和總體設(shè)計[9]。設(shè)計在執(zhí)行過程時客戶端向服務(wù)器發(fā)出請求,服務(wù)器將數(shù)據(jù)轉(zhuǎn)達到數(shù)據(jù)庫進行驗證比對然后又通過服務(wù)器將信息發(fā)回到客戶端?;趨f(xié)同過濾的旅游推薦系統(tǒng)工作原理圖如圖5所示。
圖5 系統(tǒng)工作原理圖
構(gòu)思系統(tǒng)架構(gòu)圖是系統(tǒng)設(shè)計階段的主要部分,系統(tǒng)的總體架構(gòu)決定了整個系統(tǒng)的模式,是系統(tǒng)的基礎(chǔ)[10]?;趨f(xié)同過濾的旅游推薦系統(tǒng)的整體結(jié)構(gòu)設(shè)計如圖6所示。
圖6 系統(tǒng)結(jié)構(gòu)圖
數(shù)據(jù)庫是存儲數(shù)據(jù)信息的重要載體,在編寫數(shù)據(jù)庫之前先完成整體ER圖的設(shè)計,如圖7所示。
圖7 系統(tǒng)結(jié)構(gòu)圖
(1)管理員賬號模塊:在后臺管理系統(tǒng)中,可以在賬號管理模塊對用戶的賬號信息進行添加或刪除,也可以通過賬號名或者添加時間來查找用戶的信息。
(2)用戶模塊:在用戶管理模塊,輸入用戶名、密碼、姓名、手機號等信息進行用戶添加。
(3)景點模塊:在后臺景點模塊,可以添加或者刪減景區(qū)信息也可以通過地區(qū)名、添加景區(qū)的時間來查找景點信息。
(4)新聞模塊:管理員對新聞管理進行查詢和添加、也可以根據(jù)新聞的名稱以及增添新聞的時間來查詢新聞信息等操作。
(5)評論模塊:管理員對評論管理進行編輯和刪除等操作。
(6)瀏覽記錄模塊:管理員對瀏覽記錄管理進行編輯和刪除等操作。
(7)出行攻略模塊:管理員對出行攻略管理進行編輯和刪除等操作。
(8)系統(tǒng)模塊:管理員對系統(tǒng)管理進行編輯和刪除等操作。
(1)登錄:游客輸入自己的賬號、密碼以及正確形式的驗證碼進行登錄,賬號和密碼與數(shù)據(jù)庫信息進行比對,若信息有誤會出現(xiàn)異常提示。如果信息核對正確,可以登錄成功,進入后臺管理系統(tǒng)。用戶在未登錄前可以進入系統(tǒng)首頁,可以在首頁看見協(xié)同推薦的景點。也可以選擇景點信息、新聞信息、出行攻略、用戶注冊以及后臺管理模塊。
(2)游客注冊:用戶填寫姓名、手機號等個人信息進行注冊,有了注冊的賬號方便進行前臺登錄。
(3)出行攻略:用戶可以查看出行攻略,了解具體出行方案,選擇合適心儀的攻略。
(4)景點信息:用戶可以在景區(qū)模塊查看景點具體信息,在詳細景點信息下面,可以編寫自己的評論。
(5)個人中心:用戶對個人中心進行修改密碼和修改個人資料等操作。
該系統(tǒng)采用SSM框架不僅便于數(shù)據(jù)信息的分類與管理,而且很大程度上減少了編寫程序的代碼量,然后將協(xié)同過濾的算法與景區(qū)推薦系統(tǒng)相結(jié)合,不僅在景區(qū)推薦上可以實現(xiàn)協(xié)同的作用,在推薦出行攻略時也同樣適用。隨著用戶評論的歷史行為增多,協(xié)同效果會逐漸明顯,從而更好地滿足用戶個性化需求,在很大程度上提高了檢索信息的效率。