(陸軍軍官學(xué)院計(jì)算中心 合肥 230031)
網(wǎng)絡(luò)輿情是是通過互聯(lián)網(wǎng)傳播的公眾對現(xiàn)實(shí)生活中某些熱點(diǎn)、焦點(diǎn)問題所持的有較強(qiáng)影響力、傾向性的言論和觀點(diǎn),是社會輿論的一種表現(xiàn)形式[1]。由于網(wǎng)絡(luò)輿情傳播速度快、影響大,因而有必要建立自動化的網(wǎng)絡(luò)輿情監(jiān)控系統(tǒng)以實(shí)現(xiàn)對網(wǎng)絡(luò)輿情信息的及時(shí)采集、分析、監(jiān)控與引導(dǎo)[2]。網(wǎng)絡(luò)輿情監(jiān)控系統(tǒng)主要包括信息采集模塊、預(yù)處理模塊、分析模塊和預(yù)警模塊四個(gè)部分[3]。采集模塊是輿情分析處理工作的基礎(chǔ),其核心是通過一個(gè)或多個(gè)并行的采集器從互聯(lián)網(wǎng)上不斷收集各種網(wǎng)頁數(shù)據(jù),這些采集器通常稱為網(wǎng)絡(luò)爬蟲或網(wǎng)絡(luò)蜘蛛。本文首先對通用網(wǎng)絡(luò)爬蟲和主題網(wǎng)絡(luò)爬蟲的處理流程作了簡單介紹,分析兩者區(qū)別,提出了主題網(wǎng)絡(luò)爬蟲的設(shè)計(jì)模塊結(jié)構(gòu),研究了系統(tǒng)所要實(shí)現(xiàn)的關(guān)鍵算法,用以指導(dǎo)一種簡單、高效的面向主題的網(wǎng)絡(luò)輿情信息采集系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn),以提供對網(wǎng)絡(luò)輿情采集和分析工作的支持。
網(wǎng)絡(luò)爬蟲是網(wǎng)絡(luò)輿情監(jiān)控采集系統(tǒng)的核心和基礎(chǔ),它對網(wǎng)絡(luò)輿情采集的覆蓋率和查準(zhǔn)率都有很大的影響。根據(jù)采集內(nèi)容目標(biāo)的不同,網(wǎng)絡(luò)爬蟲主要分為通用網(wǎng)絡(luò)爬蟲和主題網(wǎng)絡(luò)爬蟲兩種。通用網(wǎng)絡(luò)爬蟲的目標(biāo)就是盡可能多地采集信息頁面,在采集時(shí)只關(guān)注網(wǎng)頁采集的數(shù)量和質(zhì)量,并不考慮網(wǎng)頁采集的順序和被采集頁面的相關(guān)主題。隨著網(wǎng)絡(luò)信息的指數(shù)式增長,通用網(wǎng)絡(luò)爬蟲面臨著網(wǎng)頁規(guī)模、更新速度和個(gè)性化需求等多方面的挑戰(zhàn)[4]。為改善網(wǎng)絡(luò)爬蟲的效率,使之能滿足特定人群深層次的、面向特定領(lǐng)域的信息需求,必須要采用主題網(wǎng)絡(luò)爬蟲。其目標(biāo)是盡可能多地采集與主題相關(guān)的網(wǎng)頁,在采集的過程中時(shí)刻關(guān)注網(wǎng)頁內(nèi)容與主題的相關(guān)度。
通用網(wǎng)絡(luò)爬蟲通過網(wǎng)頁之間的超鏈接關(guān)系來不斷采集網(wǎng)頁,首先建立一個(gè)初始化的URL集合,它是一個(gè)有序的待抽取的URL 隊(duì)列,接著從該隊(duì)列的某一個(gè)URL 開始,提取對應(yīng)頁面的HTML內(nèi)容,并分析提取在該網(wǎng)頁上的其它所有超鏈接,將它們分別加入到URL隊(duì)列中,更新之前的URL隊(duì)列,再按照圖遍歷中廣度或深度優(yōu)先抓取策略來訪問下一個(gè)URL 鏈接,依次循環(huán),重復(fù)以上過程,直至所有的網(wǎng)頁都被提取完畢或根據(jù)Web爬取策略停止采集為止,其爬取流程如圖1所示。
主題網(wǎng)絡(luò)爬蟲是指選擇性的抓取與目標(biāo)主題相關(guān)的網(wǎng)頁。首先對主題進(jìn)行向量表示,根據(jù)內(nèi)容相關(guān)度計(jì)算得出網(wǎng)頁內(nèi)容和主題的相關(guān)度,并對鏈接進(jìn)行相關(guān)度評價(jià),以決定是否采集某一網(wǎng)頁[5]。在采集過程中并不需要采集所有網(wǎng)頁,因而主題網(wǎng)絡(luò)爬蟲保存的頁面較少,可以大大節(jié)省所需要的硬件和網(wǎng)絡(luò)資源,能很好地滿足特定人群對于查找特定主題的需求。主題爬蟲是在通用爬蟲的基礎(chǔ)上做了一些功能上的擴(kuò)充,增加了對URL 和網(wǎng)頁的主題相關(guān)度評價(jià),其完整的工作流程如圖2所示。

