王庭月,張臘梅,朱 靈,楊 玉,王鑫滿
(常熟理工學(xué)院,江蘇 常熟 215500)
隨著各類商業(yè)應(yīng)用程序的開發(fā),農(nóng)商平臺(tái)層出不窮,但依然很難滿足人們對(duì)個(gè)性飲食和購買菜品的需求[1]。如何在眾多農(nóng)戶群體中快速查找并直接購買到最適合的農(nóng)產(chǎn)品,同時(shí)提高農(nóng)戶收入,實(shí)現(xiàn)幫農(nóng)助農(nóng)? 這些都是迫切需要解決的問題[2]。本文主要從用戶需求出發(fā),根據(jù)用戶收貨地址、飲食習(xí)慣等數(shù)據(jù),利用協(xié)同過濾算法[3]設(shè)計(jì)了農(nóng)產(chǎn)品推薦電商系統(tǒng),實(shí)現(xiàn)了同類用戶推薦個(gè)性化推薦農(nóng)產(chǎn)品等功能,簡化了管理工作程序,降低了成本,提高了效率,提升了用戶體驗(yàn)。隨著現(xiàn)代農(nóng)業(yè)的快速發(fā)展,農(nóng)業(yè)生產(chǎn)的組織、規(guī)模和標(biāo)準(zhǔn)化的不斷提高,農(nóng)產(chǎn)品的質(zhì)量就會(huì)得到更好的提升,這樣可以促使農(nóng)業(yè)電子商務(wù)平臺(tái)有更廣闊的發(fā)展空間,維持更長久的收入。
此推薦系統(tǒng)前端頁面設(shè)計(jì)運(yùn)用 JavaScript、jQuery 插件等技術(shù),后端開發(fā)采用SpringMVC、MyBatis(SSM) 等技術(shù)來完成了控制器類、數(shù)據(jù)庫執(zhí)行類、實(shí)體類等的開發(fā)。
系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)是基于需求的分析結(jié)果,設(shè)計(jì)系統(tǒng)的整體體系結(jié)構(gòu)包括模塊劃分、模塊之間的關(guān)系、數(shù)據(jù)處理等。為了降低整個(gè)系統(tǒng)的復(fù)雜程度,使其更易于修改,提高代碼的可讀性,本文將系統(tǒng)模塊化,模塊之間保持相對(duì)獨(dú)立,每個(gè)模塊只有一個(gè)子功能,并通過簡單的接口,即高內(nèi)聚低耦合原理,與其他模塊進(jìn)行鏈接,使整個(gè)系統(tǒng)具備高性能結(jié)構(gòu),這是系統(tǒng)架構(gòu)設(shè)計(jì)的最重要宗旨。本農(nóng)產(chǎn)品推薦系統(tǒng)結(jié)構(gòu)在前期需求分析的基礎(chǔ)上進(jìn)行開發(fā),如圖2所示。
圖2 系統(tǒng)架構(gòu)
數(shù)據(jù)庫是存儲(chǔ)數(shù)據(jù)信息的重要載體,在編寫數(shù)據(jù)庫之前先完成整體 E-R 圖的設(shè)計(jì)如圖3所示。本文數(shù)據(jù)庫采用MySQL,該數(shù)據(jù)庫是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就提了速度和靈活性。
圖3 E-R圖
本系統(tǒng)致力于對(duì)用戶進(jìn)行個(gè)性化推薦,其中主要采用了協(xié)同過濾算法。協(xié)同過濾算法的實(shí)現(xiàn)效果主要取決于數(shù)據(jù)的質(zhì)量與數(shù)量,當(dāng)數(shù)據(jù)質(zhì)量高、數(shù)據(jù)量大,算法的推薦效果就會(huì)更好[5]。協(xié)同過濾算法主要分為兩種:基于用戶的協(xié)同過濾和基于物品的協(xié)同過濾。相比而言,基于用戶的協(xié)同過濾算法的實(shí)現(xiàn)效果更好,更符合本系統(tǒng)的設(shè)計(jì)初衷。此系統(tǒng)通過計(jì)算用戶對(duì)農(nóng)產(chǎn)品的瀏覽頻率與購買次數(shù)作為相似度權(quán)重,構(gòu)建用戶相似度矩陣,再將相似度靠前的用戶定義為相似用戶,最后將農(nóng)產(chǎn)品推薦給相似的用戶。
此外,基于協(xié)同過濾推薦算法通過挖掘、分析及處理個(gè)性化農(nóng)產(chǎn)品模型和個(gè)性化農(nóng)產(chǎn)品推薦對(duì)象模型數(shù)據(jù),產(chǎn)生推薦列表,并向相似用戶推薦相應(yīng)的個(gè)性化農(nóng)產(chǎn)品內(nèi)容,如圖4所示。
圖4 個(gè)性化推薦概念
本文在國內(nèi)農(nóng)商應(yīng)用程序的基礎(chǔ)上,通過問卷調(diào)查的方式,深入研究了用戶的購買屬性(如零售或批發(fā)、發(fā)貨距離的遠(yuǎn)近等)、用戶個(gè)性化需求等影響因素,從而為農(nóng)商、運(yùn)營商以及相關(guān)政府政策提供理論依據(jù)和決策參考,進(jìn)一步推動(dòng)農(nóng)商平臺(tái)的使用,把更多普通用戶吸引到農(nóng)商平臺(tái)上來,并通過合理數(shù)據(jù)分析實(shí)現(xiàn)人們的便捷及個(gè)性化生活。
3.1.1 技術(shù)可行性
系統(tǒng)開發(fā)采用 Java[6],同時(shí)基于 B/S 結(jié)構(gòu)以及 MySQL 數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲(chǔ)[7],系統(tǒng)開發(fā)功能完整,建立的數(shù)據(jù)庫穩(wěn)定并且安全,開發(fā)人員對(duì)此項(xiàng)系統(tǒng)開發(fā)技術(shù)較為掌握,因此,基于用戶的農(nóng)產(chǎn)品協(xié)同過濾系統(tǒng)在技術(shù)方面具有開發(fā)的可行性。
實(shí)程度增加。根據(jù)地質(zhì)時(shí)代、巖性組合及有關(guān)土體力學(xué)性質(zhì),將工作區(qū)淮河以北20~30 m以深、150 m以淺的土體劃分為4個(gè)工程地質(zhì)層組和8個(gè)壓縮層,詳見表1。
3.1.2 操作可行性性
基于用戶的農(nóng)產(chǎn)品協(xié)同過濾推薦系統(tǒng)頁面設(shè)計(jì)清晰,通俗易懂,用戶可以對(duì)相關(guān)功能直觀地選擇。如果操作失誤會(huì)有報(bào)錯(cuò)提示。本系統(tǒng)具有易于管理,互動(dòng)性好,方便用戶的可操作性和實(shí)用性等特點(diǎn)。
3.1.3 經(jīng)濟(jì)可行性
系統(tǒng)開發(fā)環(huán)境是 IDEA,用的數(shù)據(jù)庫是 MySQL,開發(fā)成本低,開發(fā)規(guī)模小,開發(fā)周期較短,在經(jīng)濟(jì)方面具有較高的可行性。相比之下,在研制過程中,系統(tǒng)的效益比研制成本還大。
考慮到現(xiàn)實(shí)生活中對(duì)農(nóng)產(chǎn)品推薦和管理的需要,以及對(duì)系統(tǒng)的認(rèn)真分析,系統(tǒng)權(quán)限分為管理員和使用者兩類。
3.2.1 管理員功能需求
系統(tǒng)管理員可以進(jìn)行農(nóng)產(chǎn)品的增添刪改,也可以對(duì)農(nóng)戶的信息進(jìn)行增添刪改,從而幫助管控整個(gè)系統(tǒng)的正常運(yùn)行,核實(shí)所有農(nóng)產(chǎn)品和農(nóng)戶信息的準(zhǔn)確性和有效性。
3.2.2 用戶功能需求
用戶登錄后,用戶可以到系統(tǒng)進(jìn)行注冊、登錄、查詢農(nóng)產(chǎn)品、選擇購買和查詢個(gè)人信息等功能。
在對(duì)系統(tǒng)進(jìn)行具體模塊的詳細(xì)設(shè)計(jì)之前先做好需求分析以及功能模塊的整體設(shè)計(jì)。完成詳細(xì)設(shè)計(jì)之后要對(duì)相應(yīng)模塊進(jìn)行測試以及完善。本文先利用 UML 建立了基本的框架,系統(tǒng)構(gòu)建如圖5所示。
圖5 系統(tǒng)構(gòu)建
用戶注冊進(jìn)入首頁,選擇農(nóng)產(chǎn)品的界面進(jìn)入后臺(tái)管理系統(tǒng)必須以管理員的身份登錄。作為用戶可以對(duì)農(nóng)產(chǎn)品,農(nóng)產(chǎn)品分類等進(jìn)行瀏覽,對(duì)想要購買的農(nóng)產(chǎn)品進(jìn)行信息確認(rèn)。用戶選擇農(nóng)產(chǎn)品的協(xié)作如圖6所示。
圖6 用戶選擇農(nóng)產(chǎn)品協(xié)作
用戶要想實(shí)現(xiàn)前臺(tái)的全部功能,就要先憑注冊的賬號(hào)進(jìn)行登錄。所輸入信息與數(shù)據(jù)信息比對(duì),確認(rèn)無誤后可以進(jìn)行各項(xiàng)前臺(tái)功能操作,如圖7所示。
圖7 操作流程
基于用戶的農(nóng)產(chǎn)品協(xié)同過濾推薦系統(tǒng)是一個(gè)涉及數(shù)據(jù)收集、預(yù)處理、相似度計(jì)算、推薦算法和結(jié)果展示等多個(gè)環(huán)節(jié)的復(fù)雜系統(tǒng)。在項(xiàng)目開發(fā)過程中,遇到了以下幾個(gè)問題和挑戰(zhàn)。
數(shù)據(jù)收集和預(yù)處理:由于農(nóng)產(chǎn)品的屬性和特征比較復(fù)雜,數(shù)據(jù)收集和預(yù)處理工作比較煩瑣,需要對(duì)數(shù)據(jù)進(jìn)行清洗、去重、歸一化等處理,以便后續(xù)的分析和建模。
相似度計(jì)算:用戶相似度和農(nóng)產(chǎn)品相似度的計(jì)算是推薦系統(tǒng)的核心,需要選擇合適的相似度計(jì)算方法,并對(duì)數(shù)據(jù)進(jìn)行合理的處理,以提高推薦的準(zhǔn)確性和效率。
推薦算法:過濾算法是推薦系統(tǒng)中的一種常用算法。但在實(shí)際應(yīng)用中,有必要根據(jù)具體情況進(jìn)行調(diào)整和優(yōu)化,從而提升用戶滿意度。
結(jié)果展示:推薦結(jié)果的展示方式和內(nèi)容也是影響用戶體驗(yàn)的重要因素,需要根據(jù)用戶需求和反饋進(jìn)行不斷優(yōu)化和改進(jìn)。
總的來說,基于用戶的農(nóng)產(chǎn)品協(xié)同過濾推薦系統(tǒng)是一個(gè)具有挑戰(zhàn)性的項(xiàng)目,需要綜合運(yùn)用多種技術(shù)和方法,才能建成一個(gè)高效、準(zhǔn)確、用戶滿意的推薦系統(tǒng)。