沈杰
(哈爾濱商業(yè)大學 黑龍江哈爾濱 150028)
現(xiàn)代化信息技術(shù)不斷推陳出新,涌現(xiàn)出很多新技術(shù),相應(yīng)的應(yīng)用系統(tǒng)也在迅猛涌現(xiàn),為數(shù)據(jù)信息存儲、分析和處理提供了極大的便利。科技發(fā)展的同時,數(shù)據(jù)信息規(guī)模不斷擴大,系統(tǒng)數(shù)據(jù)多是存儲在數(shù)據(jù)庫中,以結(jié)構(gòu)化數(shù)據(jù)形態(tài)存在。但非結(jié)構(gòu)化數(shù)據(jù)量也在不斷增加,通過文件形式存儲,信息過于碎片化,不便于后續(xù)的信息檢索和使用。由于數(shù)據(jù)潛在有價值信息無法得到有效挖掘和利用,無法滿足數(shù)據(jù)分析和處理需求,迫切地需要推動數(shù)據(jù)分析技術(shù)創(chuàng)新優(yōu)化。常見的數(shù)據(jù)分析軟件有SAS、SPSS、Matlab 幾種,但由于軟件成本高,安裝過程復(fù)雜,運行環(huán)境較高,因此實際應(yīng)用較為不便。而Python 是一種跨平臺的高級程序設(shè)計語言,內(nèi)容簡潔明了,并且便于后期功能擴展,數(shù)據(jù)庫標準化,將其引入數(shù)據(jù)分析領(lǐng)域取得了較為理想的成果。所以,Python逐漸成為數(shù)據(jù)分析領(lǐng)域的主要工具手段,有助于實現(xiàn)數(shù)據(jù)分析可視化,提取有價值信息,并且在Web上直觀展示。
Python是跨平臺的一種高級計算機應(yīng)用程序設(shè)計語言,正式發(fā)行于1991年,擁有豐富、強大的文件庫支持,可以滿足多種編程設(shè)計語言的模塊化文件信息提取和聯(lián)接?;赑ython可以快速改寫生成系統(tǒng)程序中的各個原型,依據(jù)技術(shù)特殊要求對某原型更改處理。Python是高級的編程語言,后期便于功能擴展,但同時Python 的多方面?zhèn)鬏斮|(zhì)量平衡問題無法規(guī)避,相較于C++編程語言傳輸較慢,因此多是應(yīng)用在數(shù)學圖像處理、科學圖像視頻處理、多媒體視頻應(yīng)用、文本W(wǎng)eb 視頻編程、PYMO 搜索引擎等領(lǐng)域??梢暬_源數(shù)據(jù)分析服務(wù)平臺,可以滿足在線數(shù)據(jù)分析、互動開源數(shù)據(jù)管理分析,同時配備了專門的下載幫助模塊功能,便于用戶更加便捷地下載使用[1]。
Python的優(yōu)勢非常鮮明,具有較強的應(yīng)用功能,在圖形用戶界面開發(fā)、信息系統(tǒng)開發(fā)以及游戲軟件系統(tǒng)開放等領(lǐng)域均有所應(yīng)用。Python 的兼容性較強,可以滿足常見的網(wǎng)絡(luò),主要是由于內(nèi)部配備了網(wǎng)絡(luò)中繼器,在不同網(wǎng)絡(luò)環(huán)境中運行程序時,可以同時支持多重網(wǎng)絡(luò),如urllib 以及socket 等。數(shù)據(jù)信息分析排重庫中,幫助用戶捕捉網(wǎng)頁或其他相關(guān)數(shù)據(jù)信息,提供數(shù)據(jù)框用于數(shù)據(jù)信息快速提取和分析,通過正則表達式來收集、分析和處理數(shù)據(jù)信息?;赑ython 進行數(shù)據(jù)分析和處理,憑借海量資源優(yōu)勢,可以快速捕捉所需要數(shù)據(jù)信息,完成信息提取需要[2]。另外,Python 的海量信息處理分析軟件庫豐富全面,具有擴展性功能,逐漸從傳統(tǒng)計算機領(lǐng)域朝著Web 領(lǐng)域延伸拓展,快速提取數(shù)據(jù)信息,加之配備了多類型的數(shù)據(jù)模型,實現(xiàn)數(shù)據(jù)快速提取和分析處理。
Python將神經(jīng)網(wǎng)絡(luò)和人工智能等數(shù)據(jù)資源整合在一起,在云端平臺即可實現(xiàn)兼容多種編程語言,借助專門的數(shù)據(jù)庫管理工具快速提取、分析和處理數(shù)據(jù),滿足云數(shù)據(jù)服務(wù)的多功能需求,在減少運營管理成本的同時,進一步縮短分析開發(fā)周期,整體效率也將大大提升。在項目數(shù)據(jù)中提取、整理和挖掘,并展示數(shù)據(jù)分析成果,不需要其他數(shù)據(jù)數(shù)據(jù)分析資源庫支持,用戶可以便捷地通過Python 完成數(shù)據(jù)分析整個過程,最大程度地避免數(shù)據(jù)分析錯誤轉(zhuǎn)化,切實提升大數(shù)據(jù)綜合應(yīng)用性[3]。相較于以往企業(yè)網(wǎng)頁設(shè)計數(shù)據(jù)處理,Python可以充分依據(jù)開發(fā)需求來建構(gòu)多樣化功能,還具有深度交互和學習功能,增強功能開發(fā)能力,實現(xiàn)數(shù)據(jù)信息高效、便捷處理,在加快產(chǎn)品程序開發(fā)效率提升方面同樣有著積極作用。Python 的數(shù)據(jù)圖表系統(tǒng),對于多類型數(shù)據(jù)圖表可以高效快速統(tǒng)計分析,實現(xiàn)全過程可視化,并且通過合理化的形象直觀呈現(xiàn),相較于其他應(yīng)用程序而言處理成本更低。
數(shù)據(jù)分析可視化,是通過對復(fù)雜數(shù)據(jù)信息整理、歸納和處理,采用多種形式將數(shù)據(jù)信息呈現(xiàn)出來,便于人們獲取所需要數(shù)據(jù)信息,并通過深度數(shù)據(jù)挖掘來獲取有價值信息。核心思想是將每一個數(shù)據(jù)項作為單獨的圖元元素表示,將大量數(shù)據(jù)集合在一起構(gòu)成數(shù)據(jù)圖像,并通過多維數(shù)據(jù)呈現(xiàn),多維度觀察和分析數(shù)據(jù)。數(shù)據(jù)分析中,對于可分類、有規(guī)律和有邏輯的數(shù)據(jù)可視化呈現(xiàn)表達,具體環(huán)節(jié)如下。
(1)數(shù)據(jù)讀取。獲取多來源的對象數(shù)據(jù),明確數(shù)據(jù)屬性和可視化用途。(2)數(shù)據(jù)化處理[4]。加工處理現(xiàn)有數(shù)據(jù),依據(jù)標準篩選和降維,為后續(xù)數(shù)據(jù)分析奠定基礎(chǔ)。由于Python 是一種高級的編程語言,可以跨平臺使用,可以清晰呈現(xiàn)數(shù)據(jù)信息在用戶面前,在促進工作效率提升方面有著積極作用。
數(shù)據(jù)分析可視化平臺,其中包括多個模塊,具體有數(shù)據(jù)分析模塊、數(shù)據(jù)采集模塊、結(jié)果展示模塊。采用Python 3.5 開發(fā),F(xiàn)lask 為Web 開發(fā)框架,數(shù)據(jù)庫為MySQL;使用Pandas 分次結(jié)構(gòu)化數(shù)據(jù),Matplotlib 滿足可視化需要;非結(jié)構(gòu)化數(shù)據(jù)中,分詞處理基于Jieba 實現(xiàn),詞云展示為Wordcloud,在PyCharm 2018 集成環(huán)境中進行平臺開發(fā)。平臺的數(shù)據(jù)處理流程如圖1所示。
圖1 數(shù)據(jù)處理流程
3.2.1 數(shù)據(jù)采集
數(shù)據(jù)采集階段,采集信息是否全面、準確,直接影響到后續(xù)數(shù)據(jù)分析結(jié)果合理性。因此,可以選擇Pandas的read SQL函數(shù)來提取數(shù)據(jù)庫中的數(shù)據(jù)?;贒ata Frame 的索引功能,實現(xiàn)數(shù)據(jù)庫表的數(shù)據(jù)信息檢索和存儲。常見的數(shù)據(jù)庫有SQL Server、Oracle 以及MySQL 等,借助Pandas 可以基于數(shù)據(jù)庫驅(qū)動與常用數(shù)據(jù)庫建立連接,將數(shù)據(jù)信息輸入Data Frame 中。為了滿足后續(xù)數(shù)據(jù)分析需要,將業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫連接字符串在數(shù)據(jù)分析可視化平臺數(shù)據(jù)庫中存儲,并且在數(shù)據(jù)庫中建立相對應(yīng)的視圖?;趓ead-excel 函數(shù)讀取文件中數(shù)據(jù)。結(jié)合實踐經(jīng)驗來看,在數(shù)據(jù)采集階段中經(jīng)常出現(xiàn)數(shù)據(jù)重復(fù)、丟失和數(shù)據(jù)異常等情況,這就需要在數(shù)據(jù)分析前對容易出現(xiàn)問題的數(shù)據(jù)預(yù)處理,比如:數(shù)據(jù)重復(fù)可以選擇刪除操作,數(shù)據(jù)缺失可以填充或刪除操作,在深入剖析導致數(shù)據(jù)信息異常原因基礎(chǔ)上,及時調(diào)整處理,全面保障數(shù)據(jù)信息準確性和真實性[5]。
3.2.2 數(shù)據(jù)分析
在數(shù)據(jù)分析階段,針對收集的數(shù)據(jù)信息要加深認知和熟悉,可以使用Pandas的head提前預(yù)覽少部分數(shù)據(jù),shape、info可以分別反饋數(shù)據(jù)表大小、數(shù)據(jù)類型,借助describe 了解具體數(shù)值分布情況。將需要分析的數(shù)據(jù)篩選出來,基于數(shù)據(jù)計算、分組和查詢等一系列操作,實現(xiàn)數(shù)據(jù)信息高質(zhì)量分析。使用Pandas 中的tosql 函數(shù),將分析結(jié)果寫入可視化平臺數(shù)據(jù)庫中,在Web瀏覽器上直觀呈現(xiàn)。
3.2.3 數(shù)據(jù)可視化
Python 中的Matplotlib 擁有豐富的圖表數(shù)據(jù)資源,可以跨平臺生成高質(zhì)量的圖形,兼容性較強,主要是通過硬拷貝格式實現(xiàn)。Matplotlib 文檔完備,與Matlab 一樣配備了相似的API,在交互式繪圖方面有著積極優(yōu)勢。具體可以生成餅狀圖、散點圖、柱狀圖以及折線圖等。Pandas 分析結(jié)果,可以借助Matplotlib 可視化呈現(xiàn),也可以直接在平臺數(shù)據(jù)庫中提取數(shù)據(jù)信息,可視化呈現(xiàn)[6]。
3.2.4 案例系統(tǒng)
案例系統(tǒng)可以滿足用戶之間信息交流需要,共享案例經(jīng)驗,跨平臺交互。通過引入實際案例,可以促進用戶深入理解和分析,理解數(shù)據(jù)分析結(jié)果并實際應(yīng)用,針對性解決系統(tǒng)實際應(yīng)用中存在的問題。案例展示界面配備了詳細的背景描述,同時有多類型的數(shù)據(jù)信息支持。在了解相關(guān)案例后,遵循操作步驟可以自行操作,更進一步加深數(shù)據(jù)分析結(jié)果,在此基礎(chǔ)上分析和處理問題,共享問題解決經(jīng)驗。
3.3.1 數(shù)據(jù)采集
伴隨著結(jié)構(gòu)化數(shù)據(jù)量增加,非結(jié)構(gòu)化數(shù)據(jù)信息總量也在隨之增加,包括PPT 文檔、Word 文檔以及視頻等非結(jié)構(gòu)化數(shù)據(jù),主要是采用文件形式存儲,但是由于文件過于碎片化,后期文件檢索難度較大,耗費時間長,不便于文件的有效利用。因此,為了滿足后期數(shù)據(jù)分析和處理需要,非結(jié)構(gòu)化數(shù)據(jù)要做好前期預(yù)處理工作,比如:視頻文件可以借助MoviePy 庫,從視頻文件中提取音頻數(shù)據(jù)文件,借助平臺的語言轉(zhuǎn)化功能,將音頻文件轉(zhuǎn)化為本;Word 文件,基于Python-docx,將Word 文檔中的文本內(nèi)容提取出來;PDF 文件內(nèi)容,使用pdfminer3k 庫提??;PPT 課件,使用Python-pptx 庫提取[7]。
3.3.2 詞頻統(tǒng)計可視化
由于中文主要是以字作為基本單位,所以詞語之間并沒有確切的區(qū)分標記,所以關(guān)于中文文本詞頻統(tǒng)計需要分詞處理,自動化切分詞語,然后進行統(tǒng)計。作為Python 中的一項常用中文分詞庫,Jieba 可以自動化將需要分詞的內(nèi)容與詞庫對比檢索,找到對應(yīng)的詞組。Jieba的分詞模式有保羅全模式、索索引擎模式以及精確模式3 種,即便是繁體字詞,也可以支持自動化分詞,對于Jieba 詞庫中并沒有收錄的詞,可以自定義詞典予以處理。即便Jieba 詞庫具有突出的詞語識別能力,但可以讓用戶自行添加新詞,這樣可以大大提升準確率。
詞云是將詞語作為基本單位,對于出現(xiàn)頻率高的關(guān)鍵詞突出顯示,更加直觀,形成彩色圖片。此種方式可以將低頻文本信息篩選過濾,遵循相應(yīng)標準,只需要簡單掃過即可了解到文本主題內(nèi)容,目前詞云已經(jīng)成為文本數(shù)據(jù)可視化的有效方式。Python 的Wordcloud是文本生成詞云的庫,基于詞云圖即可了解非結(jié)構(gòu)化數(shù)據(jù)主要內(nèi)容。非結(jié)構(gòu)化數(shù)據(jù)信息的處理和管理,可以提前將對應(yīng)文本、非結(jié)構(gòu)化數(shù)據(jù)文件和詞云圖等文件路徑輸入平臺數(shù)據(jù)庫中,重點將出現(xiàn)頻率高的關(guān)鍵詞輸入數(shù)據(jù)庫,定期更新和完善。
基于Python 的數(shù)據(jù)分析可視化平臺,具有產(chǎn)品數(shù)據(jù)分析功能。通過輸入和分析客戶數(shù)據(jù)信息,可以反饋客戶需求,結(jié)合客戶喜好和需求來針對性調(diào)整生產(chǎn)方案,更具針對性地開發(fā)產(chǎn)品和提供服務(wù)。對于可視化數(shù)據(jù)的應(yīng)用,伴隨著數(shù)據(jù)分析技術(shù)不斷成熟發(fā)展,開始在諸多領(lǐng)域中引用此項技術(shù),如工程、地圖、城市規(guī)劃等領(lǐng)域??梢哉f,數(shù)據(jù)可視化技術(shù)的涌現(xiàn),為社會生產(chǎn)生活帶來了極大的便利,可以梳理數(shù)據(jù)思維,獲取所需要的數(shù)據(jù)信息。目前,美國已經(jīng)對可視化數(shù)據(jù)的研究力度不斷增加,并將其應(yīng)用到諸多領(lǐng)域,如人口、氣候。因此,應(yīng)積極探索和研究可視化數(shù)據(jù)應(yīng)用,摸索數(shù)據(jù)規(guī)律,令數(shù)據(jù)更加清晰呈現(xiàn),高效完成各項任務(wù)。
由于數(shù)據(jù)信息規(guī)模大,內(nèi)容繁瑣,對重要信息提取和挖掘具有不良影響,因此需要將繁瑣數(shù)據(jù)信息加工處理呈現(xiàn)。通過數(shù)據(jù)分析、篩選和處理,基于圖形和表格等方式直觀呈現(xiàn),也可以依據(jù)需要選擇水球圖、餅圖、3D 圖形、樹狀圖形以及折線圖等,有邏輯、有規(guī)律地呈現(xiàn)數(shù)據(jù),便于挖掘數(shù)據(jù)規(guī)律,為后續(xù)數(shù)據(jù)處理和應(yīng)用提供支持[8]。
基于Python 的數(shù)據(jù)分析可視化平臺,提供開源論壇模塊,用戶可以在論壇模塊中自由交互和學習,深入掌握算法數(shù)據(jù)結(jié)構(gòu)分析和算法應(yīng)用實現(xiàn)方式,充分掌握各種算法。在此基礎(chǔ)上,依據(jù)個性化需求二次開發(fā),進一步激發(fā)用戶的開發(fā)與研究興趣。
Python的Matplotlib自動化生成圖表,Wordcloud生成詞云圖,均是本地存儲,用戶無法在遠程查看獲取,因此還需要將圖像在Web 上發(fā)布。Flask 是輕量級的Web 框架,借助WSGI 工具箱的Werkzeug,選擇Jinja2模板引擎。Flask 中并不涵蓋抽象訪問層,在SQLAlchemy 基礎(chǔ)上精簡優(yōu)化Flask-SQLAlchemy 操作。此種方式,充分發(fā)揮Flask-SQLAlchemy 優(yōu)勢來高效數(shù)據(jù)分析,便于在可視化平臺上高效處理數(shù)據(jù)信息。需要注意的是,為了便于在Web上進行結(jié)構(gòu)化數(shù)據(jù)信息交互,可以選擇參數(shù)、圖表等可視化數(shù)據(jù),按照服務(wù)器參數(shù)自動化生成圖表數(shù)據(jù),在Web 上發(fā)布交互。伴隨著客戶端參數(shù)調(diào)整,圖表參數(shù)也會隨之變化,因此不適合在服務(wù)器磁盤上存儲,直接從內(nèi)存中提取Matplotlib自動化生成圖表,使用Base64 編碼處理,最后在Web 上發(fā)布呈現(xiàn),此種方式可以減少服務(wù)器IO 操作,系統(tǒng)的響應(yīng)速度大大增加,為用戶提供優(yōu)質(zhì)服務(wù)。
#寫入內(nèi)存,基于BytesIO 對象存儲png 圖像在內(nèi)存中。
非結(jié)構(gòu)化數(shù)據(jù)信息,基于Web 瀏覽器上傳或下載,首先提取非結(jié)構(gòu)化中的文本信息,并通過詞頻統(tǒng)計自動化生成詞云。需要注意的是,非結(jié)構(gòu)化數(shù)據(jù)的文本詞云是固定不變的,可以直接在云端服務(wù)器上存儲詞云圖。瀏覽器端在發(fā)出請求后,F(xiàn)lask的Web頁面自動化加載詞云圖,并傳輸?shù)綖g覽器上呈現(xiàn)。使用Flask可以實現(xiàn)Web 頁面上非結(jié)構(gòu)化數(shù)據(jù)信息檢索,為用戶提供更加便捷、優(yōu)質(zhì)的服務(wù)。
在信息時代背景下,網(wǎng)民數(shù)量不斷增加,因此相應(yīng)的數(shù)據(jù)信息總量也在不斷增長,如何從海量信息中挖掘有價值信息面臨著嚴峻挑戰(zhàn)。比如:我國電子商務(wù)飛快發(fā)展,越來越多用戶習慣網(wǎng)上購物,基于數(shù)據(jù)分析和數(shù)據(jù)挖掘,可以了解用戶的購物需求和傾向,并反饋用戶對產(chǎn)品或服務(wù)的滿意程度。商家應(yīng)該加強產(chǎn)品研發(fā)、制作和銷售各環(huán)節(jié)監(jiān)管,適當?shù)靥嵘郎嗜腴T檻,由專業(yè)能力較強的人員負責,全方位保障產(chǎn)品質(zhì)量。
通過數(shù)據(jù)分析,可以摸索數(shù)據(jù)規(guī)律,從中摸索出客戶需求,有針對性地調(diào)整策略方向,以便于留住更多新客戶?;赑ython 進行數(shù)據(jù)分析,可以實現(xiàn)數(shù)據(jù)信息統(tǒng)計和分類,比如:使用條形圖來深層次剖析用戶對產(chǎn)品質(zhì)量不滿意點所在,充分數(shù)據(jù)調(diào)查基礎(chǔ)上,調(diào)整方案。也可以借助微博、微信和抖音等新媒體平臺發(fā)起投票,將投票的數(shù)據(jù)采用Python進行數(shù)據(jù)分析,選擇折線圖方式來直觀清晰地挖掘數(shù)據(jù)潛在價值,有針對性地調(diào)整產(chǎn)品設(shè)計方案,滿足市場上多元化需求。
總而言之,基于Python 數(shù)據(jù)分析的可視化平臺建構(gòu),有助于充分發(fā)揮Python 優(yōu)勢,提供豐富數(shù)據(jù)庫,跨平臺操作,拓寬數(shù)據(jù)分析深度和廣度,從海量信息中提取有價值信息,為后續(xù)數(shù)據(jù)利用提供可靠支持。