圖1 通用網(wǎng)絡(luò)爬蟲工作流程

圖2 主題網(wǎng)絡(luò)爬蟲工作流程
主題網(wǎng)絡(luò)爬蟲系統(tǒng)僅對和主題相關(guān)的網(wǎng)頁進(jìn)行采集,并不覆蓋所有的網(wǎng)頁。首先對主題進(jìn)行向量表示,根據(jù)內(nèi)容相關(guān)度計(jì)算出要訪問的頁面內(nèi)容和主題的相關(guān)度,并對鏈接進(jìn)行預(yù)測分析,識別出這些鏈接是否和主題相關(guān),然后決定是否采集該鏈接指向的網(wǎng)頁以及設(shè)置相關(guān)提取鏈接的順序[6]。主題網(wǎng)絡(luò)爬蟲的完整的運(yùn)行過程為
1)啟動爬蟲程序,輸入主題及種子站點(diǎn),對主題進(jìn)行向量表示;
2)獲取網(wǎng)頁HTML正文內(nèi)容,將網(wǎng)頁送入頁面相關(guān)度分析模塊,計(jì)算該頁面與主題的相關(guān)度,同時(shí)將提取到的頁面鏈接及鏈接的錨文本等相關(guān)信息送入到鏈接評價(jià)模塊,經(jīng)測算相關(guān)度大于閾值的鏈接送入鏈接優(yōu)先權(quán)隊(duì)列;
3)根據(jù)鏈接選擇策略選擇將下一個(gè)要訪問的鏈接送入到爬行模塊;
4)返回到2),繼續(xù)循環(huán),直到滿足結(jié)束條件為止。
主題網(wǎng)絡(luò)爬蟲更加注重于發(fā)現(xiàn)用戶需要的信息資源,如何更多地獲得與主題相關(guān)性比較高的網(wǎng)頁及如何有效地提高采集效率是主題網(wǎng)絡(luò)爬蟲設(shè)計(jì)的關(guān)鍵。主題爬蟲的設(shè)計(jì)是以普通爬蟲為基礎(chǔ)的,對普通爬蟲做了一些功能上的擴(kuò)充,根據(jù)主題網(wǎng)絡(luò)爬蟲的功能需求及其運(yùn)行流程,其模塊設(shè)計(jì)如圖3所示。

