基于Spark商品熱度分析與推 薦系統(tǒng)設(shè)計與實現(xiàn)_第1頁
基于Spark商品熱度分析與推 薦系統(tǒng)設(shè)計與實現(xiàn)_第2頁
基于Spark商品熱度分析與推 薦系統(tǒng)設(shè)計與實現(xiàn)_第3頁
基于Spark商品熱度分析與推 薦系統(tǒng)設(shè)計與實現(xiàn)_第4頁
基于Spark商品熱度分析與推 薦系統(tǒng)設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

摘要隨著互聯(lián)網(wǎng)的普及和電子商務的快速發(fā)展,網(wǎng)上商品銷售的數(shù)量和規(guī)模不斷擴大,消費者對于商品的選擇也日益多樣化。為了更好地滿足消費者的需求,提高銷售額,本文設(shè)計并實現(xiàn)了一款京東在線商品熱度分析與推薦系統(tǒng)。系統(tǒng)是一款基于B/S架構(gòu)的Web應用,還涉及了Python,Hadoop,Spark,Vue,Echarts,Pandas等。在實際使用中,系統(tǒng)首先可以通過Scrapy爬蟲獲取京東的各類商品信息,這些信息包括店鋪信息,商品名,關(guān)鍵字分類,價格,評論,評分等。其次,系統(tǒng)會根據(jù)這些爬取的數(shù)據(jù)生成關(guān)鍵字詞云。比如:商品各分類評價價格,商品關(guān)鍵字數(shù)量占比等可視化數(shù)據(jù)。最后,當生產(chǎn)的商品信息鏈接被觸發(fā)時,系統(tǒng)會自動協(xié)調(diào)過濾算法實現(xiàn)推薦商品信息。另外根據(jù)隨機森林機器學習算法推測未來的7天銷售熱度??偟膩碚f,該系統(tǒng)的實現(xiàn)不僅提高了銷售數(shù)據(jù)的處理效率,而且為商店提供了更加精準的銷售預測和推薦服務。未來隨著技術(shù)的更新迭代,系統(tǒng)還可以進一步提升,并且用于更多相關(guān)線上商品信息分析和應用。關(guān)鍵字:推薦;爬蟲;Python;Django;Hadoop

AbstractWiththepopularizationoftheInternetandtherapiddevelopmentofe-commerce,thenumberandscaleofonlinegoodssalesareconstantlyexpanding,andconsumers'choicesofgoodsarealsoincreasinglydiversified.Inordertobettermeettheneedsofconsumersandimprovesales,thispaperdesignsandrealizesaJingdongonlinecommodityheatanalysisandrecommendationsystem.SystemisawebapplicationbasedonB/Sarchitecture,andothertechnologiesincludepython,hadoop,spark,vue,Echarts,pandas,etc.UserscanfirstcrawlupallkindsofproductinformationofJingdongthroughscrapycrawler,includingstoreinformation,productname,keywordclassification,price,comment,score,etc.Accordingtothecrawlingdata,generatethekeywordcloud,evaluatethepriceofcommodities,theproportionofcommoditykeywordsandothervisualdata.Whenclickingonaproduct,therecommendedproductinformationwillberealizedaccordingtothecoordinatedfilteringalgorithm.Inaddition,thesalesheatofthenext7daysisspeculatedaccordingtotherandomforestmachinelearningalgorithm.Ingeneral,theimplementationofthissystemnotonlyimprovestheprocessingefficiencyofsalesdata,butalsoprovidesmoreaccuratesalesforecastingandrecommendationservicesforstores.Inthefuture,thesystemcanfurtheroptimizethealgorithm,improvetheaccuracyofpredictionandrecommendation,andbringmorebusinessopportunitiesforonlinesales.Keywords:Recommended;crawler;Python;Django;Hadoop

