一、引言
微博即微型博客(micro-blogs),是一種允許用戶及時更新并可以公開發(fā)布簡短文本(通常在140字左右)的博客形式。微博的快速發(fā)展使得任何人都可以成為微博用戶,成為一個區(qū)分于傳統(tǒng)媒體的“自媒體”。這種用戶驅(qū)動的信息創(chuàng)造模式產(chǎn)生信息的速度快,信息量在逐級的傳播中變得海量。對微博信息進(jìn)行挖掘和分析,關(guān)注其中的社會熱點(diǎn)話題,可探尋其規(guī)律并預(yù)測動向,分析熱點(diǎn)事件的輿論趨勢,特別是微博信息傳播的實(shí)時性可以應(yīng)用于突發(fā)性社會事件和自然事件的監(jiān)測和預(yù)警。
二、國內(nèi)外研究現(xiàn)狀
通過對微博信息的挖掘,可以獲取相關(guān)的商業(yè)信息,人際關(guān)系信息,熱點(diǎn)新聞,趨勢信息等內(nèi)容,以及對歷史事件進(jìn)行相關(guān)的分析總結(jié)。
進(jìn)行微博信息挖掘,需要處理海量的用戶信息和微博內(nèi)容。把Hadoop應(yīng)用于數(shù)據(jù)挖掘領(lǐng)域,國內(nèi)外學(xué)者也有所探索,文獻(xiàn)[2]提出了一種基于數(shù)據(jù)分割技術(shù)和遺傳算法的混合算法DS-PGA,該算法結(jié)合了數(shù)據(jù)分割技術(shù)的分布式處理和遺傳算法的全局搜索最優(yōu)解的優(yōu)點(diǎn),使得改進(jìn)后的算法更適合在分布式計算環(huán)境中執(zhí)行。文獻(xiàn)[3]針對云計算環(huán)境下的關(guān)聯(lián)規(guī)則挖掘算法展開研究,對Apriori算法進(jìn)行了改進(jìn),給出了改進(jìn)的算法在Hadoop中的Map/Reduce編程模型上的執(zhí)行流程;通過一個簡單的頻繁項(xiàng)集挖掘?qū)嵗故玖烁倪M(jìn)的算法的執(zhí)行效率及實(shí)用性。
從國內(nèi)外研究現(xiàn)狀可以看出,對微博信息的挖掘還處于起步階段,本文將結(jié)合微博數(shù)據(jù)挖掘的實(shí)際需求,利用分布式和虛擬化技術(shù),設(shè)計并實(shí)現(xiàn)基于Hadoop的微博信息挖掘系統(tǒng),展示挖掘的相關(guān)信息。
三、基于Hadoop微博信息挖掘系統(tǒng)設(shè)計
Hadoop主要由HDFS、MapReduce和Hbase組成。它是一個分布式系統(tǒng)基礎(chǔ)架構(gòu)。Hadoop的特性使得Hadoop可以用于處理海量數(shù)據(jù)的分析和挖掘處理。
微博信息挖掘系統(tǒng)設(shè)計分為四個模塊:數(shù)據(jù)獲取,數(shù)據(jù)存儲,數(shù)據(jù)挖掘和數(shù)據(jù)展示,系統(tǒng)架構(gòu)設(shè)計如圖1所示,本節(jié)將討論各個模塊需是實(shí)現(xiàn)的功能及其技術(shù)路線。
圖1 基于Hadoop的微博信息挖掘系統(tǒng)框架結(jié)構(gòu)
(一)數(shù)據(jù)獲取
數(shù)據(jù)獲取指從微博平臺中獲取微博信息,包含用戶信息,微博內(nèi)容等,獲取方式包含兩種:API方式和Web爬蟲方式。API方式指通過調(diào)用各微博服務(wù)提供商提供的接口獲取微博信息,而Web爬蟲方式指通過訪問微博平臺的WEB頁面,解析頁面相關(guān)內(nèi)容,獲取所需信息。
系統(tǒng)通過Web爬蟲的方式獲取用戶的微博ID,然后再使用微博服務(wù)提供商提供的API進(jìn)一步獲取用戶的詳細(xì)信息和微博內(nèi)容,這種做的優(yōu)點(diǎn)是通過Web爬蟲的方式過濾掉了非認(rèn)證用戶,同時盡可能的減少了API調(diào)用次數(shù),將有限的API調(diào)用資源用于獲取用戶的微博內(nèi)容。
數(shù)據(jù)獲取模塊的架構(gòu)設(shè)計如下:
圖2 數(shù)據(jù)獲取模塊的架構(gòu)設(shè)計
(二)數(shù)據(jù)存儲
由于需要處理海量數(shù)據(jù),數(shù)據(jù)存儲將采用Hadoop的HDFS。存儲系統(tǒng)采用二個開源框架搭建(Hadoop、Hive),其中Hadoop提供分布式系統(tǒng)基礎(chǔ)框架,Hive提供基于SQL語句的數(shù)據(jù)查詢。
(三)數(shù)據(jù)挖掘
為了充分利用Hadoop的分布式特性,基于Hadoop的數(shù)據(jù)挖掘算法應(yīng)該具有并行性;跀(shù)據(jù)劃分的方法是普遍采用一種并行處理的方法:首先將數(shù)據(jù)集合劃分為適當(dāng)?shù)淖訅K,然后在各個子塊上用傳統(tǒng)的挖掘算法(如Aprior算法)進(jìn)行處理,最后將各個子塊上的結(jié)果進(jìn)行合并。
數(shù)據(jù)挖掘一般處理過程包括:數(shù)據(jù)清理->數(shù)據(jù)集成->數(shù)據(jù)選擇->數(shù)據(jù)變換->數(shù)據(jù)挖掘->模式評估->知識表示。在做數(shù)據(jù)挖掘之前很重要的一步就是數(shù)據(jù)轉(zhuǎn)換,即將數(shù)據(jù)變換或統(tǒng)一成適合挖掘的形式,例如經(jīng)過數(shù)據(jù)倉庫匯總或聚集。這里采用Hive來完成這項(xiàng)工作。Hive是一個建立在Hadoop之上的類似數(shù)據(jù)倉庫的結(jié)構(gòu),它提供了可以非常簡單的數(shù)據(jù)ETL(extract-transform-lOAd)的工具,也提供了往Hive框架中裝入數(shù)據(jù)的機(jī)制,而且提供了對存儲在HDFS中的大數(shù)據(jù)集的查詢和分析功能。Hive定義了簡單的類SQL查詢語言,稱為HQL,它允許熟悉SQL的用戶查詢數(shù)據(jù)。同時,HQL允許熟悉MapReduce開發(fā)者的開發(fā)自定義的Mapper和Reducer來處理內(nèi)建的Mapper和Reducer無法完成的復(fù)雜的分析工作。
(四)數(shù)據(jù)展示
數(shù)據(jù)展示是指將數(shù)據(jù)挖掘的結(jié)果用WEB頁面的方式進(jìn)行展示。數(shù)據(jù)定期進(jìn)行挖掘操作,挖掘的結(jié)果將單獨(dú)存放在MYSQL數(shù)據(jù)庫中,數(shù)據(jù)展示模塊直接與MYSQL數(shù)據(jù)庫進(jìn)行交互。這樣部署的優(yōu)勢在于將數(shù)據(jù)存儲和數(shù)據(jù)挖掘模塊分開,降低模塊之間的耦合度。
四、熱點(diǎn)話題的獲取
熱點(diǎn)話題是指在特定的時間段內(nèi)出現(xiàn)頻率較高或傳播范圍較廣的主題特征詞。獲取熱點(diǎn)話題可以關(guān)注微博討論熱點(diǎn),從中獲知有價值的相關(guān)信息。熱點(diǎn)話題的獲取包括分詞處理,熱點(diǎn)詞元獲取和話題提取三個步驟,分別描述如下:
(一)分詞處理
分詞指的是將一個漢字語句切分成一單獨(dú)的詞語。由于微博可能有上百字的內(nèi)容,為了獲得話題,需要對內(nèi)容進(jìn)行分詞。常用的分詞工具較多,這里選取IK Analyzer 3.0作為熱點(diǎn)話題獲取的分詞工具,IK Analyzer是一個開源的,基于java語言開發(fā)的輕量級的中文分詞工具包。IK Analyzer支持自定義停詞表和詞庫,可以具有更大的擴(kuò)展能力。
(二)熱點(diǎn)詞元獲取
公式(1)中,Wij表示在文檔dj中,關(guān)鍵字 所占的比重。 由其Wij對應(yīng)的TFij值和IDFi值計算得出。這兩部分的計算公式如公式(2)和公式(3)所示。在公式(2)和公式(3)中,F(xiàn)ij表示關(guān)鍵字Ki 在文檔dj中的出現(xiàn)頻率,文檔dj中包含T個關(guān)鍵字,N表示文檔總數(shù), Nj表示包含關(guān)鍵字Ki的文檔總數(shù)。
公式(1)中, 表示在文檔 中,關(guān)鍵字 所占的比重。 由其對應(yīng)的 值和 值計算得出。這兩部分的計算公式如公式(2)和公式(3)所示。在公式(2)和公式(3)中, 表示關(guān)鍵字 在文檔 中的出現(xiàn)頻率,文檔 中包含 個關(guān)鍵字, 表示文檔總數(shù), 表示包含關(guān)鍵字 的文檔總數(shù)。
在熱點(diǎn)話題提取算法的應(yīng)用場景下,整個數(shù)據(jù)集中大量微博中出現(xiàn)的主題特征詞也應(yīng)該被識別出來,而TF-IDF算法可能會忽略這些熱點(diǎn)詞。所以在短文本主題特征詞提取的場景下,TF-IDF并不適合提取主題特征詞,微博信息挖掘系統(tǒng)設(shè)計的主題特征詞提取算法如下所示:
公式(4)中的 表示詞元 在當(dāng)天的所有微博中的詞頻總數(shù), 和 分別表示微博j的轉(zhuǎn)發(fā)數(shù)和評論數(shù)。需要指出的是,熱點(diǎn)詞元的獲取的時間是以一天為基本單位的,在對微博內(nèi)容分詞時,通過添加停詞庫,已去除了干擾主題詞提取的詞匯。在獲得當(dāng)天微博中所有詞元的詞頻后,對詞頻進(jìn)行排序,然后獲取TOP200的詞元,作為當(dāng)天的熱點(diǎn)詞元庫,然后分別對每條微博做主題特征詞提取,如公式(6)所示。每條微博取5個詞元做主題特征詞。
(三)話題提取
在獲取了每條微博的5個主題特征詞后,需要提取當(dāng)天的熱點(diǎn)話題,在話題提取時,不關(guān)注內(nèi)容過短(長度小于15)的微博,因?yàn)檫@些微博過短,沒有形成語句來描述一個事件,更多是類似“我在吃三明治”之類的無意義的嘀咕。
這里采用分布式Apriori算法來進(jìn)行主題特征詞的關(guān)聯(lián)規(guī)則頻繁項(xiàng)集挖掘。Apriori算法的基本思想是:首先找出所有的頻集,這些項(xiàng)集出現(xiàn)的頻繁性至少和預(yù)定義的最小支持度一樣。然后由頻集產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則,這些規(guī)則必須滿足最小支持度和最小可信度。然后使用前面找到的頻集產(chǎn)生期望的規(guī)則,產(chǎn)生只包含集合的項(xiàng)的所有規(guī)則,其中每一條規(guī)則的右部只有一項(xiàng),這里采用的是中規(guī)則的定義。在Hadoop中應(yīng)用Apriori算法時,需要對Apriori算法進(jìn)行改進(jìn),使之能夠充分利用MapReduce框架的優(yōu)勢進(jìn)行計算。這里采用文獻(xiàn)[4]提出的基于云計算的Apriori算法來做主題詞的關(guān)聯(lián)分析。
五、實(shí)驗(yàn)結(jié)果及分析
挖掘系統(tǒng)采用云計算和虛擬化技術(shù),搭建了一個小規(guī)模的Hadoop集群,集群共計有6個節(jié)點(diǎn),集群配置情況如下:master節(jié)點(diǎn)雙核CPU、4G內(nèi)存;slave節(jié)點(diǎn)雙核CPU、2G內(nèi)存。CPU型號為Intel Xeon E5606。
(一)熱點(diǎn)獲取
這里選取2011年12月30的獲取的微博數(shù)據(jù),微博數(shù)為151684條。通過熱點(diǎn)話題的獲取后,取得前10話題如表1所示:
表1 熱點(diǎn)事件列表
從挖掘的結(jié)果看,挖掘的熱點(diǎn)事件基本反映了微博的熱點(diǎn)內(nèi)容,例如年末的“年終獎”、“春晚”等。
(二)事件跟蹤
對熱點(diǎn)事件,可以通過跟蹤其熱點(diǎn)情況,及時了解事件的趨勢。這里以日本大地震為例,選取時間段2011年3月1日至2011年4月15日共計3375210條微博,其中討論“日本”、“地震”的相關(guān)微博有120169條,通過統(tǒng)計和挖掘,得到事件的發(fā)展趨勢圖如下所示:
圖3 日本地震熱點(diǎn)趨勢圖
六、結(jié)束語
本文設(shè)計了基于Hadoop的微博信息挖掘系統(tǒng),并設(shè)計了熱點(diǎn)事件的挖掘算法,通過在Hadoop分布式平臺上驗(yàn)證,獲取了期望的挖掘結(jié)果,證明了平臺和算法的可行性。對Hadoop應(yīng)用于數(shù)據(jù)挖掘領(lǐng)域提供了較好的參考意義。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于Hadoop的微博信息挖掘
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112156729.html