圖3 主題網(wǎng)絡(luò)爬蟲模塊結(jié)構(gòu)
1)主題確定模塊
主題確定模塊是主題爬蟲工作的基礎(chǔ),用于確定要爬行的主題,是對主題進(jìn)行向量化表示。采用關(guān)鍵詞集的方法來確立主題,把集合中關(guān)鍵詞的個(gè)數(shù)n作為向量空間的維數(shù),關(guān)鍵詞的權(quán)值作為每一維分量的大小。權(quán)值通過特征提取來獲得,首先給定一個(gè)與主題相關(guān)的網(wǎng)頁集合,由程序自動提取網(wǎng)頁里的共同特征,根據(jù)出現(xiàn)的頻率計(jì)算權(quán)值。
2)優(yōu)化初始種子模塊
優(yōu)化初始種子模塊是選擇與主題相關(guān)度高的URL作為頁面爬行模塊的入口地址,首先由搜索引擎搜索出網(wǎng)頁,再由人工篩選獲得。
3)頁面分析以及相關(guān)度計(jì)算模塊
相關(guān)度計(jì)算模塊是主題爬蟲區(qū)別于通用爬蟲的最主要模塊。該模塊中首先需要設(shè)定一個(gè)閾值,再進(jìn)行相關(guān)度計(jì)算,將計(jì)算結(jié)果與設(shè)定的閾值進(jìn)行比較。若爬取的網(wǎng)頁的主題相關(guān)度大于閾值,則表示與主題相關(guān),需要進(jìn)行后續(xù)處理。若網(wǎng)頁的主題相關(guān)度小于閾值,則表示與主題無關(guān),可以通過過濾模塊丟棄。模塊中的相似度計(jì)算和閾值設(shè)定尤為重要,關(guān)系到主題爬蟲的整體性能。
4)頁面過濾模塊
頁面過濾模塊是對下載過的網(wǎng)頁進(jìn)行過濾。主題相關(guān)度大于閾值的網(wǎng)頁就會被保存到數(shù)據(jù)庫中,小于閾值的網(wǎng)頁被丟棄,以節(jié)省存儲空間更多地獲得與主題相關(guān)度較高的網(wǎng)頁。
5)相關(guān)度鏈接評價(jià)模塊
該模塊的主要功能是對已下載網(wǎng)頁中的鏈接進(jìn)行相關(guān)度評價(jià),如果預(yù)測鏈接的價(jià)值較高,則爬取。該模塊使得主題爬蟲爬取到的盡量都是與主題相互關(guān)聯(lián)的,而無關(guān)的網(wǎng)頁或者相關(guān)度較低的網(wǎng)頁盡量避免被訪問,從而提高爬蟲的效率和主題資源的覆蓋程度。
6)調(diào)度模塊
調(diào)度模塊是按照某種策略選擇下一步要處理的鏈接,送入到爬行模塊。
主題爬蟲更加注重于網(wǎng)頁的相關(guān)度,根據(jù)一定的網(wǎng)頁分析算法過濾與主題無關(guān)的網(wǎng)頁,保留與主題相關(guān)的網(wǎng)頁及鏈接,以盡可能多地采集與主題相關(guān)的網(wǎng)頁內(nèi)容[7],就要依靠對爬蟲算法的設(shè)計(jì),以下是主題爬蟲所要研究的關(guān)鍵問題:
1)選取何種方法對主題進(jìn)行特征提取,把主題表示成n維的帶權(quán)的向量,以便于后續(xù)的相關(guān)度計(jì)算,這是主題爬蟲設(shè)計(jì)非常重要的前提;
2)采用何種方法選取較優(yōu)秀的種子站點(diǎn)作為爬取的入口地址,種子站點(diǎn)選取的好壞關(guān)系到主題獲得的質(zhì)量;
3)選擇何種方法計(jì)算一個(gè)網(wǎng)頁與主題的相關(guān)度,以使采集到的網(wǎng)頁更向主題靠攏;
4)選擇什么樣的算法來預(yù)測評價(jià)鏈接URL的主題相關(guān)度,以提高目標(biāo)網(wǎng)頁預(yù)測的準(zhǔn)確性;
5)選擇何種爬行策略指導(dǎo)爬取過程,使爬蟲跨過不相關(guān)的網(wǎng)頁進(jìn)入與主題相關(guān)的區(qū)域,以提高主題網(wǎng)頁的覆蓋率。
主題用一組關(guān)鍵詞來表示,主題關(guān)鍵詞一般是從種子文檔提取。種子文檔是由用戶指定的樣例文檔、種子頁面對應(yīng)的文檔和對種子頁面進(jìn)行相鄰區(qū)域擴(kuò)展后生成的文檔等組成。種子文檔生成過程:增加種子頁面指向的頁面以及指向種子頁面的頁面來擴(kuò)展種子集頁面,擴(kuò)展到一定的條件后停止,再把用戶輸入的樣例文檔、種子頁面文檔和擴(kuò)展的種子文檔組成一個(gè)種子文檔集,最后用基于統(tǒng)計(jì)的詞頻—逆文檔頻率(TF-IDF)[8]方法對種子文檔集進(jìn)行詞頻統(tǒng)計(jì),并且進(jìn)行權(quán)值計(jì)算,把權(quán)值最高的n個(gè)值組成主題關(guān)鍵詞集,來表示給定任務(wù)的主題。
主題采用空間向量(VSM)[9]表示為

