?

大數據技術在提升國民閱讀興趣方面應用的探索

2018-12-24 03:26王國珺
信息記錄材料 2018年12期
關鍵詞:結構化節點分析

王國珺

(福州職業技術學院 福建 福州 350000)

1 大數據的概念

人類已經進入了信息時代很多年了,隨著云時代的來臨,大數據(Big data)的概念越來越吸引了很多人的注意力。無論是云計算還是大數據,都是用來幫助人們解決問題的,特別是大數據的出現,在很多行業方面,讓人們的預測建立在海量的數據基礎之上,使預測結果更加準確和具有科學性。

2 當前中國民眾閱讀情況分析

中華民族有著五千多年的燦爛文明,自古以來就是一個熱愛閱讀的民族,歷史上也有很多關于愛讀書的故事。常言道:三更燈火五更雞,正是男兒讀書時,說的就是讀書的事情。據媒體報道,2012年中國人年均讀書0.7本,與韓國的人均7本,日本的40本,俄羅斯的55本相比,中國人的閱讀量少得可憐。

當然,因為現在人的閱讀方式多種多樣,統計結果不一定是最準確的。但是中國人的閱讀量在不斷的變少,這是大家有目共睹的事實。中國人的閱讀量在不停的減少,這其中的原因當然是多方面的。首先是由于生活的壓力,工作的時間很長,能夠自由閱讀的時間當然就變少了。其次,現在電子產品越來越多,電腦,電視,智能手機等,人們的娛樂方式更加多元化,娛樂搶占了人們更多的自由時間,閱讀時間當然少的可憐?,F在大部分不愛閱讀的第三個原因,是人們找不到自己感興趣的書籍,覺得好書,適合自己的書越來越少。以前,大家都是去圖書館漫無目的的逛,一本本的找自己適合的書,這個過程比較浪費時間,而且收獲不大。如何從技術角度,讓大家用最快的方式,最短的時間發現自己喜歡的書,這是我們這次討論的主要問題。

3 從技術角度,讓不同的人能夠更快捷更準確的找到自己喜歡的書

現在有了電子設備,特別是internet的普及,人們希望達到這樣的效果,希望在搜索地址欄中輸入地域、年齡、性別、個人愛好或者具體需求等一項或者多項,我們的網絡能夠自動搜索出適合這個讀者想看的圖書,以前,這基本是不可想象,遙不可及的事情,但是現在,有大數據的技術作為基礎,這就變成一個可以解決的問題。

4 主要實現過程和關鍵技術:

大數據技術按照解決事物的過程主要有圖1中各個部分組成:

圖1 大數據技術結構

4.1 數據來源

現在有專門的公司通過統計圖書的整體銷量,主要通過圖書城的銷售記錄,網上著名圖書網店的銷售流水等。

現在的數據來源與以前不同,以前的數據主要是來自各個系統的積累,主要是結構化數據,現在的數據主要來自網絡,數據的的結構也比較復雜,有結構化數據和非結構化數據。應該說像日志、歷史數據、用戶行為記錄等等這些事大數據的主要組成部分,他們幾乎都是半結構化或者非結構化數據。這種數據傳統的存儲技術無法解決。因此大數據進行存儲或者處理必須使用能夠兼容多種數據及軟硬件的平臺,而且要適應各種應用算法或者數據的提取轉換與加載(ETL)。

4.2 數據的存儲技術

現在,人們已經可以通過大數據的相關技術,統計出已經出版的圖書的銷量,主要銷售對象和銷售地域,這些都可以作為大數據統計的數據基礎。在選擇存儲技術時,既要考慮數據的存儲又要考慮數據處理的方式,我們采用目前比較流行的MySql的MyISAM作為存儲的基礎,因為他們在處理大量數據時,專門使用門設計的分布式集群查詢方式-MyFOX.

如下圖所示,是Mysql的一次查詢處理數據的過程:

圖2 MyFOX的數據查詢過程

MyFOX處理數據時,將數據中使用的比較頻繁的數據放置在存取速度比較快的硬盤上,將基本不會進行訪問的數據放置在比較老舊的硬盤上,這樣既提高了數據的訪問速度,還節約了成本。將訪問比較頻繁的數據成為“熱節點”,將基本不訪問的數據稱為“冷節點”,訪問示意圖如下圖所示:

