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