賈德潤南 阮紅麗 李文源 陳東升 高華玲
摘要:近年來,社交電商的發(fā)展帶動了農(nóng)產(chǎn)品銷售,為眾多農(nóng)貨提供了一種可行的電子商務(wù)銷售渠道。該文采用GooSe發(fā)布的開源工具Flutter開發(fā)一款農(nóng)產(chǎn)品電商平臺,這個平臺融合了電商、社交和資訊功能,并利用基于內(nèi)容和基于矩陣分解的混合推薦算法優(yōu)化農(nóng)產(chǎn)品商品頁面和新聞資訊頁面。該系統(tǒng)完成了單元測試、小部件測試和集成測試,實現(xiàn)了購物車、農(nóng)產(chǎn)品瀏覽、農(nóng)產(chǎn)品搜索、農(nóng)產(chǎn)品推薦、農(nóng)產(chǎn)品管理、訂單管理等多種功能,為農(nóng)產(chǎn)品社交電商平臺的設(shè)計提供了思路。
關(guān)鍵詞:農(nóng)產(chǎn)品;推薦系統(tǒng);Flutter;社交電商
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2020)13-0299-02
隨著電子商務(wù)行業(yè)的快速發(fā)展,輻射范圍逐步擴大到廣大的農(nóng)村地區(qū)。農(nóng)產(chǎn)品市場具有巨大的市場潛能,但是由于農(nóng)民文化水平較低,電子產(chǎn)品利用率較低,加之農(nóng)村運輸條件的限制,使得農(nóng)產(chǎn)品的電子商品發(fā)展較為緩慢。近年來,一些社交電商的出現(xiàn),點亮了農(nóng)產(chǎn)品銷售的曙光,拼多多、快手、抖音、微信等社交媒體的普及性,降低了普通農(nóng)戶參與電商的難度。所以社交電商可以成為農(nóng)產(chǎn)品銷售的突破口。本系統(tǒng)設(shè)計的社交電商平臺,將社交媒體與電商系統(tǒng)相結(jié)合,并利用推薦技術(shù)優(yōu)化系統(tǒng)的性能,為用戶提供充分的農(nóng)產(chǎn)品宣傳推廣渠道,助推農(nóng)戶發(fā)揮自身的社交能力,網(wǎng)站官方在農(nóng)產(chǎn)品市場的推薦模塊助力營銷,進一步加強了用戶選購農(nóng)貨的參考依據(jù),更強調(diào)社交和購物之間的關(guān)聯(lián),促進農(nóng)產(chǎn)品市場的活躍度。推薦系統(tǒng)的加入源于農(nóng)產(chǎn)品電子商務(wù)系統(tǒng)的商品良莠不齊,過多的商品也產(chǎn)生了“信息過載”的問題,這將導(dǎo)致用戶無法順利地找到自己所需要的商品。農(nóng)產(chǎn)品電子商務(wù)推薦系統(tǒng)則可以從紛繁復(fù)雜的信息中找到農(nóng)產(chǎn)品需求者感興趣的商品并將其推薦給他們,幫助他們順利地完成購買過程。
1開發(fā)環(huán)境及相關(guān)技術(shù)分析
系統(tǒng)前端的開發(fā)環(huán)境為Android Studio集成開發(fā)環(huán)境,后端采用Visual Studio Code輕量級的開發(fā)環(huán)境,前后端均采用Flutter技術(shù)開發(fā),后端數(shù)據(jù)庫采用MySql數(shù)據(jù)庫管理,利用py-thon爬蟲獲取新聞資訊數(shù)據(jù)。在系統(tǒng)的設(shè)計與開發(fā)過程中綜合運用了Flutter技術(shù)、dart語言和混合推薦技術(shù)等。
Flutter是Google提供的新一代跨平臺方案,是一款開源、免費的移動uI框架,可以給開發(fā)者提供簡單、高效的方式來構(gòu)建和部署跨平臺、高性能移動應(yīng)用。隨著Google在GooSe 102019開發(fā)者大會上宣布Flutter支持Web平臺,就標志著Flut-ter已經(jīng)全面持所有平臺。Flutter作為新興的混合開發(fā)解決方案,它提供了更完善的文檔和更高效的運行方式,開發(fā)者不必再把大量精力放到不同平臺的展示上,更好地完成自己的業(yè)務(wù),從企業(yè)管理者角度看,也大大降低了開發(fā)成本。
2系統(tǒng)功能結(jié)構(gòu)設(shè)計
農(nóng)產(chǎn)品社交電商推薦系統(tǒng)屬于垂直領(lǐng)域的電商和社交系統(tǒng)的結(jié)合的移動端平臺,平臺的整體設(shè)計中還要包含商品推薦模塊。系統(tǒng)分為前端和后端功能,設(shè)計采用前后端分離,前端功能主要模塊包括會員中心、購物車管理、農(nóng)貨瀏覽、農(nóng)貨圈子(包括加入圈子、發(fā)帖、回復(fù)、收藏功能)、農(nóng)產(chǎn)品的搜索,農(nóng)產(chǎn)品的推薦模塊、新聞資訊模塊(包括資訊獲取的爬蟲)。后端的功能包括用戶管理、商品管理、訂單管理、帖子管理和系統(tǒng)參數(shù)管理。
系統(tǒng)將用戶分為三個類別,游客、注冊用戶和管理員,不同類別的用戶操作權(quán)限有所區(qū)別。首先,管理員用戶的權(quán)限最高,代表網(wǎng)站官方進行一些操作,可以管理農(nóng)貨的類目,上架的農(nóng)貨管理,圈子中的全部帖子管理,全體用戶的管理和系統(tǒng)參數(shù)的管理。
匿名用戶,也就是游客的權(quán)限最小,只能夠瀏覽農(nóng)貨、搜索農(nóng)貨、查看新聞資訊、查看社交圈子的帖子。
注冊用戶除了可以完成游客的查看功能,還可以進行購物車及訂單管理、發(fā)布商品管理、個人用戶管理和個人發(fā)帖管理。注冊用戶,還區(qū)分是否實名認證,未實名認證則不能發(fā)布商品和發(fā)表帖子。
購物車模塊的主要功能包括將商品添加到購物車、瀏覽購物車中的商品信息、瀏覽購物車中的商品信息、修改購物車中的商品數(shù)量、刪除購物車中的商品以及清空購物車等嘲。
3關(guān)鍵模塊之新聞資訊模塊
新聞資訊模塊是利用python語言爬取中國農(nóng)網(wǎng)的新聞(http://www.farmer.com.cn),添加到MySql數(shù)據(jù)庫中。爬蟲設(shè)計利用BeaufiMl Soup 4對新聞頁面進行解析,獲取新聞的標題、標簽、來源、編輯、作者、發(fā)布時間和新聞內(nèi)容信息,存儲在MySql數(shù)據(jù)庫中。爬蟲設(shè)計為增量爬取,按照時間結(jié)點每天定時爬取一次,追加到數(shù)據(jù)庫中。
新聞資訊的展示頁面中按照時間順序和基于內(nèi)容的推薦算法計算排序展示。這里面的內(nèi)容就是新聞的標簽,將新聞內(nèi)容用python的jieba庫進行分詞,利用TF-IDF逆文檔頻率抽取標簽,與爬取到的標簽字段合并,得到更加準確全面的標簽,計算這些標簽的余弦相似度,并進行加權(quán)求和,最后在根據(jù)新聞的時間加人衰減系數(shù),時間越久遠的衰減系數(shù)越大,最后的推薦結(jié)果將后移。
4關(guān)鍵模塊之農(nóng)貨推薦模塊
推薦系統(tǒng)廣泛地應(yīng)用于各類型的電商平臺、閱讀網(wǎng)站、社交媒體網(wǎng)站、電影推薦網(wǎng)站等。本系統(tǒng)采用基于內(nèi)容的推薦與基于矩陣分解的混合推薦算法,收集用戶的人口信息和互動行為信息,包括用戶的所屬地區(qū)、用戶收藏的商品、用戶是否發(fā)布商品、用戶加入購物車的商品、用戶發(fā)布帖子的圈子、用戶訪問新聞資訊的類別等。協(xié)同過濾算法基于用戶的隱語義信息構(gòu)建用戶、物品矩陣,利用交替最小二乘算法ALS訓(xùn)練,降低us-er-Item矩陣的維度,將User-Item矩陣分解成兩個低維矩陣,提取出用戶和物品的隱含信息,召回用戶喜歡的物品,再利用邏輯回歸算法LR進行排序,推薦給用戶Top-N的物品。但新用戶沒有這些隱含行為信息時,推薦算法會非常不準確,這就是推薦系統(tǒng)的冷啟動問題,這時利用基于內(nèi)容的方式進行推薦,根據(jù)用戶的屬性特征和訪問商品的類目、加人圈子的類型和訪問資訊的類別進行推薦,能夠很好地解決冷啟動問題。基于內(nèi)容和基于矩陣分解的混合推薦基本結(jié)構(gòu)如圖1所示。
5單元測試、小部件測試與集成測試
應(yīng)用的功能越多,手動測試的難度就越大。一套完整的自動化測試確保在發(fā)布App之前正確執(zhí)行,同時保留系統(tǒng)的功能和錯誤修復(fù)速度。Flutter有很多種自動化測試方法。
單元測試用來測試單一功能、方法或類。在應(yīng)用系統(tǒng)開發(fā)過程中,測試某個邏輯單元在各種不同條件下是否符合我們的預(yù)期。測試首先導(dǎo)入flutter_test,dart包,main方法中創(chuàng)建一個test方法來測試某個類的某個方法功能是否正確,在test方法中添加一個expect方法的斷言。在終端運行flutter test命令運行測試文件,獲得測試結(jié)果。
小部件測試使用flutter_test包里面的testWidgets方法進行小部件的顯示和交互行為的測試,小部件的顯示,即測試文本小部件,在測試文件中寫入想要測試的斷言,小部件上的文本數(shù)量是否滿足測試條件。小部件交互行為(點擊或者拖拽行為)測試,首先按照文本或者類型查找到要測試的小部件,tes-ter.tap方法點擊小部件,tester.pump方法重建小部件之后使用expect斷言判斷小部件變化的值是否符合預(yù)期。
集成測試是測試的整體應(yīng)用中的某一個功能。Flutter應(yīng)用中的集成測試一般由兩個文件組成,一個文件是使用enable-FlutterDricerExtension方法創(chuàng)建一個可以監(jiān)測的應(yīng)用,將它部署到真實設(shè)備或者設(shè)備模擬器上,在用另外一個測試文件操控這個應(yīng)用,模擬用戶的操作行為,進行集成測試。
6結(jié)論
農(nóng)產(chǎn)品社交電商推薦系統(tǒng)將社交與電子商務(wù)相結(jié)合,降低傳統(tǒng)電商平臺的操作難度,農(nóng)戶可以僅使用社交圈子進行商品推廣即可獲得農(nóng)產(chǎn)品的銷量。系統(tǒng)利用推薦算法有針對性地對用戶進行個性化推薦,大大提高農(nóng)產(chǎn)品的平臺營銷能力,挖掘潛在的用戶群體。社交電商已成為未來農(nóng)產(chǎn)品電子商務(wù)的發(fā)力方向,具有較高的實用價值和應(yīng)用前景。