趙前東,葉 猛
(1.武漢郵電科學(xué)研究院通信與信息系統(tǒng),湖北武漢 430074;2.武漢虹旭信息技術(shù)有限責(zé)任公司,湖北武漢 430074)
微博熱點(diǎn)話題檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
趙前東1,葉 猛2
(1.武漢郵電科學(xué)研究院通信與信息系統(tǒng),湖北武漢 430074;2.武漢虹旭信息技術(shù)有限責(zé)任公司,湖北武漢 430074)
描述了一個(gè)微博熱點(diǎn)檢測(cè)系統(tǒng)。管理者通過它可以快速了解正在發(fā)生的或是已發(fā)生的微博熱點(diǎn)事件。系統(tǒng)采用調(diào)用微博API接口與改進(jìn)爬蟲程序相結(jié)合的方式獲取網(wǎng)頁(yè)數(shù)據(jù),由于網(wǎng)絡(luò)數(shù)據(jù)量巨大,為了提高效率,還采用了網(wǎng)頁(yè)清理技術(shù)。重點(diǎn)介紹了話題活性模型的方法,系統(tǒng)可以根據(jù)時(shí)間坐標(biāo)快速尋找熱點(diǎn)話題,提高了熱點(diǎn)話題發(fā)現(xiàn)的效率,大大降低了熱點(diǎn)話題發(fā)現(xiàn)的時(shí)間復(fù)雜度。
微博;API;網(wǎng)頁(yè)清理;話題活性模型;熱點(diǎn)話題
微博作為新時(shí)代基于Web 2.0的互聯(lián)網(wǎng)應(yīng)用,在短短幾年中得到了迅猛的發(fā)展。微博是一個(gè)基于用戶關(guān)系的信息分享與傳播的平臺(tái),微博用戶可以通過手機(jī)、PC等平臺(tái)在個(gè)人微博上發(fā)布140個(gè)字以內(nèi)的文本信息等內(nèi)容,對(duì)大眾展現(xiàn)個(gè)人最新狀態(tài),把最新的事物景色等即時(shí)分享,是時(shí)下流行的互聯(lián)網(wǎng)應(yīng)用之一。
微博中每天都有成千上萬的話題,微博用戶可以選擇自己感興趣的話題瀏覽,閱讀話題相關(guān)的內(nèi)容以及評(píng)論。如果想更深入更全面地了解一個(gè)話題,就需要不斷地點(diǎn)擊瀏覽相關(guān)的內(nèi)容來了解事件發(fā)展的過程。微博用戶如果想要了解最新最熱的話題也需要通過不斷刷新來瀏覽大量話題及其評(píng)論熱度和轉(zhuǎn)發(fā)數(shù)量,這樣不僅花費(fèi)了大量的精力,而且了解到的信息還可能不完整,得不到理想的結(jié)果。怎樣實(shí)現(xiàn)從數(shù)量繁多的微博話題中自動(dòng)檢測(cè)出熱點(diǎn)話題[1],方便管理者快速了解時(shí)下熱點(diǎn)話題成為一個(gè)研究熱點(diǎn)。而且在某些特殊部門的業(yè)務(wù)應(yīng)用中,情報(bào)信息的挖掘和分析對(duì)其工作的開展有著極其重大的支撐作用。如果用人工處理的方式,會(huì)消耗大量時(shí)間及人力物力,不僅可能得不到精確的結(jié)果,容易錯(cuò)失情報(bào)間的關(guān)聯(lián),而且人工處理信息的速度非常有限。因此,本文設(shè)計(jì)一個(gè)微博熱點(diǎn)話題檢測(cè)系統(tǒng),來幫助相關(guān)人員主動(dòng)檢測(cè)新熱點(diǎn)事件以及跟蹤以往焦點(diǎn)事件,提高工作的效率。
系統(tǒng)的總體構(gòu)架設(shè)計(jì)相當(dāng)于一個(gè)大樓的框架結(jié)構(gòu)設(shè)計(jì),其重要性不言而喻。系統(tǒng)總體結(jié)構(gòu)的優(yōu)劣決定了系統(tǒng)的穩(wěn)定性、系統(tǒng)功能的實(shí)現(xiàn)質(zhì)量和執(zhí)行效率,所以構(gòu)建一個(gè)好的結(jié)構(gòu)有著重要的意義。系統(tǒng)各個(gè)模塊間的關(guān)系如圖1所示。
圖1 微博熱點(diǎn)分析系統(tǒng)的模塊關(guān)系
1)系統(tǒng)管理模塊
微博分析系統(tǒng)設(shè)計(jì)的訪問機(jī)制是基于角色的,系統(tǒng)針對(duì)不同權(quán)限的用戶,對(duì)用戶指派的虛擬角色不同,實(shí)現(xiàn)用戶、訪問權(quán)限、數(shù)據(jù)的分離。它主要由用戶管理模塊、角色權(quán)限管理模塊組成。
2)微博信息采集模塊
微博信息采集模塊的主要功能是獲取網(wǎng)絡(luò)數(shù)據(jù)并將數(shù)據(jù)分類存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器中,以便熱點(diǎn)信息發(fā)現(xiàn)模塊,對(duì)其數(shù)據(jù)進(jìn)行分析運(yùn)算,從而達(dá)到發(fā)現(xiàn)和追蹤熱點(diǎn)話題的目的?,F(xiàn)階段能夠?qū)崿F(xiàn)新浪微博及評(píng)論等信息的獲取。
3)熱點(diǎn)信息發(fā)現(xiàn)模塊
熱點(diǎn)信息發(fā)現(xiàn)模塊主要的功能是發(fā)現(xiàn)新的熱點(diǎn)話題和追蹤以往的焦點(diǎn)話題。熱點(diǎn)分析模塊根據(jù)采集到的數(shù)據(jù)和用戶設(shè)定的閾值,根據(jù)話題活性算法計(jì)算,篩選出熱點(diǎn)話題。熱點(diǎn)監(jiān)測(cè)模塊能對(duì)系統(tǒng)新添加的話題按照相關(guān)算法進(jìn)行計(jì)算,在各個(gè)時(shí)間段內(nèi)進(jìn)行連續(xù)追蹤,來達(dá)到對(duì)熱點(diǎn)話題的跟蹤檢測(cè)。
在充分理解用戶需求的基礎(chǔ)上,根據(jù)用戶的實(shí)際需求,仔細(xì)推導(dǎo)邏輯程序,按照“數(shù)據(jù)采集—數(shù)據(jù)分析—圖形化顯示結(jié)果”的信息處理流程來設(shè)計(jì)微博熱點(diǎn)話題檢測(cè)系統(tǒng)。圖2簡(jiǎn)要描述了微博熱點(diǎn)話題檢測(cè)系統(tǒng)的業(yè)務(wù)流程。
圖2 系統(tǒng)業(yè)務(wù)流程圖
1)數(shù)據(jù)收集
通過采用調(diào)用微博API接口與改進(jìn)爬蟲程序相結(jié)合的方式獲取網(wǎng)絡(luò)信息,將提取的信息按數(shù)據(jù)庫(kù)中的字段分類存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器中。
2)數(shù)據(jù)分析處理
用戶登錄系統(tǒng),啟動(dòng)系統(tǒng)執(zhí)行熱點(diǎn)發(fā)現(xiàn)程序。服務(wù)器就會(huì)從數(shù)據(jù)服務(wù)器中調(diào)用分類存儲(chǔ)數(shù)據(jù),根據(jù)話題活性模型,進(jìn)行相關(guān)運(yùn)算,完成熱點(diǎn)話題分析、熱點(diǎn)話題追蹤等功能,并將結(jié)果返回且以直觀的圖表方式顯示出來。
3)界面結(jié)果顯示
系統(tǒng)分析運(yùn)算完畢之后,數(shù)據(jù)處理的結(jié)果會(huì)以熱點(diǎn)話題活性圖和熱點(diǎn)話題列表兩種形式直觀地顯示在用戶界面上。用戶可以清楚地看到出現(xiàn)了哪些熱點(diǎn)話題并且根據(jù)自身需要篩選關(guān)注的信息。
開發(fā)環(huán)境為:服務(wù)器為多核處理器服務(wù)器,客戶端為CPU 3.06 GHz、1 024 Mbyte內(nèi)存的普通計(jì)算機(jī),能夠通過網(wǎng)絡(luò)連接上服務(wù)器端即可。開發(fā)模式采用三層構(gòu)架的開發(fā)模式。開發(fā)結(jié)構(gòu)采用客戶端/服務(wù)器(C/S)結(jié)構(gòu)。后臺(tái)開發(fā)語言采用C語言[2-3]。前臺(tái)開發(fā)工具采用Microsoft Visual Studio 2006。數(shù)據(jù)庫(kù)管理系統(tǒng)采用Oracle 9i。
2.2.1 網(wǎng)頁(yè)數(shù)據(jù)獲取
采取調(diào)用微博API接口與改進(jìn)傳統(tǒng)的爬蟲程序相結(jié)合[4-5]的方式來實(shí)現(xiàn)微博數(shù)據(jù)的抓取,雖然通過調(diào)用微博API接口可以便捷地抓取微博數(shù)據(jù),但是所有的微博服務(wù)商都不會(huì)把完整的API接口權(quán)限開放給普通用戶,并且對(duì)于開放的API,在返回結(jié)果數(shù)量與調(diào)用頻率方面有限制,一次查詢的返回結(jié)果數(shù)目上限為5 000。于是在調(diào)用API接口技術(shù)之外,還引入了基于傳統(tǒng)網(wǎng)絡(luò)爬蟲改進(jìn)的程序抓取技術(shù)[6-7],獲得更多的網(wǎng)絡(luò)數(shù)據(jù),通過兩者結(jié)合的方案可以實(shí)現(xiàn)微博數(shù)據(jù)高效全面的獲取。但是又由于最近新浪微博頒布了禁令,禁止搜索引擎以及網(wǎng)絡(luò)爬蟲類的程序抓取微博的網(wǎng)絡(luò)數(shù)據(jù),所以暫時(shí)只能采取調(diào)用API接口的方式來獲取微博網(wǎng)絡(luò)數(shù)據(jù)。
2.2.2 網(wǎng)頁(yè)數(shù)據(jù)解析
成功地獲取了網(wǎng)頁(yè)數(shù)據(jù)[8]之后,此時(shí)網(wǎng)頁(yè)數(shù)據(jù)中還包含很多無關(guān)的數(shù)據(jù),隨即由網(wǎng)頁(yè)解析器進(jìn)行網(wǎng)頁(yè)數(shù)據(jù)清理,提取有用的信息如網(wǎng)頁(yè)鏈接URL、微博及評(píng)論內(nèi)容、時(shí)間等,去除網(wǎng)頁(yè)數(shù)據(jù)中無用信息,調(diào)用Stream類讀取該URL頁(yè)面的數(shù)據(jù)流,通過正則表達(dá)式類進(jìn)行匹配找到微博的內(nèi)容、作者、評(píng)論的內(nèi)容、時(shí)間、點(diǎn)擊數(shù)、回復(fù)數(shù)等信息,將這些信息按照數(shù)據(jù)庫(kù)表的字段存儲(chǔ)到數(shù)據(jù)庫(kù)服務(wù)器中。
2.3.1 熱點(diǎn)數(shù)據(jù)處理流程
從圖3的熱點(diǎn)分析流程可以直觀了解到,首先通過話題活性算法計(jì)算所有話題的活性值,如果超過用戶設(shè)置的參數(shù)值時(shí),則話題活性圖會(huì)顯示出一個(gè)比其他平穩(wěn)部分高出一截的“毛刺”,熱點(diǎn)話題列表會(huì)在界面上顯示詳細(xì)的話題內(nèi)容、時(shí)間、評(píng)論數(shù)等。
圖3 熱點(diǎn)分析流程圖
從圖4的熱點(diǎn)追蹤流程可以直觀了解到,熱點(diǎn)追蹤的話題活性圖和熱點(diǎn)話題列表更新的頻率為1/T(T為設(shè)定值)。當(dāng)時(shí)間間隔為T的整數(shù)倍時(shí),則通過話題活性算法計(jì)算所有話題的活性值,如果超過用戶設(shè)置的參數(shù)值時(shí),話題活性圖會(huì)顯示出一個(gè)比其他平穩(wěn)部分高出一截的“毛刺”,熱點(diǎn)話題列表會(huì)在界面上顯示詳細(xì)的話題內(nèi)容、時(shí)間、評(píng)論數(shù)等。同時(shí)刷新熱點(diǎn)活性圖和熱點(diǎn)話題列表。
圖4 熱點(diǎn)追蹤流程圖
2.3.2 話題活性模型
話題活性是由一個(gè)話題的總發(fā)微博數(shù)和微博相關(guān)的總評(píng)論轉(zhuǎn)發(fā)數(shù)決定的,根據(jù)話題活性模型計(jì)算全部話題的活性值,然后觀察活性圖,平穩(wěn)部分就是一般的話題,出現(xiàn)“毛刺”的地方就說明發(fā)現(xiàn)了熱點(diǎn)話題,這樣可以快速找出微博熱點(diǎn)話題。使用這種方法,大大降低了微博熱點(diǎn)話題檢測(cè)的時(shí)間復(fù)雜度。
分析話題活性[5]要從話題數(shù)量和評(píng)論的數(shù)量這兩個(gè)方面考慮,話題數(shù)量即單位時(shí)間內(nèi)同一話題的發(fā)帖數(shù),評(píng)論數(shù)量即單位時(shí)間內(nèi)同一話題相關(guān)的評(píng)論數(shù)。根據(jù)這兩個(gè)因素構(gòu)建話題活性模型:
1)單位時(shí)間內(nèi)發(fā)微博數(shù)量越多則話題活性越強(qiáng);
2)單位時(shí)間內(nèi)微博評(píng)論數(shù)量以及被轉(zhuǎn)發(fā)次數(shù)越多則話題活性越強(qiáng);
3)討論范圍越熱烈越集中(即評(píng)論和轉(zhuǎn)發(fā)集中在幾個(gè)微博且回復(fù)微博數(shù)量多),則話題活性越強(qiáng)。
話題活性模型具有時(shí)變特性,構(gòu)建全部話題的話題活性模型如下
式中:fact(Δt)是系統(tǒng)在Δt內(nèi)的活性值,ob(Δt)是Δt時(shí)間間隔內(nèi)進(jìn)入系統(tǒng)的根帖子數(shù)量,rb(Δt)是Δt內(nèi)帖子的回復(fù)數(shù)量,orb(Δt)是Δt內(nèi)根帖子的回復(fù)數(shù)量,rbi(Δt)是每個(gè)根帖子i的回復(fù)數(shù)量,即rb1(Δt)+rb2(Δt)+rborb(Δt)=rbi(Δt)。
本研究根據(jù)TDT評(píng)測(cè)標(biāo)準(zhǔn),評(píng)估話題檢測(cè)系統(tǒng)性能的指標(biāo)為漏報(bào)率、誤報(bào)率以及歸一化檢測(cè)開銷,話題i(i=1,2,…,tn)為話題的個(gè)數(shù)[9]:
系統(tǒng)的平均漏報(bào)率PMiss、平均誤報(bào)率PFa和歸一化檢測(cè)開銷CDet(Norm)如下
式中:Missi和Fai分別是漏報(bào)率和誤報(bào)率,CMiss和CFa分別是漏報(bào)和誤報(bào)的開銷;Ptarget是目標(biāo)話題的先驗(yàn)概率,P-target=1-Ptarget為后驗(yàn)概率。其中CMiss,CFa,Ptarget的取值在不同的測(cè)評(píng)中是不相同的,都是可自行設(shè)定的,此次測(cè)評(píng)中預(yù)設(shè)CMiss,CFa,Ptarget分別為1.00,0.10,0.02。
設(shè)置適當(dāng)?shù)拈撝登议撝挡蛔儠r(shí),根據(jù)實(shí)驗(yàn)分析結(jié)果和數(shù)據(jù)庫(kù)真實(shí)情況比對(duì),對(duì)漏檢率、誤檢率、誤測(cè)開銷值進(jìn)行評(píng)估,均得到了較好的結(jié)果。
下面是微博系統(tǒng)熱點(diǎn)檢測(cè)系統(tǒng)檢測(cè)新浪微博2012年4月份熱點(diǎn)話題的實(shí)驗(yàn)結(jié)果:
1)熱點(diǎn)分析功能結(jié)果顯示見圖5,系統(tǒng)每隔5 min(300 s)讀取1次活性值,突出的毛刺部分顯示檢測(cè)出熱點(diǎn)話題。
圖5 熱點(diǎn)分析功能實(shí)驗(yàn)結(jié)果(截圖)
2)熱點(diǎn)追蹤功能結(jié)果顯示如圖6所示,在輸入框輸入需要追蹤的話題關(guān)鍵詞,如“央視帥哥播音員”,從2012年4月25日上午9:30開始實(shí)驗(yàn),過了二十幾個(gè)小時(shí)后,追蹤的熱點(diǎn)話題出現(xiàn)了(如圖中顯示的毛刺部分)。
本文采用了調(diào)用微博API接口與改進(jìn)爬蟲程序相結(jié)合的方式獲取網(wǎng)頁(yè)數(shù)據(jù),結(jié)合網(wǎng)頁(yè)清理及話題活性模型等技術(shù),詳細(xì)設(shè)計(jì)了一個(gè)微博熱點(diǎn)話題檢測(cè)系統(tǒng)。經(jīng)過實(shí)驗(yàn)驗(yàn)證,本系統(tǒng)確實(shí)可以有效地幫助用戶快速了解新的熱點(diǎn)話題和以往熱點(diǎn)話題的發(fā)展態(tài)勢(shì)。
圖6 熱點(diǎn)追蹤功能實(shí)驗(yàn)結(jié)果(截圖)
系統(tǒng)在信息個(gè)性化搜索方便還可以進(jìn)行后續(xù)的改進(jìn),采用網(wǎng)絡(luò)數(shù)據(jù)的預(yù)處理技術(shù)增加數(shù)據(jù)的預(yù)處理模塊,可以使系統(tǒng)更加精確、高效,從而更迅速、更準(zhǔn)確地發(fā)現(xiàn)和追蹤微博熱點(diǎn)話題。
:
[1]曾依靈,許洪波.網(wǎng)絡(luò)熱點(diǎn)信息發(fā)現(xiàn)研究[J].通信學(xué)報(bào),2007,28(12):141-146.
[2]格羅夫.SQL完全手冊(cè)[M].章小莉,寧欣,汪永好,等,譯.2版.北京:電子工業(yè)出版社,2004.
[3]張立.C#2.0 寶典[M].北京:電子工業(yè)出版社,2006.
[4]廉捷.新浪微博數(shù)據(jù)挖掘方案[J].清華大學(xué)學(xué)報(bào):自然科學(xué)版,2011(10):1300-1305.
[5]YANG Y,CARNONELL J G,BROWN R,et al.Learning approaches for detecting and tracking news events[J].IEEE Intelligent System,1999,14(3):32-43.
[6]周立柱,林玲.聚焦爬蟲技術(shù)研究綜述[J].計(jì)算機(jī)應(yīng)用,2005,25(9):19-20.
[7]劉金紅,陸余良.主題網(wǎng)絡(luò)爬蟲研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2007(10):20-21.
[8]MATSUMURA N,MIURA A,SHIBANAI Y,et al.The dynamism of 2 channel[J].Journal of AI & Society,2005,19(1):84-92.
[9]丁杰,徐俊剛.IPSMS:一個(gè)網(wǎng)絡(luò)輿情監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(4):188-190.
Design and Implementation of Micro-blog Hot Topics Detection System
ZHAO Qiandong1,YE Meng2
(1.Dept.of Communication and Information System,Wuhan Research Institute of Posts and Telecommunications,Wuhan 430074,China;2.Wuhan Hong Xu Information Technology Co.Ltd.,Wuhan 430074,China)
A micro-blog hot topics detecting system is described.System managers can quickly find the micro-blog hot events that are taking place or have occurred.The system uses a combination of calling micro-blog API interface and improving crawler program to get Web data.Due to the huge amount of network data,in order to improve efficiency,the system uses Web cleaning technology.Focusing on the method of the topic activity model,the system can quickly find the hot topic by the time coordinate,and improve efficiency of the hot topics detection and greatly reduce the time complexity of the hot topics detection.
micro-blog;API;pages clean up;topic activity model;hot topics
TN929.6
A
【本文獻(xiàn)信息】趙前東,葉猛.微博熱點(diǎn)話題檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2013,37(3).
國(guó)家“863”計(jì)劃項(xiàng)目(2012BAH38B05)
趙前東(1987— ),碩士生,主研網(wǎng)絡(luò)信息安全及通信協(xié)議;
葉 猛(1975— ),博士生導(dǎo)師,主要研究方向?yàn)榫W(wǎng)絡(luò)信息安全及通信協(xié)議。
責(zé)任編輯:任健男
2012-09-26