目錄摘要 IAbstract II1緒論 11.1研究背景與意義 11.2系統(tǒng)開發(fā)的意義 11.3國內(nèi)外研究現(xiàn)狀 11.4系統(tǒng)的特點 21.5研究內(nèi)容 21.6論文結(jié)構(gòu) 22相關(guān)技術(shù)介紹 32.1大數(shù)據(jù)與分布式架構(gòu)理論介紹 32.2Hadoop與Spark 32.3Spider爬蟲技術(shù) 42.4Django框架 42.5Vue和Echarts 43需求分析 53.1可行性分析 53.2非功能性需求分析 63.3主要流程分析 63.3.1系統(tǒng)整體開發(fā)流程圖分析 63.3.2用戶注冊與登錄流程分析 73.3.3機器學習和推薦功能流程分析 73.4本章小結(jié) 74系統(tǒng)設(shè)計 84.1系統(tǒng)總體架構(gòu)設(shè)計 84.2系統(tǒng)模塊設(shè)計 84.2.1系統(tǒng)功能介紹 84.2.2系統(tǒng)主要模塊設(shè)計 84.3數(shù)據(jù)庫設(shè)計 94.4本章小結(jié) 105系統(tǒng)實現(xiàn) 105.1系統(tǒng)的配置和部署 105.2數(shù)據(jù)爬取與存儲功能實現(xiàn) 115.2.1在線開放的商品網(wǎng)站爬取頁面分析 115.2.2在線開放的商品網(wǎng)站網(wǎng)數(shù)據(jù)爬取 115.2.3數(shù)據(jù)上傳到Hadoop中 125.3首頁功能實現(xiàn) 135.4系統(tǒng)用戶注冊與登錄功能實現(xiàn) 145.4.1用戶注冊界面 145.4.2用戶登錄界面 155.5商品列表頁面功能實現(xiàn) 155.6數(shù)據(jù)管理功能實現(xiàn) 165.7本章小結(jié) 166系統(tǒng)測試 176.1系統(tǒng)測試目的 176.2系統(tǒng)兼容性測試 176.3功能性測試 176.4本章小結(jié) 187結(jié)論 18參考文獻 19致謝 22基于Spark的商品熱度分析與推薦系統(tǒng)設(shè)計與實現(xiàn)1緒論1.1研究背景與意義隨著電子商務的蓬勃發(fā)展,網(wǎng)上商品銷售的數(shù)量和規(guī)模不斷擴大,消費者對于商品的選擇也日益多樣化。這種變化不僅帶來了商業(yè)機會,也帶來了新的挑戰(zhàn)。如何從海量的商品信息中篩選出消費者關(guān)注和關(guān)心的熱度商品。如何預測商品的銷售趨勢,這些問題的解決有助于降低供應商與消費者的信息成本和信息障礙,并且更好的促進線上商業(yè)的交易活動[1]?;谶@樣的背景,本文開發(fā)了一款在線開放的商品網(wǎng)站。1.2系統(tǒng)開發(fā)的意義該系統(tǒng)的開發(fā)具有重要的意義。首先,它基于大數(shù)據(jù)分析技術(shù)[2],能夠有效地處理和分析大量的銷售數(shù)據(jù)[22]。其次,該系統(tǒng)利用Scrapy爬蟲技術(shù)。這些信息經(jīng)過分析后,可以生成關(guān)鍵字詞云,商品各分類評價價格,商品關(guān)鍵字數(shù)量占比等可視化數(shù)據(jù),為電商企業(yè)提供直觀的銷售數(shù)據(jù)展示[13]。此外,該系統(tǒng)還利用協(xié)調(diào)過濾算法和機器學習技術(shù)[7],實現(xiàn)了個性化的商品推薦和熱度銷量預測功能[23]。當用戶點擊一個商品時,系統(tǒng)會根據(jù)用戶的購買歷史和偏好,推薦相關(guān)或相似的商品。同時,通過學習隨機森林機器學習算法,系統(tǒng)還能夠預測該商品的未來銷量熱度[41],為電商企業(yè)的庫存管理和銷售策略提供支持。1.3國內(nèi)外研究現(xiàn)狀在大數(shù)據(jù)時代,銷售數(shù)據(jù)分析已成為電商企業(yè)提升競爭力的重要手段。隨著技術(shù)的發(fā)展,越來越多的學者和企業(yè)開始關(guān)注數(shù)據(jù)分析[3]。在國內(nèi),隨著電子商務的快速發(fā)展,銷售數(shù)據(jù)分析系統(tǒng)的需求日益凸顯[8]。很多學者和企業(yè)開始嘗試利用大數(shù)據(jù)技術(shù),如Hadoop、Spark等,進行銷售數(shù)據(jù)的處理和分析[21]。同時,一些開源工具和框架,如Scrapy爬蟲、Vue.js、ECharts等[24],也被廣泛應用于銷售數(shù)據(jù)分析系統(tǒng)的開發(fā)中。這些系統(tǒng)通過對銷售數(shù)據(jù)的挖掘和分析,為企業(yè)提供了全面的銷售信息,幫助企業(yè)制定更加精準的銷售策略[41]。在國外,銷售數(shù)據(jù)分析系統(tǒng)的研究與開發(fā)已經(jīng)相對成熟。許多大型電商企業(yè)已經(jīng)建立了自己的銷售數(shù)據(jù)分析團隊,并投入大量資源進行相關(guān)技術(shù)的研發(fā)。同時,一些知名的數(shù)據(jù)分析工具和平臺,如Tableau、PowerBI等,也得到了廣泛的應用[37]。這些工具和平臺提供了強大的數(shù)據(jù)可視化功能,能夠幫助企業(yè)快速了解銷售數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)背后的規(guī)律和趨勢。盡管國內(nèi)外的電商企業(yè)和學者都在銷售數(shù)據(jù)分析方面取得了一定的成果[48],但仍存在一些挑戰(zhàn)和問題需要解決[10]。例如,如何更加準確地預測商品的銷售趨勢、如何提高個性化商品推薦的準確率等[43]。因此,未來的研究將繼續(xù)關(guān)注這些挑戰(zhàn)和問題,并尋求更加有效的解決方案。1.4系統(tǒng)的特點此系統(tǒng)利用Hadoop進行數(shù)據(jù)的分布式存儲,確保數(shù)據(jù)安全可靠;并依托Spark進行高效分布式計算,能夠迅速分析商品銷售的多維度數(shù)據(jù),從而確保系統(tǒng)的穩(wěn)定運行和高效處理。此外,系統(tǒng)具備出色的可擴展性,根據(jù)用戶實際需求進行靈活的功能拓展和升級,滿足業(yè)務增長的需要。在前臺展示方面,系統(tǒng)采用Vue和ECharts技術(shù),實現(xiàn)數(shù)據(jù)信息的可視化,使得用戶能夠直觀、方便地瀏覽和查看各項銷售數(shù)據(jù),大大提升了用戶體驗和工作效率。1.5研究內(nèi)容在線開放的商品網(wǎng)站設(shè)計與實現(xiàn)主要涉及以下研究內(nèi)容:(1)數(shù)據(jù)獲取與存儲:使用Scrapy爬蟲技術(shù),設(shè)計并實現(xiàn)一個能夠自動獲取京東鞋服類商品信息的系統(tǒng)。數(shù)據(jù)包括店鋪信息、商品名、價格、評論和評分等[25]。(2)數(shù)據(jù)處理與分析:重點在于生成關(guān)鍵字詞云,商品各分類評價價格,商品關(guān)鍵字數(shù)量占比等可視化數(shù)據(jù)。(3)數(shù)據(jù)可視化:開發(fā)頁面,有數(shù)據(jù)可視化功能,展示上述統(tǒng)計數(shù)據(jù),以便用戶直觀地了解銷售情況[38]。(4)商品推薦系統(tǒng):基于協(xié)調(diào)過濾算法,實現(xiàn)一個個性化的商品推薦系統(tǒng)。當用戶點擊一個商品時,系統(tǒng)會根據(jù)商品的相似性計算,推薦相關(guān)的商品。1.6論文結(jié)構(gòu)圖1.1論文結(jié)構(gòu)圖2相關(guān)技術(shù)介紹系統(tǒng)是在服務器端上采用Python編寫的Web企業(yè)級項目[26],其前臺開發(fā)工具通過VSCode開發(fā),后臺開發(fā)使用PyCharm集成環(huán)境開發(fā)。前臺技術(shù)、后臺數(shù)據(jù)處理。根據(jù)Web項目的一般性技術(shù)要求主要包括,前臺技術(shù),后臺數(shù)據(jù)處理,爬蟲數(shù)據(jù)獲取技術(shù)等。前臺技術(shù)主要是通過Vue腳手架結(jié)合Echarts實現(xiàn)可視化界面,并且通過Axios異步與后臺溝通獲取數(shù)據(jù)庫中的數(shù)據(jù)。通過Pandas進行文本數(shù)據(jù)的存儲。以下將詳細介紹這些相關(guān)的理論和技術(shù)。2.1大數(shù)據(jù)與分布式架構(gòu)理論介紹如今是一個大數(shù)據(jù)的年代,大數(shù)據(jù)(bigdata)有重要的5個特點(5V)包括:多樣性(Variety)、體量(Volume)、速度(Velocity)、準確性(Veracity)和價值(Value)[38]。多樣性是指大數(shù)據(jù)包含多種類型和來源的數(shù)據(jù),包括結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)[31]。在PB級別甚至更大。大數(shù)據(jù)的真實性和可信度,需要通過數(shù)據(jù)清洗和驗證等手段來保證數(shù)據(jù)的準確性。價值是指大數(shù)據(jù)可以為企業(yè)和組織帶來更高的商業(yè)價值,通過優(yōu)化決策、提高效率和降低成本等方式實現(xiàn)。然而要處理這巨大的數(shù)據(jù)涉及到數(shù)據(jù)的存儲和計算,這樣就產(chǎn)生了分布式架構(gòu)理論。分布式理論表面很簡單,就是通過增加服務器的數(shù)量來處理龐大的數(shù)據(jù)。首先對數(shù)據(jù)或者計算進行有效的切割,然后再對這些數(shù)據(jù)或者計算進行多個服務器的存儲和計算,通過這樣的方式來增加數(shù)據(jù)存儲和計算的效能,提升數(shù)據(jù)的處理能力。2.2Hadoop與Spark早期大數(shù)據(jù)技術(shù)主要集中在大企業(yè)中應用,隨著Hadoop的開源,大數(shù)據(jù)技術(shù)得到了前所未有的發(fā)展。Hadoop和Spark是當前大數(shù)據(jù)領(lǐng)域中兩種重要的技術(shù)框架,它們分別提供了不同的數(shù)據(jù)處理和分析能力[35],被廣泛應用于數(shù)據(jù)倉庫、數(shù)據(jù)挖掘、機器學習等眾多領(lǐng)域。Hadoop具有簡單易用的接口。同時,Hadoop還提供了數(shù)據(jù)安全性和數(shù)據(jù)容錯性方面的保障,保證了數(shù)據(jù)處理的高效性和可靠性。Spark則是另一個重要的數(shù)據(jù)處理和分析框架。2.3Spider爬蟲技術(shù)爬蟲技術(shù)是一種自動化數(shù)據(jù)采集技術(shù),通過編寫程序模擬人類訪問網(wǎng)站的行為,可以快速、準確地獲取大量數(shù)據(jù)。在大數(shù)據(jù)時代,爬蟲技術(shù)得到了廣泛的應用和推廣。爬蟲的技術(shù)可以用于各種場景,例如數(shù)據(jù)挖掘、競爭情報、用戶行為分析等。爬蟲的工作原理通常是從一個或多個初始頁面開始,根據(jù)一定的規(guī)則(如鏈接、關(guān)鍵字等)遍歷網(wǎng)站上的所有頁面,提取其中的數(shù)據(jù)并按照一定的格式進行存儲。在提取數(shù)據(jù)的過程中,爬蟲需要遵循網(wǎng)站的Robots.txt協(xié)議和反爬蟲策略,以確保采集數(shù)據(jù)的合法性和安全性。簡單的信息的爬取可以使用Python的第三方庫比如request,Urllib等[4],然而隨著越來越多網(wǎng)站設(shè)置了反扒,數(shù)據(jù)的爬取也變得困難[32]。本系統(tǒng)使用的爬蟲技術(shù)主要是使用Scrapy爬蟲技術(shù)先爬取數(shù)據(jù),并使用Xpath進行網(wǎng)頁中解析數(shù)據(jù),最后通過Pandas技術(shù)實現(xiàn)csv文本格式的存儲。2.4Django框架Django擁有和SpringMVC類似的工作原理,提供MVT框架模式以提高系統(tǒng)的開發(fā)效率。M層就是模型層,在Java應用中需要MyBatis這樣的ORM(對象模型映射)框架,但是Django內(nèi)置了ORM框架的類庫,這樣就省去了額外的配置,減少了使用上的困難。另外,值得一提的是,框架對Controller控制層進一步進行了封裝[33],成為了更符合開發(fā)模式的路由,由路由來分發(fā)具體的操作請求,主要通過在相應的配置文件中進行配置,所以通過使用Django就能快速搭建一個Web系統(tǒng)服務器。2.5Vue和EchartsVue框架以其強大的組件庫和靈活的布局選項,讓創(chuàng)建復雜用戶界面變得輕而易舉。無論是呈現(xiàn)數(shù)據(jù)、處理交互,還是實現(xiàn)動態(tài)更新,Vue都能讓開發(fā)者得心應手。其強大的數(shù)據(jù)綁定與響應式系統(tǒng),使得數(shù)據(jù)處理更加高效。通過將Echarts圖表與Vue的數(shù)據(jù)進行綁定,我們能夠?qū)崟r反映數(shù)據(jù)的變化,并實現(xiàn)動態(tài)的用戶交互。Vue的組件化和模塊化設(shè)計不僅讓代碼結(jié)構(gòu)清晰,更使其易于擴展和維護。我們可以輕松使用第三方插件和組件庫,進一步增強Echarts的功能,滿足更為豐富的業(yè)務需求。同時,Vue的模塊化結(jié)構(gòu)也大大簡化了代碼管理,使得整個系統(tǒng)的維護變得更為簡單便捷。因此,Vue無疑是開發(fā)者們構(gòu)建高效、易維護的數(shù)據(jù)可視化應用的不二之選。在可視化系統(tǒng)中,Vue和Echarts的結(jié)合可以帶來許多優(yōu)勢。首先,Vue提供了強大的組件系統(tǒng),可以輕松地創(chuàng)建復雜的用戶界面,而Echarts則可以用來創(chuàng)建各種數(shù)據(jù)可視化圖表。通過將這兩個工具結(jié)合起來,開發(fā)者可以創(chuàng)建一個功能豐富、交互性強、用戶體驗良好的可視化系統(tǒng)。它提供了豐富的組件和布局選擇,使得構(gòu)建各式各樣的復雜用戶界面變得輕而易舉。在數(shù)據(jù)可視化方面,Vue展現(xiàn)出了出色的實力,不僅能實現(xiàn)數(shù)據(jù)展示、交互操作,更能實現(xiàn)動態(tài)更新,讓數(shù)據(jù)以更直觀、生動的方式呈現(xiàn)給用戶。Vue的數(shù)據(jù)綁定和響應式系統(tǒng)也是其一大亮點。通過與Echarts圖表的無縫結(jié)合,它能確保數(shù)據(jù)的實時更新與動態(tài)交互,讓數(shù)據(jù)不再只是一成不變的展示,而是成為了與用戶交流互動的一部分。而在擴展和維護方面,Vue更是令人稱道。它的組件化和模塊化架構(gòu)使得代碼結(jié)構(gòu)清晰、易于理解。通過結(jié)合第三方插件和組件庫,開發(fā)者可以輕松擴展Echarts的功能,同時保持整個系統(tǒng)的代碼整潔、易于維護。Vue以其優(yōu)秀的性能和穩(wěn)定的架構(gòu),為開發(fā)者提供了一種全新的數(shù)據(jù)可視化解決方案。而Echarts在可視化系統(tǒng)中的作用則主要體現(xiàn)在:高度定制化:Echarts提供了豐富的配置選項,可以幫助開發(fā)者根據(jù)具體需求對圖表進行高度定制化。例如,可以通過調(diào)整顏色、字體、動畫效果等來增強圖表的可視化效果。總的來說,Vue和Echarts的結(jié)合可以為可視化系統(tǒng)帶來許多優(yōu)勢,包括創(chuàng)建復雜的用戶界面、高效的數(shù)據(jù)處理、易于擴展和維護以及提供豐富的圖表類型和配置選項等。這種結(jié)合對于數(shù)據(jù)分析和數(shù)據(jù)可視化的應用場景非常有用,可以幫助開發(fā)者更好地理解和呈現(xiàn)數(shù)據(jù),提高數(shù)據(jù)的使用效率和用戶體驗。3需求分析本章主要首先對系統(tǒng)開發(fā)的可行性進行分析,然后再對整體的系統(tǒng)開發(fā)流程和用戶注冊登錄流程以及銷量預測功能實現(xiàn)流程進行分析。3.1可行性分析在線開放的商品網(wǎng)站具有可行性,具體分析如下:(1)技術(shù)可行性:在線開放的商品網(wǎng)站的評論、評分、圖片等數(shù)據(jù)可以通過爬蟲技術(shù)獲取,并通過Hadoop存儲到數(shù)據(jù)庫中,分布式計算使用Spark技術(shù)。其次其它的技術(shù)包括有Due、Django、Python語言等都是學校學習過的[27]。(2)運行可行性:開發(fā)該系統(tǒng)的應具有豐富的計算機前后端技術(shù),和大數(shù)據(jù)領(lǐng)域知識,能夠?qū)崿F(xiàn)系統(tǒng)的開發(fā)、測試和部署。但是對于用戶來說,使用則非常的簡單,只需要注冊之后便能登錄,查看對應的可視化界面,如果數(shù)據(jù)量不夠,還可以通過后臺管理系統(tǒng)手工添加的,操作也非常簡便[14]。綜上所述,在線開放的商品網(wǎng)站具有可行性,能夠為用戶提供有價值的商品銷量預測服務[15]。但同時也要注意,系統(tǒng)涉及的功能較多,需要耐心開發(fā)。3.2非功能性需求分析在線開放的商品網(wǎng)站的非功能性需求分析如下:(1)性能需求:系統(tǒng)應具有較高的處理速度和穩(wěn)定性,能夠?qū)崟r或接近實時地處理海量的商品數(shù)據(jù)[15]。(2)容量需求:系統(tǒng)應具有可擴展性,能夠應對平臺用戶數(shù)量的增長和商品數(shù)據(jù)的增加。(3)用戶界面需求:系統(tǒng)應提供直觀、易用的用戶界面,方便用戶查看商品詳情等數(shù)據(jù)。(4)法律合規(guī)性需求:系統(tǒng)應遵守相關(guān)法律法規(guī),確保所獲得的數(shù)據(jù)的合法性[16],數(shù)據(jù)的使用和處理符合相關(guān)法規(guī)要求。3.3主要流程分析3.3.1系統(tǒng)整體開發(fā)流程圖分析系統(tǒng)開發(fā)流程如下圖所示,首先需要使用Scrapy爬蟲框架從在線開放的商品網(wǎng)站獲取到相應的網(wǎng)頁[28],并且通過Xpath提取需要的相關(guān)數(shù)據(jù),然后通過Pandas寫入到CSV文本文件中,然后再通過操作Hadoop進行分布式存儲,通過Spark分布式計算寫入到數(shù)據(jù)庫中,最后通過前臺的Vue和Echarts進行數(shù)據(jù)可視化展示。圖3.1系統(tǒng)整體開發(fā)流程圖3.3.2用戶注冊與登錄流程分析瀏覽人員進入網(wǎng)站之后,如果不是會員則需要先注冊。即填寫信息,在數(shù)據(jù)庫中添加用戶信息,注冊成功。注冊用戶登錄之后,可以跳轉(zhuǎn)到主頁面,并且可以查看商品的詳細內(nèi)容、查看各類可視化數(shù)據(jù)等操作,流程圖如3.2所示。圖3.2用戶注冊與登錄流程圖3.3.3機器學習和推薦功能流程分析如下是機器學習和銷量預測功能實現(xiàn)的步驟。從商品數(shù)據(jù)中提取出與銷量相關(guān)的特征,如歷史銷量、評論、價格等;第三部是建立訓練模型,通過算法實現(xiàn)模型的訓練,通過評估之后就可以使用模型了。圖3.3機器學習流程圖3.4本章小結(jié)介紹了系統(tǒng)開發(fā)流程和操作流程,分析系統(tǒng)開發(fā)可行性和非功能性需求4系統(tǒng)設(shè)計系統(tǒng)開發(fā)之前進行了總體設(shè)計,本章節(jié)從系統(tǒng)的架構(gòu)設(shè)計,后臺設(shè)計的包括架構(gòu)設(shè)計以及前臺頁面結(jié)構(gòu)設(shè)計,對后臺和前臺的設(shè)計分別闡釋。4.1系統(tǒng)總體架構(gòu)設(shè)計本系統(tǒng)的是基于B/S架構(gòu)的,前臺通過瀏覽器進行訪問,Web服務器會對訪問進行解析。然后通過HTTP協(xié)議于后臺Django框架進行溝通[9]。Django框架是基于MTV(模型、模板和視圖層)的,視圖層層會接收到路由分發(fā)的請求[11],進而調(diào)用業(yè)務邏輯層代碼,業(yè)務邏輯層代碼再進一步調(diào)用模型層代碼對數(shù)據(jù)庫進行操作了,操作結(jié)束后,數(shù)據(jù)庫數(shù)據(jù)發(fā)生改變[34]。其次,服務器再調(diào)取數(shù)據(jù)的操作時候,由于數(shù)據(jù)發(fā)生了變化,所以相應的發(fā)送到前臺的客戶端的數(shù)據(jù)也相應的變化[36]。具體如下圖4.1所示。圖4.1系統(tǒng)工作原理示意圖4.2系統(tǒng)模塊設(shè)計4.2.1系統(tǒng)功能介紹系統(tǒng)數(shù)據(jù)包括有商品信息,商品評論信息等。其次是將這些數(shù)據(jù)通過Hadoop的HDFS組件存儲到服務器的MySQL中,通過PySpark對數(shù)據(jù)進行分布式計算處理。最后通過Django搭建的Web頁面進行數(shù)據(jù)的可視化展示[4],在頁面中也需要完成商品熱度預測功能,另外根據(jù)協(xié)調(diào)過濾算法實現(xiàn)相應的商品推薦信息展示。4.2.2系統(tǒng)主要模塊設(shè)計根據(jù)以上的功能需求情況,整體的功能模塊包括有前臺Vue項目模塊,后臺Django后臺項目模塊和爬蟲模塊[12]。前臺Vue的頁面主要頁面包括注冊與登錄頁面,數(shù)據(jù)可視化展示頁面,爬蟲模塊主要用來爬取在線開檔的商品網(wǎng)站的相關(guān)數(shù)據(jù)信息的[28],通過使用Hadoop進行數(shù)據(jù)的存儲,Django后臺用來提供前臺所用的Json數(shù)據(jù)以及給出銷量熱度預測的相關(guān)信息。其中商品銷量熱度預測模塊的實現(xiàn)是基于機器學習功能之后的應用階段[42]。圖4.2系統(tǒng)功能模塊圖4.3數(shù)據(jù)庫設(shè)計表4-1商品信息表(jd_good)列名注釋數(shù)據(jù)類型id主鍵Integershop_id店鋪idIntegertitle商品名Textkeyword關(guān)鍵字Textprice價格Textshop商鋪名Textcommit評論Text表4-2商品評論信息表(jd_goods_commit)列名注釋數(shù)據(jù)類型id主鍵Integershop_id店鋪編號Textcontent評論內(nèi)容TextcreationTime評論時間Textscore評分Text4.4本章小結(jié)根據(jù)前臺需要展示的數(shù)據(jù)列出來需要爬取的實體類和數(shù)據(jù)信息[4],這些數(shù)據(jù)是先通過Scrapy爬蟲進行爬取,使用Pandas存儲為CSV文本格式的。5系統(tǒng)實現(xiàn)5.1系統(tǒng)的配置和部署系統(tǒng)后臺使用Python書寫,采用Django框架搭建。以下是需要配置的一些插件,包括PyMySQL,Django,pip等,系統(tǒng)的虛擬環(huán)境采用Python3.8,具體如下圖所示。圖5.1系統(tǒng)的配置圖片后臺程序需要連接數(shù)據(jù)庫,在settings.py文件中進行相應的配置,以下是配置內(nèi)容。DATABASES={'default':{'ENGINE':'django.db.backends.mysql',#數(shù)據(jù)庫引擎'NAME':'jd',#數(shù)據(jù)庫名稱'HOST':'54',#數(shù)據(jù)庫地址,本機ip地址'PORT':3379,#端口}}5.2數(shù)據(jù)爬取與存儲功能實現(xiàn)5.2.1在線開放的商品網(wǎng)站爬取頁面分析在線開放的商品網(wǎng)站是中國最大的綜合性電商平臺之一,創(chuàng)立于2004年。它以電子產(chǎn)品起家,逐步擴展到全品類商品,包括家電、家居、服裝、數(shù)碼、母嬰等,如今已成為中國消費者信賴的購物平臺,在線開放的商品網(wǎng)站中國電商行業(yè)的佼佼者。因此從這個平臺可以爬取到自己需要的商品相關(guān)數(shù)據(jù),然后便于使用這些數(shù)據(jù)進行商品銷量預測和進行商品推薦功能的實現(xiàn)。圖5.2爬取網(wǎng)站主頁面圖片5.2.2在線開放的商品網(wǎng)站網(wǎng)數(shù)據(jù)爬取在線開放的商品網(wǎng)站網(wǎng)數(shù)據(jù)設(shè)置有反扒設(shè)置,爬取到指定的網(wǎng)友之后需要對網(wǎng)頁需要的信息進行提取,這里使用Xpath進行提取,部分相關(guān)代碼如下。#使用xpath解析數(shù)據(jù),定位到id為J_goodsList的div標簽,然后再定位到所有的li標簽li_list=response.xpath('//div[@id="J_goodsList"]/ul/li')forliinli_list:item=JdGoodsItem()#使用xpath解析數(shù)據(jù),定位到id為J_goodsList的div標簽,然后再定位到所有的li標簽item['keyword']=keyword['keyword']item['title']=li.xpath('./div/div[@class="p-namep-name-type-2"]/a/em/text()').extract_first()……后通過管道講爬取的內(nèi)容保存到dataset/jd_goods.csv和dataset/jd_goods_commit.csv中。部分代碼如下。ifnotos.path.exists('dataset'):os.mkdir('dataset')ifnotos.path.exists('dataset/jd_goods.csv'):jd_goold=pd.DataFrame(columns=['shop_id','title','keyword','link','price','shop','commit','img'])jd_goold.to_csv('dataset/jd_goods.csv',index=False,encoding='utf-8')ifnotos.path.exists('dataset/jd_goods_commit.csv'):jd_goods_commit=pd.DataFrame(columns=['shop_id','content','creationTime','nickname','score'])jd_goods_commit.to_csv('dataset/jd_goods_commit.csv',index=False,encoding='utf-8')5.2.3數(shù)據(jù)上傳到Hadoop中系統(tǒng)使用Hadoop對數(shù)據(jù)進行保存和處理,獲取的數(shù)據(jù)需要上傳到Hadoop中,上傳的時候需要填寫Hadoop的IP等信息,部分代碼如下。importos#執(zhí)行命令hadoopfs-ls/查看是否創(chuàng)建成功hadoop_url='hdfs://:9000/{dir}/{file}'hadoop_upload_command='hadoopfs-put{local_path}{hadoop_path}'defupload_file_to_hadoop(local_path,hadoop_path):os.system(hadoop_upload_command.format(local_path=local_path,hadoop_path=hadoop_path))defloadFileList(dir):returnos.listdir(dir)commands=['hadoopfs-mkdirhdfs://:9000/jd','hadoopfs-mkdirhdfs://:9000/jd/dataset','hadoopfs-mkdirhdfs://:9000/jd/output',]#創(chuàng)建文件夾forcommandincommands:print(f'執(zhí)行命令:{command}')os.system(command)print('正在上傳文件:jd_goods.csv')upload_file_to_hadoop('dataset/jd_goods.csv',hadoop_url.format(dir='jd/dataset',file='jd_goods.csv'))print('正在上傳文件:jd_goods_commit.csv')upload_file_to_hadoop('dataset/jd_goods_commit.csv',hadoop_url.format(dir='jd/dataset',file='jd_goods_commit.csv'))5.3首頁功能實現(xiàn)通過以上步驟完成了數(shù)據(jù)的爬取和存儲,接下來就是系統(tǒng)可視化頁面展示階段了。系統(tǒng)前臺頁面通過Vue框架結(jié)合Element-ui等插件實現(xiàn),采用了DjangoWeb框架,后臺使用Python進行代碼的書寫[29]。具體如下圖5.2所示。圖5.3系統(tǒng)頁面數(shù)據(jù)訪問流程用戶進入本系統(tǒng)可查看系統(tǒng)主頁信息,可視化主頁面展示關(guān)鍵字詞云,商品各分類評價價格,商品關(guān)鍵字數(shù)量占比等相關(guān)可視化數(shù)據(jù)。主頁中的圖標數(shù)據(jù)主要是通過Echarts框架的功能,只需要創(chuàng)建對應的實體類,便可以獲取對應的展示信息[17]。圖5.4系統(tǒng)主界面圖5.4系統(tǒng)用戶注冊與登錄功能實現(xiàn)5.4.1用戶注冊界面用戶注冊流程圖和實現(xiàn)界面展示如圖5.5所示。注冊的本質(zhì)是后臺拿到前臺的數(shù)據(jù),注冊需要用戶填寫相關(guān)的注冊資料,其中用戶名是全站唯一,在注冊用戶信息時候需要先對用戶名進行一個校驗,如果用戶出現(xiàn)相同的則提示用戶已存在,請勿重復注冊[19]。圖5.5用戶注冊界流程圖與面圖5.4.2用戶登錄界面圖5.6用戶登錄流程圖與界面圖5.5商品列表頁面功能實現(xiàn)商品列表界面展示了商品的信息。當用戶點擊其中的一個商品之后,系統(tǒng)會獲取到該商品的信息,并通過這個商品的信息計算出和該商品的類似商品,完成商品推薦的功能。另外,根據(jù)系統(tǒng)也會根據(jù)隨機森林的計算器學習算法建預測模型[18],然后根據(jù)該商品的特征,獲取到未來7天的銷售熱度信息,然后通過折線圖進行展示。圖5.7商品列表界面圖5.6數(shù)據(jù)管理功能實現(xiàn)考慮到有的時候數(shù)據(jù)爬取的數(shù)據(jù)不完整,或者需要修改或者添加數(shù)據(jù),所以設(shè)置后臺的數(shù)據(jù)管理功能。圖5.8數(shù)據(jù)管理界面圖5.7本章小結(jié)展示商品銷量熱度預測功能。6系統(tǒng)測試6.1系統(tǒng)測試目的系統(tǒng)由于是個人開發(fā)的,開發(fā)過程中當然避免不了出現(xiàn)各類的問題,包括個人代碼的問題以及兼容性等問題。正是在這樣的背景下,需要進行測試,測試包括兼容性測試和典型測試用例的功能性測試兩類。6.2系統(tǒng)兼容性測試Django框架版本的使用上需要使用2.0.13以上的版本,MySQL需要安裝5.5版本,Python需要使用3.8版本,Hadoop使用3.3版本等[30]。6.3功能性測試具體如下表表6.1登錄測試用例名登錄測試目的測試登錄功能前提未登錄的情況下測試流程1)進入登錄頁面2)輸入用戶名和密碼3)提交測試結(jié)果1)用戶輸入錯誤信息,則無法跳轉(zhuǎn)2)用戶輸入正確信息,頁面跳轉(zhuǎn)到主頁面;是否符合預期是表6.2添加數(shù)據(jù)管理測試用例用例名添加數(shù)據(jù)管理測試用例目的測試管理員添加數(shù)據(jù)功能前提管理員用戶登錄系統(tǒng)測試流程1)點擊對應的操作欄目2)點擊新增3)填寫內(nèi)容后提交測試結(jié)果1)在相應的欄中展示新添加的數(shù)據(jù)。是否符合預期是表6.3數(shù)據(jù)爬取測試用例用例名數(shù)據(jù)爬取測試用例目的測試數(shù)據(jù)爬取信息功能前提爬蟲文件書寫完成測試流程運行爬蟲程序測試結(jié)果文本信息,存儲到dataset目錄下對csv文件中是否符合預期是6.4本章小結(jié)本章主要介紹了先對系統(tǒng)進行了兼容性的測試,然后在針對系統(tǒng)的主要功能進行了用例測試,測試結(jié)果表明,系統(tǒng)符合既定的功能需求目標。7結(jié)論這樣更方便前臺系統(tǒng)的維護和擴展。在后臺的技術(shù)使用上[6],為伴隨著人工智能的興起,越來越多的人投入到Python的學習當中,Python語言結(jié)合Django框架,可以大幅度減少系統(tǒng)的配置[31],讓開發(fā)者能夠更多的把精力致力于系統(tǒng)邏輯上。另外再加上大數(shù)據(jù)技術(shù)的發(fā)展,Hadoop的開源,讓這些技術(shù)可以讓小公司也能針對自己的用戶進行有效的分析,這樣便能夠更好的推出適合用戶使用的商品產(chǎn)品,立足于商業(yè)的競爭[5]。正是考慮到在線開放的上哦網(wǎng)站網(wǎng)作為一款受歡迎的在線商品銷售平臺,擁有大量的商品數(shù)據(jù)信息。為了更好地利用這些信息,開發(fā)了在線開放的商品網(wǎng)站43]。系統(tǒng)采用了Scrapy爬蟲技術(shù)進行數(shù)據(jù)的爬取,然后通過Xpath進行數(shù)據(jù)分析,最后通過Hadoop進行數(shù)據(jù)分布式存儲[47],通過Spark進行數(shù)據(jù)的分布式計算。由于本系統(tǒng)是一個Web網(wǎng)站,所以也設(shè)定了注冊和登錄功能,python的web框架采用Django,Django的使用可以極大的增加系統(tǒng)開發(fā)的效率[45],方便對數(shù)據(jù)的保存和使用。系統(tǒng)開發(fā)雖然結(jié)束,但是也是存在有一些問題的,比如在前臺技術(shù)的使用上,用了Vue腳手架和Echarts聯(lián)合開發(fā),這樣總體來說效率還是偏低的,主要是為了訓練Vue和Echarts的使用,因為現(xiàn)在也有BI大數(shù)據(jù)分析框架直接可以構(gòu)建簡單的數(shù)據(jù)分析圖[46]。

參考文獻[1]尹志鵬,&孔令外.基于大數(shù)據(jù)的網(wǎng)上商品的銷售數(shù)據(jù)分析系統(tǒng)研究[J].電子工程師,2018.6,36-38.[2]范杲.基于大數(shù)據(jù)的商品智能推薦管理系統(tǒng)的設(shè)計與實現(xiàn)[J].智能計算機與應用,2019.9(2),158-161.[3]付毅,趙展,&王立平.基于大數(shù)據(jù)的商品管理系統(tǒng)研究[J].電子設(shè)計工程,2019.27(17),87-91.[4]張立鈞,&高靖.基于大數(shù)據(jù)分析的醫(yī)療服務推薦系統(tǒng)研究[J].現(xiàn)代電子技術(shù),2019.42(16),101-104.[5]李丹,&張宏峰.大數(shù)據(jù)分析在網(wǎng)上商品的銷售數(shù)據(jù)分析系統(tǒng)中的應用研究[J].現(xiàn)代電子技術(shù),2019.42(16),97-100.[6]符笑良,&魏潤馨.基于大數(shù)據(jù)的健康飲食指南分享平臺[J].電子設(shè)計工程,2019.(22),78-80.[7]吳豪,許森,&楊麒麟.基于大數(shù)據(jù)和協(xié)同過濾算法的京東在線商品熱度分析與推薦系統(tǒng)研究[J].現(xiàn)代電子技術(shù),2018.41(15),108-110.[8]藺龍,劉喆,&張曉玲.基于大數(shù)據(jù)的商品市場調(diào)研與推薦系統(tǒng)研究[J].計算機測量與控制,2017.25(6),104-106.[9]李洪昌,周磊.基于PythonDjango框架的多媒體發(fā)布系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2018,8(2):4.[10]李平,劉小杰.新時期高職院校畢業(yè)生就創(chuàng)業(yè)生態(tài)系統(tǒng)培育模式探析[J].湖北函授大學學報,2020,033(012):5-7.[11]肖航,楊智,吳東.基于Django的網(wǎng)上書城系統(tǒng)的設(shè)計與實現(xiàn)[J].2021.[12]李洪昌,周磊.基于PythonDjango框架的多媒體發(fā)布系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2018,8(2):4.[13]申德榮,于戈,王習特,等.支持大數(shù)據(jù)管理的NoSQL系統(tǒng)研究綜述[J].軟件學報,2013,24(8):18.[14]鐘秀玉.基于ASP的網(wǎng)上商品銷售系統(tǒng)的設(shè)計與實現(xiàn)[J].吉林化工學院學報,2002,19(3):4.[15]康磊.基于交易成本模型的消費者網(wǎng)上商品接受程度研究[D].西南交通大學,2006.[16]周耿.網(wǎng)上商品熱銷的影響因素探析——基于分位數(shù)回歸的實證研究[J].財經(jīng)論叢(5):100-105[2024-04-07].[17]張瑞凌,彭佳紅.網(wǎng)上商品推薦系統(tǒng)設(shè)計研究[J].電腦知識與技術(shù):學術(shù)版,2016(1X):2.[18]阮光冊,周健超.商品屬性的情感表達與商品銷售熱度的相關(guān)性研究[J].圖書情報工作,2017,61(22):7.[19]曹文忠,彭皓月.智能電表大數(shù)據(jù)管理,分析和可視化方法研究[J].電子器件,2023,46(2):567-572.[20]于娜娜,王中杰.基于Spark的協(xié)同過濾算法的研究[J].系統(tǒng)仿真技術(shù),2016,12(1):6.[21]李爽.基于Spark的數(shù)據(jù)處理分析系統(tǒng)的設(shè)計與實現(xiàn)[D].北京交通大學,2015.[22]饒磊,楊凡德,李新明,等.基于熱度分析的動態(tài)副本創(chuàng)建算法[J].計算機應用,2014,34(A02):5.[23]金飄甜,梁友嘉,劉柳杉.武漢市武昌區(qū)公共自行車需求熱度分析及站點優(yōu)化——基于簽到數(shù)據(jù)的實證研究[J].現(xiàn)代城市研究,2018(2):7.[24]周中華,張惠然,謝江.基于Python的新浪微博數(shù)據(jù)爬蟲[J].計算機應用,2014,34(011):3131-3134.[25]耿大偉.基于Python技術(shù)的校園網(wǎng)搜索引擎的設(shè)計與實現(xiàn)[D].燕山大學[2024-04-07].[26]鐘志強.基于Python語言的大學物理實驗數(shù)據(jù)處理方法研究[J].鞍山師范學院學報,2016,18(2):5.[27]新浪微博.基于Python的微博用戶關(guān)系挖掘研究[J].20

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論