圖3 MyFOX節點結構

4.3 數據的分析技術

數據在存儲之后,還要經過數據的清洗和標準化處理,因為現在的數據基本都是一些半結構化,或者非結構化數據,數據種可能存儲很多的空值、重復值或者不合理的值,我們經過清洗和標準化處理將這些數據轉變為可以分析和建模的數據。

現在數據分析的方式有很多,我們利用目前比較成熟的Hadoop開源框架。其主要原因一個是其能夠處理我們得到的非結構化數據,另一個主要原因是他可以運行在比較便宜的硬件上,減少了我們資金上的壓力。Hadoop是開源的框架,通過非常多的愛好者不停的改進他的核心技術,他的功能已經變得非常強大,完全可以完成我們的任務。他將大量的數據分成多個組成部分,運行在多臺廉價的機器上,這樣每一部分都能同時對數據進行處理和分析。

Hadoop缺省使用文件存儲系統是文件系統HDFS,HDFS在存儲數據時不需要把數據組織成關系型的行和列所以在存儲海量的非結構化和半結構化數據方面有優勢,為保證數據的可靠性,Hadoop將數據分成多個部分后,會將每個部分復制很多次,將每一部分加載到文件系統,這樣保證了如果某一個節點啟動失敗后,數據仍然有效。

數據在加載到集群中后,就做好了分析的準備,我們是通過MapReduce的框架來進行分析。我們需要提交提交一個“適合”的任務這個任務是用Java編寫的查詢語句,提交給給節點,這個節點稱為作業跟蹤器。這個作業跟蹤器用來確定我們要完成查詢需要訪問哪些數據,還有他要提交數據在集群的存儲地址。數據和數據地址確定后,作業跟蹤器負責給相關節點提交查詢結果。同樣,分析數據也是每個節點一起、同時處理。而不是將數據集中到一起以后在處理。

數據處理完畢后,要存儲結果,這需要hadoop啟動“Reduce”,俗稱規約,將映射階段(map階段)上存儲的每個節點上的結果取出來,加載到集群上的某一個節點上去。我們可以通過訪問這個節點上的結果數據,獲取分析結果。

接下來我們就使用分析工具進行分析,目前比較流行的分析工具是Pandas,它提供了很多分析函數,節省了我們編程的時間和過程。使用pandas首先是實現數據庫的連接,然后采用分析工具進行分析。

連接數據庫代碼如下:

importpandasaspd

from sqlalchemy importcreate_engine

# 創建一個mysql連接器,用戶名為user,密碼為1234

## 地址為127.0.0.1,數據庫名稱為tushu,編碼為utf-8

engine=create_engine('mysql+pymysql://user:1234@127.0.0.1:3306/tushu?charset=utf8')

print(engine)

最長常見的分析工具是DataFrame,他是一種數據結構,特別適合用來提取數據表中的部分數據,而切片是數據分析中最經常做的事情。

數據分析有了結果,接下來就是利用數據進行建模,建模工具主要包括聚類、分類和遞歸等,我們使用的是聚類中的Kmeans方法。

4.4 前臺實現技術

實現了數據的存儲和分析之后,最后要考慮的就是將分析結果進行應用,這里我們采用B/S的結構,開發使用大家應用較廣的java開發技術,主要實現前臺信息的輸入和關聯信息的輸出。

5 總結

所有的技術都是手段,讓我們這個有著五千年悠久歷史文化的文明古國,有著良好的閱讀傳統的民族,從內心真正愛上閱讀,提升自我修養才是最終的目的。

猜你喜歡
結構化節點分析
CM節點控制在船舶上的應用
促進知識結構化的主題式復習初探
改進的非結構化對等網絡動態搜索算法
隱蔽失效適航要求符合性驗證分析
基于AutoCAD的門窗節點圖快速構建
結構化面試方法在研究生復試中的應用
左顧右盼 瞻前顧后 融會貫通——基于數學結構化的深度學習
概念格的一種并行構造算法
電力系統不平衡分析
電力系統及其自動化發展趨勢分析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合