• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種分布式的輿情分析系統(tǒng)架構(gòu)

      2013-08-10 03:42:06黃宇鵬郝志峰蔡瑞初肖曉軍
      電信科學 2013年7期
      關(guān)鍵詞:爬蟲博主輿情

      黃宇鵬 ,袁 暢 ,郝志峰 ,蔡瑞初 ,肖曉軍 ,盧 宇

      (1.廣東工業(yè)大學計算機學院 廣州 510006;2.廣州優(yōu)億信息科技有限公司 廣州 510630)

      1 引言

      隨著互聯(lián)網(wǎng)用戶數(shù)量的快速增長,網(wǎng)絡越來越成為人們獲取與發(fā)布信息的主要渠道[1],特別是社交網(wǎng)絡(如Twitter、Facebook、微博等)的出現(xiàn),使得人們獲取和發(fā)布信息更加快速和方便。與此同時,網(wǎng)絡上也產(chǎn)生大量對各行各業(yè)的輿論信息,這些信息可能包括正面評論,也有可能包含負面議論,有可能會對個人、企業(yè)甚至是整個社會產(chǎn)生重要的影響。另外,社交網(wǎng)絡數(shù)據(jù)中還潛在著巨大的商業(yè)價值。例如,對于電信企業(yè)來說,客戶的社交網(wǎng)絡分析(SNA)是非常有價值的,通過測算識別客戶與客戶之間關(guān)系所形成的圈子以及圈子中各客戶角色的判定(領袖者是誰,追隨者是誰),形成企業(yè)對各個客戶影響力和價值的判斷,在此基礎上,利用對這些圈子、角色和影響力的認識,幫助企業(yè)實現(xiàn)相關(guān)營銷活動或產(chǎn)品套餐的推廣,提高企業(yè)營銷和運營管理的效率[2]。

      面對互聯(lián)網(wǎng)數(shù)據(jù)的不斷增多以及社交數(shù)據(jù)的出現(xiàn),如何利用計算機和網(wǎng)絡技術(shù)設計相應的輿情系統(tǒng),以能夠快速有效地收集、分析這些數(shù)據(jù),并生成有用的輿情匯報信息,是許多學者關(guān)心的問題。目前,國內(nèi)外學者在輿情分析方面做了許多相關(guān)的工作。

      [3]通過對系統(tǒng)的業(yè)務流程和功能進行分析,給出了輿情分析系統(tǒng)的組成模塊,分別為輿情信息源選擇、輿情信息采集、輿情信息分析和輿情信息報告,并由此把系統(tǒng)架構(gòu)設計為輿情搜索引擎和輿情分析引擎兩大部分。參考文獻[4]中,根據(jù)系統(tǒng)的需求,分析整個數(shù)據(jù)處理的流程,將系統(tǒng)分為兩個模塊:網(wǎng)絡爬蟲模塊和輿情分析模塊。參考文獻[5]采用3層架構(gòu),分別為數(shù)據(jù)資源層、系統(tǒng)分析層和應用層。大多數(shù)輿情分析系統(tǒng)都考慮了數(shù)據(jù)的收集和分析,但如何應對海量數(shù)據(jù)的處理也是系統(tǒng)設計所必須考慮的問題。在海量數(shù)據(jù)處理方面,學者們也做了許多相關(guān)的工作。聞劍峰和石屹嶸[6]提出以分布式計算實現(xiàn)電信數(shù)據(jù)分析業(yè)務加速的研究,并對比傳統(tǒng)的方案做了對比,達到了很好的加速效果。黎宏劍、劉恒等[7]基于Hadoop分布式云平臺對電信的海量數(shù)據(jù)進行處理,解決了電信運營商對海量電信數(shù)據(jù)管理和分析難的問題??梢?,采用分布式計算技術(shù)(如MPI),建立并行計算環(huán)境,成為提升系統(tǒng)分析效能的主要手段[8]。

      本文以分布式平臺為基礎,搭建了輿情分析系統(tǒng)的架構(gòu),以解決海量數(shù)據(jù)的存儲與分析問題。架構(gòu)適用于不同應用的數(shù)據(jù)分析,并能夠集成多種數(shù)據(jù)分析算法,為輿情分析應用提供了一個寬廣的空間。從多個方面對架構(gòu)進行分析,根據(jù)分析結(jié)果進行設計,最后針對新浪微博,給出架構(gòu)的實例應用,驗證了架構(gòu)的可行性。

      2 系統(tǒng)架構(gòu)

      2.1 架構(gòu)分析

      目前大多數(shù)輿情分析系統(tǒng)都是基于某類特定算法實現(xiàn)的,并且系統(tǒng)的設計大多也基于單機模型。對于一些應用,可能需要多種算法進行分析,或者面對龐大的數(shù)據(jù)量,現(xiàn)有的系統(tǒng)難以進行處理或者擴展。

      針對現(xiàn)有輿情系統(tǒng)的不足,分布式輿情分析系統(tǒng)架構(gòu)的設計從以下幾個方面進行分析。

      ·可擴展性:對于新的需求和功能,能夠很好地添加到系統(tǒng)中。系統(tǒng)能夠容納多種分析算法,新的算法可以方便地移植到系統(tǒng)中。這些都不需要改變系統(tǒng)的架構(gòu)。

      ·可維護性:架構(gòu)中各個模塊之間的耦合性低,一個模塊的改變不會影響到其他模塊,模塊之間通過定義的接口進行通信。后續(xù)對于模塊的優(yōu)化可以單獨進行。

      ·適用性:對于不同類型應用的分析,架構(gòu)不需要改變或者做適當?shù)恼{(diào)整就可以直接使用,也可以把多種應用的分析集成在一起。

      ·合理性:根據(jù)任務的復雜度,合理分配資源進行處理。例如,對于簡單的任務,用單線程進行處理;對于數(shù)據(jù)規(guī)模大或者復雜性高的任務,進行分布式并行處理,以提高系統(tǒng)的整體效率。

      ·部署:各個模塊能夠單獨進行部署,當網(wǎng)絡環(huán)境發(fā)

      生變化時,只需要改變相應的IP地址和端口號。

      ·實時性:能夠保證系統(tǒng)及時收集到實時的數(shù)據(jù),并且能夠快速地進行分析處理。對于用戶的請求,能夠及時做出響應。

      ·可用性:系統(tǒng)以Web頁面的形式向用戶提供大量的可視化界面,保證用戶能簡單地使用系統(tǒng)。

      2.2 架構(gòu)設計

      考慮以上分析,把系統(tǒng)分成三大模塊,分別為爬蟲模塊、Web模塊、分布式平臺模塊,如圖1所示。

      圖1 系統(tǒng)架構(gòu)

      2.2.1 爬蟲模塊

      對于輿情分析系統(tǒng)來說,數(shù)據(jù)是非常重要的,而爬蟲模塊的主要功能是數(shù)據(jù)的收集。為了能夠高效地爬取數(shù)據(jù),系統(tǒng)采用并行爬取策略,由一臺服務控制器和多個爬蟲客戶端組成。服務控制器負責與客戶端連接以及每個客戶端爬取時間的控制;另外,還有一個任務分配器,負責給每個客戶端分配爬取任務。對于爬取的數(shù)據(jù),經(jīng)過格式轉(zhuǎn)換器,按照一定格式存儲到分布式平臺。爬取流程如圖2所示。

      圖2 爬取流程

      2.2.2 Web模塊

      考慮系統(tǒng)的可擴展性、可用性等,將Web模塊分為表現(xiàn)層、業(yè)務邏輯層和數(shù)據(jù)訪問層,并采用MVC設計模式,每層所實現(xiàn)的功能都不相同,表現(xiàn)層與業(yè)務邏輯層的分離更加明確。表現(xiàn)層主要實現(xiàn)數(shù)據(jù)可視化展示以及為用戶提供一個良好的操作界面;業(yè)務邏輯層主要實現(xiàn)兩類邏輯處理,第一類是使用用戶相關(guān)的邏輯處理,第二類是復雜度較低的數(shù)據(jù)處理,如少量數(shù)據(jù)的統(tǒng)計分析、簡單算法的數(shù)據(jù)處理等;數(shù)據(jù)訪問層主要負責對用戶相關(guān)的數(shù)據(jù)進行持久化操作。

      2.2.3 分布式平臺模塊

      采用分布式平臺,主要針對大數(shù)據(jù)量的處理,因為單機系統(tǒng)已經(jīng)無法滿足大量數(shù)據(jù)處理的要求。輿情系統(tǒng)的核心在于數(shù)據(jù)的存儲、分析以及檢索。對于海量數(shù)據(jù),分布式平臺提供了分布式的存儲方案;對于復雜的任務,能夠進行并行計算,提高處理效率,以在短時間內(nèi)產(chǎn)生輿情信息。該模塊基于分布式平臺實現(xiàn)了數(shù)據(jù)的存儲、檢索(搜索引擎)以及數(shù)據(jù)量大或者復雜度高的計算。在輿情系統(tǒng)中,該模塊屬于核心部分,對外接收爬蟲模塊爬取的數(shù)據(jù),同時接收Web模塊的請求并向其提供服務。

      3 架構(gòu)應用實例

      隨著社交網(wǎng)絡的出現(xiàn),網(wǎng)絡產(chǎn)生了大量的信息。在國內(nèi),就新浪微博來說,每天產(chǎn)生的微博數(shù)量有過億條,而且這種數(shù)據(jù)具有更新快和傳播快等特點。為了能夠及時對這些數(shù)據(jù)進行分析處理,基于上述系統(tǒng)架構(gòu)的設計,實現(xiàn)了一種輿情分析系統(tǒng)。系統(tǒng)實現(xiàn)了對新浪微博的監(jiān)控、預警、分析和引導四大功能,每個功能模塊包括若干子功能,如圖3所示。

      系統(tǒng)的架構(gòu)如圖4所示,開發(fā)涉及的技術(shù)和工具包括MapReduce、Lucene、IKAnalyzer、thrift、Java、Spring、Struts2.0、JavaScript、HTML、CSS 等,數(shù)據(jù)存儲使用了 HDFS、Hbase、MySQL、Redis等,開發(fā)環(huán)境是 Linux+Hadoop+MyEclipse+Tomcat。

      圖3 系統(tǒng)詳細功能

      圖4 系統(tǒng)架構(gòu)

      3.1 Hadoop分布式集群

      Hadoop是一個開源的分布式系統(tǒng)基礎架構(gòu),由Apache基金會開發(fā)。對于該框架,用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序,充分利用集群的高速運算和存儲功能[9]。與其他分布式計算的不同主要體現(xiàn)在以下幾點[10]:

      ·方便,運行在由一般商用機構(gòu)成的大型集群上;

      ·頑健,致力于在一般商用硬件上運行,其架構(gòu)假設硬件會頻繁地出現(xiàn)失效,可以從容地處理大多數(shù)此類故障;

      ·可擴展,通過增加集群節(jié)點,可以線性地擴展以處理更大的數(shù)據(jù)集;

      ·簡單,允許用戶快速編寫出高效的并行代碼。

      基于Hadoop的分布式文件系統(tǒng)(HDFS)和分布式數(shù)據(jù)庫(Hbase)為海量數(shù)據(jù)的存儲提供了很好的解決方案。HDFS有著高容錯性的特點,并且用來部署在低廉的硬件上,提供高吞吐量來訪問應用程序的數(shù)據(jù),適合有著超大數(shù)據(jù)集的應用程序;Hbase是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),利用Hbase技術(shù)可在廉價PC服務器上搭建起大規(guī)模結(jié)構(gòu)化存儲集群。

      Hadoop的核心部分MapReduce提供一種可用于數(shù)據(jù)處理的編程模型,能夠很好地和HDFS、Hbase結(jié)合編寫處理大量數(shù)據(jù)的并行處理程序。

      基于Hadoop的以上優(yōu)點,系統(tǒng)使用Hadoop集群作為分布式平臺進行數(shù)據(jù)的存儲、檢索以及復雜任務的計算。在系統(tǒng)的實現(xiàn)上,Hbase用于爬取數(shù)據(jù)的存儲,包括用戶的信息和微博的信息,并向系統(tǒng)提供檢索服務。基于Hadoop使用Lucene搭建搜索引擎,編寫MapReduce程序創(chuàng)建索引,并將索引表寫到HDFS上。對于實時爬取的微博,能夠及時地創(chuàng)建索引,提供實時的檢索。在大量微博中對熱點詞和敏感詞的分析,也基于MapReduce的并行功能實現(xiàn)。

      集群由5臺機器組成,其中一臺為主用機器,配置為CPU雙核、內(nèi)存4 GB、硬盤100 GB,另外4臺配置均為CPU雙核、內(nèi)存4 GB、硬盤100 GB。

      3.2 爬蟲模塊

      爬蟲模塊使用新浪微博提供的API獲取數(shù)據(jù),由于新浪微博對每個IP地址的訪問在時間和次數(shù)上都做了限制。這樣,對于一臺機器來說,每個小時獲取到的數(shù)據(jù)量是比較少的?;诩軜?gòu)的設計,采用多臺機器并行爬取的策略可以解決個問題。對于新浪微博來說,爬取的數(shù)據(jù)包括博主信息(如ID、昵稱、好友、粉絲、微博數(shù)等)和微博信息(如ID、內(nèi)容、轉(zhuǎn)發(fā)數(shù)、評論數(shù)等)。爬取過程為:使用微博賬號登錄→授權(quán)→獲取分配的任務→開始獲取數(shù)據(jù)→數(shù)據(jù)格式轉(zhuǎn)換→寫入數(shù)據(jù)庫。爬取過程中可能會出現(xiàn)重復爬取博主信息和微博信息,系統(tǒng)采用Redis內(nèi)存數(shù)據(jù)庫進行控制,把已經(jīng)爬取過的博主ID和微博ID存到Redis中,如果爬取到博主或微博已在Redis中,則丟棄該條信息。對于爬取的數(shù)據(jù),以json格式存在,進行相應的轉(zhuǎn)化后以對象形式(二進制編碼)存到Hbase上,Hbase表的結(jié)構(gòu)設計見表1。另外,爬蟲模塊還提供對特定微博或博主信息的爬取,以實時監(jiān)控某條微博或者博主的動態(tài)。

      表1 Hbase表的結(jié)構(gòu)設計

      3.3 Web模塊

      Web模塊采用B/S模式開發(fā),前端使用HTML、JavaScript和CSS等技術(shù),后臺基于Struts2+Spring3框架搭建。前端使用圖形的方式對微博的轉(zhuǎn)發(fā)關(guān)系、用戶的好友關(guān)系、傳播趨勢等進行可視化展示;后臺通過Struts2的action響應瀏覽器的請求,然后通過調(diào)用Spring提供服務,最后把結(jié)果返回到瀏覽器。Struts2是一個使用MVC的開發(fā)模式框架,使得業(yè)務邏輯層與表現(xiàn)層之間的功能變得更加明確,從而也更加容易維護。使用Spring框架實現(xiàn)數(shù)據(jù)的持久化,并提供相應的服務接口,同時也與Hadoop分布式集群進行通信。使用Spring的annotation進行開發(fā),使得代碼簡潔、可維護性好。對于使用用戶的信息以及操作的相關(guān)信息,則保存在MySQL數(shù)據(jù)庫中。

      Web模塊部署到Tomcat服務器上運行,可以對關(guān)鍵詞或者博主名進行搜索,對搜索的關(guān)鍵詞和博主進行監(jiān)控。對搜索返回的微博,可以查看該微博的轉(zhuǎn)發(fā)關(guān)系、來源分布、區(qū)域分布、隨時間變化的轉(zhuǎn)發(fā)次數(shù)趨勢,也可以關(guān)注博主的信息,包括博主的情感傾向、所發(fā)微博中頻繁出現(xiàn)的詞以及社區(qū)關(guān)系等。對于用戶關(guān)注的關(guān)鍵詞和博主,在每次登錄系統(tǒng)時,如果出現(xiàn)與關(guān)注信息相關(guān)的微博,系統(tǒng)會自動產(chǎn)生預警。頁面還對微博中近段時間(60 min,30 min,15 min)出現(xiàn)的熱點詞進行敏感詞統(tǒng)計分析,以及時發(fā)現(xiàn)微博中出現(xiàn)的熱點信息。系統(tǒng)還允許用戶設定任務,用戶可以設定相關(guān)的條件,當系統(tǒng)檢測到條件滿足時,自動執(zhí)行用戶的任務。

      3.4 thrift通信

      thrift是一個軟件框架,用來進行可擴展且跨語言服務的開發(fā)[11],允許定義一個簡單的定義文件中的數(shù)據(jù)類型和服務接口,以作為輸入文件,編譯器生成代碼用來方便地生成RPC客戶端和服務器通信的無縫跨編程語言[11]。

      在系統(tǒng)的Web模塊和Hadoop集群之間,采用thrift進行通信。通過thrift定義Web模塊調(diào)用的接口,能夠很好地將這兩個模塊獨立開來,這樣就保證了系統(tǒng)有很好的可擴展性和可維護性。例如,系統(tǒng)需要加入對博主的情感分析功能時,首先在Hadoop集群模塊添加一個搜索博主相關(guān)信息的方法,然后在thrift服務器中定義一個向Web模塊提供服務的接口,該接口調(diào)用搜索博主相關(guān)信息的方法,鑒于返回博主個人的數(shù)據(jù)量較小,在Web模塊中實現(xiàn)情感分析算法,算法的輸入數(shù)據(jù)通過調(diào)用thrift服務器中的接口獲得,最后在Web頁面上設計相關(guān)的圖形展示分析結(jié)果。當需要添加一個新的功能時,只需要在每個模塊中添加相應的實現(xiàn)方法或接口即可,具有很好的擴展性。由于thrift通過接口向Web模塊提供服務,當Hadoop集群要對某些方法進行修改或者優(yōu)化時,不會影響到Web模塊,具有很好的可維護性。在部署時,thrift服務器可以進行單獨部署。

      4 結(jié)束語

      針對如何能夠有效地獲取和分析互聯(lián)網(wǎng)不斷增加的數(shù)據(jù),本文提出一種分布式的輿情分析系統(tǒng)架構(gòu)。該架構(gòu)結(jié)合分布式技術(shù),能夠有效地對網(wǎng)絡中的海量數(shù)據(jù)進行存儲和分析。在分布式平臺上,進行了Web應用開發(fā)。在這個架構(gòu)中,包含三大模塊,分別為爬蟲模塊、Web模塊和分布式平臺。以分布式平臺為核心,將爬蟲模塊和Web模塊結(jié)合起來,數(shù)據(jù)從爬蟲模塊流向分布式平臺,經(jīng)過分析處理,向Web模塊提供服務。最后,針對社交網(wǎng)站新浪微博,給出了架構(gòu)的實例應用,驗證了架構(gòu)的可行性、可擴展性等。

      參考文獻

      1 張姝,趙鐵軍,鄭德權(quán)等.基于淺層分析的多文檔自動文摘技術(shù).哈爾濱工業(yè)大學學報,2007,39(7):1102~1103

      2 漆晨曦.電信企業(yè)大數(shù)據(jù)分析、應用及管理發(fā)展策略.電信科學,2013,29(3):12~16

      3 劉磊.網(wǎng)絡輿情分析系統(tǒng)研究.情報探索,2010(10):106~107

      4 鄒星漢.互聯(lián)網(wǎng)輿情信息采集與分析系統(tǒng)的設計和實現(xiàn).哈爾濱工業(yè)大學博士學位論文,2010

      5 何順蘭,王興起,胡宏宇等.多媒體輿情分析系統(tǒng)設計與研究.杭州電子科技大學學報,2010,30(5):174~176

      6 聞劍峰,石屹嶸.以分布式計算實現(xiàn)電信數(shù)據(jù)分析業(yè)務加速的研究.電信科學,2012,28(2):23~25

      7 黎宏劍,劉恒,黃廣文等.基于Hadoop的海量電信數(shù)據(jù)云計算平臺研究.電信科學,2012,28(8):80~81

      8 何忠育,王勇,王瑛等.基于分布式計算的網(wǎng)絡輿情分析系統(tǒng)的設計.警察技術(shù),2010(3):19

      9 Hadoop百度百科.http://baike.baidu.com/view/908354.html

      10 Lam C.Hadoop in Action.韓翼中譯.北京:人民郵電出版社,2011

      11 Thrift百度百科.http://baike.baidu.com/view/1698865.html

      猜你喜歡
      爬蟲博主輿情
      利用網(wǎng)絡爬蟲技術(shù)驗證房地產(chǎn)灰犀牛之說
      跟著零食博主買拼多多小吃
      好日子(2022年6期)2022-08-17 07:16:42
      如果孩子想當美妝博主
      時尚博主謝慕梓:分享身邊的美
      金橋(2021年1期)2021-05-21 08:22:04
      基于Python的網(wǎng)絡爬蟲和反爬蟲技術(shù)研究
      利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
      電子測試(2018年1期)2018-04-18 11:53:04
      大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡爬蟲技術(shù)
      電子制作(2017年9期)2017-04-17 03:00:46
      輿情
      中國民政(2016年16期)2016-09-19 02:16:48
      輿情
      中國民政(2016年10期)2016-06-05 09:04:16
      輿情
      中國民政(2016年24期)2016-02-11 03:34:38
      新宁县| 蓝田县| 晋城| 勃利县| 佳木斯市| 洞口县| 南华县| 井冈山市| 全州县| 晋宁县| 旬邑县| 库尔勒市| 江华| 道真| 紫阳县| 杂多县| 临夏市| 水富县| 宁强县| 岐山县| 靖安县| 阳泉市| 汉中市| 盐边县| 黎平县| 株洲市| 云霄县| 平乡县| 威远县| 沁阳市| 阿鲁科尔沁旗| 卫辉市| 平山县| 米林县| 烟台市| 和政县| 彰化县| 弋阳县| 石河子市| 星子县| 敦煌市|