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

圖1 通用網絡爬蟲工作流程

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

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

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

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

啟發式搜索就是根據已下載的頁面、鏈接錨文本以及鏈接的結構關系來預測待抓取的目標網頁的相關度,指導主題爬蟲的爬取方向,以便于發現更多的與主題相關的網頁,找到到達目標結點的最佳路徑。
Fish-Seareh啟發式搜索算法[10]是DeBar于1994年提出來的,它在深度優先搜索策略上的一種改進。其主要思想是:根據種子站點和查詢的關鍵字,動態地維護一個待爬取URL優先隊列,網頁被抓取后,提取它所有的URL鏈接,這些鏈接所對應的網頁統稱為子網頁。如果抓取的是與主題相關的網頁,那么就把該網頁所對應的子網頁的深度設置成一個預先設定的值;如果抓取的是與主題無相關的網頁,則把該網頁中的子網頁的深度設置成一個小于父網頁深度的值。當深度減為零的時候,就停止這個方向的搜索。
基于分類器預測實現的主題爬蟲是一種比較有效的方法。Chakrabarti等于1999年提出的Focused crawling系統[11]是最早提出基于樸素貝葉斯分類的較為完善的主題爬蟲。其主要思想是:首先選擇開放URL目錄體系中若干個子類節點作為主題信息,再把這些子類節點的所包含的頁面作為訓練樣本集,來構造一個基于貝葉斯分類的分類器。對于一個新下載的頁面,首先送入分類器進行預測,相關度大于閾值,就把頁面中的鏈接送入鏈接優先權隊列;小于閾值的頁面,就連同它包含的鏈接一同丟棄。
隨著主題爬蟲在信息采集和數據挖掘方面的重要性日益突出,主題爬蟲的研究越來越受到人們的重視。本文首先概要介紹了通用網絡爬蟲和主題網絡爬蟲的特點和處理流程;接著在功能需求的基礎上,分析了主題網絡爬蟲的模塊設計及各個模塊的功能;最后對主題網絡爬蟲要實現的目標,研究了主題向量表示、相關度計算、啟發式搜索策略等系統涉及的關鍵算法。本文只是對主題爬蟲的體系結構和關鍵算法進行了初步的研究和嘗試,如何發現更多的網頁、如何抓取相關度更高的頁面及如何提高主題爬蟲的效率都是下一步值得研究和改進的地方。
[1]葉昭暉,曾瓊,李強.基于搜索引擎的網絡輿情監控系統設計與實現[J].廣西大學學報(自然科學版),2011,36(10):302-307.
[2]卓秀然,趙伯聽,郭國洪,等.基于網絡爬蟲的輿情信息采集系統設計與實現[J].福建電腦,2012(4):134-135.
[3]何佳,周長勝,石顯峰.網絡輿情監控系統的實現方法[J].鄭州大學學報(理學版),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]宋海洋,劉曉然,錢海俊,等.一種新的主題網絡爬蟲爬行策略[J].計算機應用與軟件,2011,28(11):264-267.
[6]魏晶晶,楊定達,廖祥文.基于網頁內容相似度改進算法的主題網絡爬蟲[J].計算機與現代化,2011(9):1-4.
[7]劉金紅,陸余良.主題網絡爬蟲研究綜述[J].計算機應用研究,2007,24(10):26-29.
[8]施聰鶯,徐朝軍,楊曉江.TFIDF 算法研究綜述[J].計算機應用,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.