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