張雁涔
(忻州職業(yè)技術學院,山西 忻州 034000)
近幾年,國內蔬菜市場價格波動劇烈,嚴重影響?zhàn)B殖種植者的工作和消費者的生活,尤其當出現重大疫情及自然災害影響國家和人民運作生活時,建立一個完善的蔬菜銷售情況分析系統,可以讓人們能夠看到全國各地區(qū)蔬菜價格及銷售情況,從而不必恐慌,讓國家及有關政府能夠有效監(jiān)測農產品銷售波動[1],從而有針對性部署,已成為急切之事。 本文的蔬菜銷售情況分析可視化系統有助于同時搜集、分析、比較多種蔬菜種類的市場售價與相關數據,并根據不同時期的蔬菜價格漲跌情況進行分析和預判,主要可分為短期與中長期兩種情況。 此外,根據研究得到的成果將蔬菜當期的銷售現狀通過更為直觀的形式表現出來,可交給從事農業(yè)生產的企業(yè)或個體作為栽種參考,也可幫助當地政府部門在把控蔬菜市場價格動態(tài)方面提供宏觀數據,方便其進行決策[2]。
采用Python 語言,選取適合的算法以蔬菜價格波動為核心進行研究,構建一個以特征和影響為維度的蔬菜銷售情況的分析框架,形成一個用戶可操作的系統,優(yōu)化用戶體驗,為用戶提供更加直觀,方便使用的界面。
本文用Python 編程語言設計了蔬菜銷售情況分析系統,主要借助以下的幾種技術。
Phthon 在眾多計算機語言當中,屬于比較容易應用與功能較多的一種,使用該語言編寫的程序代碼屬于開源性質,可以兼容多種平臺;在編寫程序的過程中不但包括抽象類型也有函數類型,前者主要基于分析對象,后者則更側重于分析過程。 Phthon 語言既可以根據需要進行嵌入,也可以持續(xù)擴展內容,基于Phthon編就的數據庫較為豐富,能夠在其中根據需求進行下載或更換。
本系統的開發(fā)是以Django 作為基礎性框架,此應用也是由Phthon 語言編寫而成,同時也屬于開源類型,需要在Web 的應用框架當中進行使用。 由于Web 框架在建立之初是基于MVC 模式,即模型(Model)、視圖(View)和控制器(Controller)。 其中,控制器部分無需用戶自行調配,自動設定為系統默認。 因此,Django 框架中存在一種MTC 模式,即模型(Model)、模板(Template)與視圖(Views)[3]。
模型(Model),即數據存儲層,負責管理數據庫當中的各種信息,可以進行增添數據、刪減數據、修改數據或查詢數據等操作。
模板(Template),是表現層,當中負責的職能包括接收申請、處理請求與回復作答。
視圖(Views),屬于業(yè)務邏輯層,主要對退回的html 進行封存與建造。
爬蟲技術從本質上來說屬于算法語言編寫而成的腳本,適用于大多數網站和搜索引擎,可以根據特定要求在網絡上自動獲取相關信息,還可以按照要求爬取一定時間范圍內的數據并進行實時更新。 Web 爬蟲在實際操作過程中,需要把URL 種子加入下載列表,并直接在列表最前端選擇一個URL 下載鏈接,使爬蟲系統直接與網頁相連[4]。 成功爬取網頁所需內容之后,可以將其儲存到系統數據庫。 如果想繼續(xù)獲取網頁的其他數據,也可以將網頁鏈接作進一步解析,從中得到一個新的URL 種子,然后不斷重復上述步驟,直到目標信息全部獲取完畢,方可停止爬蟲系統的運行,然后將得到的信息整合后存儲到系統的MySQL 庫中,以便及時調取。
造成蔬菜售價發(fā)生變化的要素主要包括以下兩種:其一,存在于銷售市場內部,主要指的是產品供應與購買需求這兩個基礎性因素。 其二,外部因素的影響,包括政府制定政策以及發(fā)生農業(yè)類疫情災害等對價格的影響。 只有找出影響蔬菜價格主要因素,才能正確構建模型分析預測價格。
隨著網絡時代的發(fā)展,“互聯網+”得到了快速發(fā)展。 農業(yè)相關大數據分析主要用來做決策分析,包括價格趨勢預測、影響農產品價格的因素、農產品的區(qū)域特征分析等。 決策者在系統上了解到蔬菜的銷售情況并制定決策,銷售情況隨著價格波動改變,且影響著未來的銷售趨勢,從而影響很多的農戶或者商家。 基于這種情況,蔬菜銷售情況分析系統就應運而生了。
基于Python 的蔬菜銷售情況分析系統所用的數據需要通過爬蟲從農產品網中實時地進行數據采集,當需要處理的數據成功進入系統分析庫時,下一步為預處理環(huán)節(jié),即借助數據挖掘技術對現存數據作類型區(qū)分,并根據這些數據對未來的走向進行預判,系統流程如圖1 所示。
圖1 系統流程
基于Python 的蔬菜銷售情況分析系統,一般來說,數據流圖的類型主要有兩種,即頂層圖與分層圖。 為了讓數據分析結果更加清晰直觀,本系統只對頂層與0層的數據流圖進行制作。 其中,圖2 即頂層數據流圖。然后進一步作具體分析就得到了圖3 的0 層數據流圖。
圖2 頂層數據流
圖3 0 層數據流
本次研究過程中建立的蔬菜銷售分析系統,主要由Phthon 語言編寫而成,當中設置有多個功能板塊,主要有如下幾種:用戶板塊、管理板塊、數據展示板塊、數據處理板塊。
用戶登錄時,如果沒有賬戶,則需要注冊賬戶。 但是,應當指出的是,該賬戶不能修改。 系統當中的每個賬號都獨一無二,通過用戶名來進行區(qū)分。 在注冊界面上,需要準確填寫隨機形成的驗證碼,當完成注冊之后,系統會自動跳轉到登錄界面,用戶需要再次填寫用戶名與密碼,顯示登錄完成后,相應的用戶名也會被系統存儲到session 當中。 用戶之后可以在個人信息界面對基本信息和登錄密碼進行修改。
系統管理員有權限進入系統后臺,當成功登錄管理員賬號后,可以對自己的登錄密碼進行更換或查看用戶的相關信息。
本系統中的蔬菜信息都是通過爬蟲技術爬取的。所以數據處理模塊主要有數據采集、數據清洗、數據轉換、數據挖掘。
3.4.1 數據采集
利用Python 的爬蟲技術爬取各農業(yè)網站上的價格及影響因素的信息,該工具需能夠監(jiān)測網站數據的變化[5],然后將變化的網頁爬取下來用于后期的分析,具備解析網頁的能力。
3.4.2 數據清洗
去掉“臟”數據,在采集數據的時候,數據會可能出現殘缺、錯誤、重復等情況,為了確保數據的準確性、完整性、一致性、唯一性、適時性、有效性,就需要對數據進行“清洗”。
3.4.3 數據轉換
由于數據來自不同的網站,自然就有不同的語義和規(guī)范,所以需要對采集后的數據進行命名檢查將同種數據以同樣的命名來表示,使得系統內的數據達到一致性和完整性,還需要對數據質量進行判斷確保后面分析結果的準確性及合理性。
3.4.4 數據挖掘
數據挖掘的主要目的是為了發(fā)現隱藏的可用信息,而過程中需要先對海量數據進行搜集,然后才能建立相應的分析模型,在模型當中可以對數據進行基礎的分類操作,也可以對某項數據未來的走向進行預判[1]。 數據挖掘技術作為一項先進的技術應用,相比于人工檢索和處理信息的速度,顯然數據挖掘技術擁有更多優(yōu)勢,不僅可以同時處理較多數據信息,還能從中準確得出有價值的數據分析。
將提煉后得到的數據作可靠性與有效性等評估后,將數據分析進行可視化展示。
本次設計選擇的數據庫為MySQL,數據庫具體的操作工具為Navicat 可視化工具,嚴格遵循數據庫設計規(guī)則進行表table 的設計。 在數據庫的設計過程中,為了保證其完整性,表的設計完全按照一對一,一對多的規(guī)則進行。 本次設計的系統數據庫包括的信息有:管理員、用戶以及蔬菜信息,如圖4 所示。
圖4 總體設計的E-R 圖
本文基于Python 的蔬菜銷售情況分析系統還處于較為初期的實現階段,可以做出簡單的蔬菜價格預測以及銷售情況可視化展示。 并且對數據的預測是根據已知方程中各變量的數據,在實際應用時操作較為復雜且意義不大。 因此,未來將從這一點出發(fā),嘗試在數據未知的情況下對農產品市場價格進行預測和分析。本系統設計與開發(fā)時的主要困難在于數據的采集與處理。 由于爬蟲得到的數據量小,使得模型的效果并不明顯。 建立和完善農產品價格及其相關因素的短期信息系統,有利于提高研究蔬菜銷售情況分析的效率和研究范圍的覆蓋面。
隨著研究的深入,相關系統將走出理論層面,為政府及有關決策者制定政策提供有效的信息支持。 農業(yè)相關部門應結合技術對涉農信息資源進行收集整理,及時了解農民蔬菜種植定價情況并且了解人們生產生活中的蔬菜需求,以建立信息共享機制。 只有預測與展示時所依賴的數據信息真實全面、及時有效,此類銷售情況分析系統才能更貼近實際,也將繼續(xù)完善功能,提高其應用到實際生活中的可能性。