其中,n是文檔特征關(guān)鍵詞總個(gè)數(shù),ti(1≤i≤n)為主題關(guān)鍵詞集合,wi(1≤i≤n)為關(guān)鍵詞ti對應(yīng)的權(quán)值,用來表示它在文檔中的重要程度,主題d也被簡記為d={w1,w2,…,wn}。這樣,主題通過向量空間模型表示成一個(gè)n維空間中的一個(gè)向量。
關(guān)鍵詞ti的權(quán)值wi計(jì)算方法采用TF-IDF 方法,該方法體現(xiàn)了關(guān)鍵詞在單個(gè)文檔中的重要性及在整個(gè)文檔集中的重要性,經(jīng)典的TF-IDF公式如下:

其中tfi(d)為關(guān)鍵詞ti在種子文檔d中出現(xiàn)的頻率,N為所有種子文檔數(shù)目,ni為含有詞項(xiàng)ti的文檔數(shù)目。
向量距離法是計(jì)算相關(guān)度值最常用的方法。其步驟為:對采集的頁面進(jìn)行分析,統(tǒng)計(jì)出關(guān)鍵詞出現(xiàn)頻率,并求出頻率之比,以出現(xiàn)頻率最高的關(guān)鍵詞為基準(zhǔn),其頻率用ti=1表示,通過頻率之間的比值,求出其它關(guān)鍵詞的頻率ti,則該頁面向頁面主題可用如下的向量表示為:d={(t1,w1),(t2,w2),…,(ti,wi)…(tn,wn)},(ti,wi)為每一維分量,該頁面的主題相關(guān)度sim(di,dj)就可以用向量夾角的余弦公式來衡量,夾角θ越小,說明主題相關(guān)度越大,反之則越小。

啟發(fā)式搜索就是根據(jù)已下載的頁面、鏈接錨文本以及鏈接的結(jié)構(gòu)關(guān)系來預(yù)測待抓取的目標(biāo)網(wǎng)頁的相關(guān)度,指導(dǎo)主題爬蟲的爬取方向,以便于發(fā)現(xiàn)更多的與主題相關(guān)的網(wǎng)頁,找到到達(dá)目標(biāo)結(jié)點(diǎn)的最佳路徑。
Fish-Seareh啟發(fā)式搜索算法[10]是DeBar于1994年提出來的,它在深度優(yōu)先搜索策略上的一種改進(jìn)。其主要思想是:根據(jù)種子站點(diǎn)和查詢的關(guān)鍵字,動態(tài)地維護(hù)一個(gè)待爬取URL優(yōu)先隊(duì)列,網(wǎng)頁被抓取后,提取它所有的URL鏈接,這些鏈接所對應(yīng)的網(wǎng)頁統(tǒng)稱為子網(wǎng)頁。如果抓取的是與主題相關(guān)的網(wǎng)頁,那么就把該網(wǎng)頁所對應(yīng)的子網(wǎng)頁的深度設(shè)置成一個(gè)預(yù)先設(shè)定的值;如果抓取的是與主題無相關(guān)的網(wǎng)頁,則把該網(wǎng)頁中的子網(wǎng)頁的深度設(shè)置成一個(gè)小于父網(wǎng)頁深度的值。當(dāng)深度減為零的時(shí)候,就停止這個(gè)方向的搜索。
基于分類器預(yù)測實(shí)現(xiàn)的主題爬蟲是一種比較有效的方法。Chakrabarti等于1999年提出的Focused crawling系統(tǒng)[11]是最早提出基于樸素貝葉斯分類的較為完善的主題爬蟲。其主要思想是:首先選擇開放URL目錄體系中若干個(gè)子類節(jié)點(diǎn)作為主題信息,再把這些子類節(jié)點(diǎn)的所包含的頁面作為訓(xùn)練樣本集,來構(gòu)造一個(gè)基于貝葉斯分類的分類器。對于一個(gè)新下載的頁面,首先送入分類器進(jìn)行預(yù)測,相關(guān)度大于閾值,就把頁面中的鏈接送入鏈接優(yōu)先權(quán)隊(duì)列;小于閾值的頁面,就連同它包含的鏈接一同丟棄。
隨著主題爬蟲在信息采集和數(shù)據(jù)挖掘方面的重要性日益突出,主題爬蟲的研究越來越受到人們的重視。本文首先概要介紹了通用網(wǎng)絡(luò)爬蟲和主題網(wǎng)絡(luò)爬蟲的特點(diǎn)和處理流程;接著在功能需求的基礎(chǔ)上,分析了主題網(wǎng)絡(luò)爬蟲的模塊設(shè)計(jì)及各個(gè)模塊的功能;最后對主題網(wǎng)絡(luò)爬蟲要實(shí)現(xiàn)的目標(biāo),研究了主題向量表示、相關(guān)度計(jì)算、啟發(fā)式搜索策略等系統(tǒng)涉及的關(guān)鍵算法。本文只是對主題爬蟲的體系結(jié)構(gòu)和關(guān)鍵算法進(jìn)行了初步的研究和嘗試,如何發(fā)現(xiàn)更多的網(wǎng)頁、如何抓取相關(guān)度更高的頁面及如何提高主題爬蟲的效率都是下一步值得研究和改進(jìn)的地方。
[1]葉昭暉,曾瓊,李強(qiáng).基于搜索引擎的網(wǎng)絡(luò)輿情監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].廣西大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,36(10):302-307.
[2]卓秀然,趙伯聽,郭國洪,等.基于網(wǎng)絡(luò)爬蟲的輿情信息采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].福建電腦,2012(4):134-135.
[3]何佳,周長勝,石顯峰.網(wǎng)絡(luò)輿情監(jiān)控系統(tǒng)的實(shí)現(xiàn)方法[J].鄭州大學(xué)學(xué)報(bào)(理學(xué)版),2010,42(3):82-85.
[4]S.Brin,L.Page.The anatomy of a large-scale hyPertextual search engine[R].Stanford University,1998:107-117.
[5]宋海洋,劉曉然,錢海俊,等.一種新的主題網(wǎng)絡(luò)爬蟲爬行策略[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(11):264-267.
[6]魏晶晶,楊定達(dá),廖祥文.基于網(wǎng)頁內(nèi)容相似度改進(jìn)算法的主題網(wǎng)絡(luò)爬蟲[J].計(jì)算機(jī)與現(xiàn)代化,2011(9):1-4.
[7]劉金紅,陸余良.主題網(wǎng)絡(luò)爬蟲研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2007,24(10):26-29.
[8]施聰鶯,徐朝軍,楊曉江.TFIDF 算法研究綜述[J].計(jì)算機(jī)應(yīng)用,2009(29):167-180.
[9]Qinglin Guo.The Similarity Computing of Documents Based on VSM[C]//Proceedings of Computer Software and Applications,2008.COMPSAC'08.32nd Annual IEEE International,2008:585-586.
[10]P.M.E.De Bra,R.D.J.Post.Searching for arbitrary information in the WWW:Thefish Search for Mosaic[C]//In 2nd World Wide Web Conference'94:Mosaic and the Web,Chieago,October,1994.
[11]Soumen Charkrabarti,Martin van den berg,Byron Dom,et al.A New Approach To Topic-specific web resource diseovery[J].Compute Networks,1999,31(11-16):1623-1640.