徐昊 沈江明



摘 要:聚焦爬蟲(Focused Crawler)又稱為主題爬蟲,是從網絡上獲取特定主題數據的有效工具。為了避免傳統聚焦爬蟲預訓練主題相關性分類器的繁復工作,提出一種自舉聚焦爬蟲(Bootstrapping Focused Crawler),用于從特定網站群中收集主題數據。自舉聚焦爬蟲省略了預先訓練分類器的步驟,轉而采用一些樣本頁面以相似度排序的方式替代分類器功能。在實驗中,自舉聚焦爬蟲以犧牲一定準確率為代價,取得了0.62的召回率以及0.45的F1值,表現優于傳統聚焦爬蟲(召回率0.16、F1值0.25)。對于網站群主題數據采集任務,采用相似度排序替代主題分類器,不僅可以減輕分類器訓練負擔,還可以達到更好的效果。
關鍵詞:爬蟲技術;信息檢索;自舉聚焦爬蟲
DOI:10. 11907/rjdk. 201564 開放科學(資源服務)標識碼(OSID):
中圖分類號:TP393文獻標識碼:A 文章編號:1672-7800(2020)008-0109-04
Abstract: Focused crawler (also known as theme crawler) is an effective tool to get data in any specific domain from Web. However, conventional focused crawlers need a classifier to filter out the irrelevant webpages, and to get such a classifier is usually labor-intensive. In this paper, we propose a Bootstrapping Focused Crawler (BFC) for collecting information from a group of websites in the same category. Instead of pre-training a tailored classifier, BFC adopts a ranking module to do the classification. In the experiments, the recall and F1-score of BFC is significantly better than conventional focused crawler, from which we could draw the conclusion that our approach is more effective for the crawling tasks within a group of similar websites.
Key Words: Web crawler; information retrieval; bootstrapping focused crawler
0 引言
從Web上收集特定主題數據的技術可分為兩類:①基于搜索的發現技術[1-3],主要依靠搜索引擎查找網頁;②基于爬行的發現技術[4-6],主要利用Web鏈接結構從已下載的網頁中提取新鏈接,從而發現更多潛在的目標網頁。前者適用于存在一些關鍵字可區分主題數據和其它數據的情況,后者靈活性更強,代表技術就是聚焦爬蟲。
與普通爬蟲相比,聚焦爬蟲有明確的目標指向性,在爬取網頁過程中能夠丟棄不相關頁面,并始終跟蹤可能導向“相關”頁面的超鏈接,因而能更有效地收集特定主題的數據。聚焦爬蟲框架與一般爬蟲基本相同,也即是說,它從幾個種子鏈接(Seed URL)開始,下載相關頁面并提取其中包含的超鏈接,然后跟蹤這些超鏈接以獲取更多頁面。不斷重復該過程,直到無法以這種方式找到更多網頁。聚焦爬蟲的特殊之處在于,其會引入兩個分類器——路徑判別器和目標判別器,以決定某個超鏈接是否值得進一步訪問,以及某頁面是否值得保存。其中,路徑判別器負責判斷鏈接值得跟蹤與否,目標判別器負責根據網頁與主題相關與否對其進行歸類。
聚焦爬蟲研究主要集中在3個方面:一是如何獲得更有效的分類器,例如使用在線學習策略構建路徑判別器(目標判別器依然需要進行預訓練)[7,14-18];二是如何獲得更好的種子鏈接,例如維埃拉等[3]利用Bing搜索引擎,使用相關反饋(Relevance Feedback)收集種子;三是如何設計更好的爬行策略[8-12,19-22]。盡管這些研究從各個方面對聚焦爬蟲進行了改進,預先訓練分類器的工作仍不可省略,因此造成了爬蟲使用的不便。由于其分類器是任務相關的,換一個目標主題就要重新手動構建數據集進行訓練。
最近,KIEN[13]將聚焦爬行描述為一個排序問題,其跳過分類器訓練,只使用一些示例網站作為輸入。從樣本網站中提取關鍵詞,再通過關鍵字搜索、前向爬行和后向爬行擴展樣本網站集,其設計的系統根據與當前樣本網站的相似性選擇新的樣本網站。結果表明,通過適當的相似性度量,基于排序的聚焦爬蟲可取得與基于分類器的聚焦爬蟲相似的性能表現。但其問題設置與本文不同,其目標是得到相關網站,而不是網頁。因此,以上實踐啟發了本文用排序器替換預訓練分類器構建自舉聚焦爬蟲,以解決網站群內部的主題網頁發現問題。
本文設計一種自舉聚焦爬蟲(Bootstrapping Focused Crawler,簡稱BFC),該方法為聚焦爬蟲提供一些示例網頁,而不是預先訓練的分類器,從而可略過繁復的分類器訓練過程。該方法適用于特定網站群中的主題數據收集,例如收集各大學錄取信息、各公司招聘信息、各政府網站的政策信息等。圖1展示了兩個爬取任務示例。任務難點在于,上千所高校、公司雖然網站架構類似,但每個節點對應的超鏈接文字用詞千差萬別,路徑深度與目標頁面特征也存在顯著差異。因此,在不預訓練分類器的前提下,只提供少量樣例網頁充當爬蟲向導,是一種新的嘗試。
由于特定網站群是眾多一手信息的源頭,如果能及時、有效地收集相關信息并匯聚起來,將極大地降低信息瀏覽門檻,并催生出數據可視化等應用。因此,本文提出的網站群爬蟲具有很強的現實意義。
1 自舉聚焦爬蟲
自舉聚焦爬蟲框架如圖2所示。
程序有兩個輸入:一個是網站群站點(Website)列表,一個是少量樣例網頁,每個樣例網頁包含其所在站點的根鏈接和自身鏈接這一對元素。首先,對樣例網頁進行路徑提取與特征提取。在傳統聚焦爬蟲框架下,需要一個能引導爬蟲到目標節點的向導(路徑判別器),以及能夠區分目標節點與其它節點的評委(目標判別器)。路徑提取目標是構建路徑判別器,而特征提取目標是構建目標判別器。區別在于,本文提出的自舉聚焦爬蟲用相似度排序模塊替代傳統框架下的目標判別器,用類似于強化學習的手段在線構建路徑判別器。然后利用兩個判別器從輸入的網站群根節點開始循環抓取網頁,并不斷把最相關的網頁加入網頁樣例庫,用于更新兩個判別器。該流程循環進行,直到無法發現更多網頁或達到迭代次數上限為止。
1.1 路徑判別器
路徑判別器本質上是一個二分類器:輸入一個超鏈接短文本,輸出其是否與要爬取的主題相關,或沿著該鏈接是否能找到與主題相關網頁。在網站群爬蟲這個具體應用場景中,存在一條從站點根節點到當前頁面的超鏈接路徑(見圖1),可利用這條路徑上的前序文本增強當前鏈接短文本的判斷準確度。因此,本文通過路徑提取將傳統路徑判別器的單一短文本輸入擴充為短文本列表。
2 爬取效果
2.1 實驗任務與數據集
本文按照中國大學排行榜,收集了中國排名前200的大學官方網站頁面集合作為實驗數據集。為檢驗爬蟲性能,定義主題爬取任務如下:獲取高校歷史錄取分數相關頁面。本文手動標記每個站點與所需主題相關頁面(URL)作為真實標簽,數據集頁面總數為41 600,其中正樣本數量為1 033。
為得到樣例網頁庫作為算法輸入,本文從200個網站中隨機抽取3個網站,并為每個網站標記一個示例頁面,得到3個樣例(每個樣例含有一對數據,即目標網頁的URL以及所在網站根節點的URL)。通過對4組使用不同樣例集的爬蟲計算平均得分,得到BFC性能得分。
2.2 效果展示
本文選取傳統聚焦爬蟲(FC)作為基線算法進行對比。出于公平性考慮,FC所需分類器基于樣例網頁庫的少量正樣本,采用KNN算法獲得。本文提出的自舉聚焦爬蟲(BFC)與基線算法FC在高校歷史錄取分數爬取任務中的表現對比如表1所示。
由表1可以看到,BFC的準確率(Precision)比傳統方法FC低很多,其原因是FC爬取頁面數量較少,以極低的召回率(Recall)為代價獲得了較高準確率。然而,在爬蟲實際使用過程中,召回率更為重要,因為要盡可能全面地收集所需信息,而在自動篩選環節一旦遺漏相關信息,就很難再找到目標網頁。在召回率方面,BFC的表現遠好于FC。綜合準確率和召回率的指標F1-Score也顯示BFC的性能優于FC。
爬取部分結果如圖3所示。圖中name列輸出爬取站點,url列輸出任務相關頁面網址,path列輸出從網站根節點到頁面的路徑,score是該頁面相關性得分。
3 結語
本文設計一種自舉聚焦爬蟲用于特定網站群中的主題數據收集,該方法以聚焦爬蟲為基礎,替代了預先訓練路徑分類器和目標分類器的步驟,轉而通過提供一些示例網頁,通過排序模塊進行相關性判別工作。在大學錄取信息爬取任務中,本文方法獲得了62%的召回率,遠高于傳統方法。因此,針對網站群主題數據采集任務,實驗結果表明,采用相似度排序替代主題分類器不僅可以減輕分類器訓練負擔,還可以達到更好的效果。對于一般性的主題數據采集任務,也可以嘗試利用本文思路。
參考文獻:
[1] DISHENG Q, LUCIANO B, XIN L,et al. Dexter: large-scale discovery and extraction of product specifications on the web[C]. Proceedings of the VLDB Endowment, 2015:2194-2205.
[2] XUEZHI W, CONG Y, SIMON B,et al. Relevant document discovery for fact-checking articles[C]. ?In Companion Proceedings of the Web Conference, 2018: 525-533.
[3] KARANE V, LUCIANO B, ALTIGRAN S D S, et al. Finding seeds to bootstrap focused crawlers[C]. ?In The World Wide Web Conference, 2016: 449-474.
[4] LUCIANO B, SRINIVAS B,VIVEK K R S. Crawling back and forth: using back and out links to locate bilingual sites[C]. ?In Proceedings of 5th International Joint Conference on Natural Language Processing, 2011:429-437.
[5] TSUYOSHI M. Finding related web pages based on connectivity information from a search engine[C]. ?In WWW Posters, 2001.
[6] LUCIANO B. Harvesting forum pages from seed sites[C]. ?In International Conference on Web Engineering, 2017: 457-468.
[7] MCCALLUM A, NIGAM K, RENNIE J, et al. A machine learning approach to building domain-specific search engines[C]. ?Proceedings of the Sixteenth International Joint Conference on Artificial Intelligence,1999:662-667.
[8] MICHAEL H, MICHAL J, YOELLE S M,et al. The shark-search algorithm. An application: tailored Web site mapping[J]. ?Computer Networks & Isdn Systems, 1998, 30(1-7):317-326.
[9] BERGMARK D, LAGOZE C, SBITYAKOV A. Focused crawls, tunneling, and digital libraries [C]. Proceedings of the 6th European Conference on Research and Advanced Technology for Digital Libraries,2002.
[10] MARISTELLA A, COSTANTINO T. Research and Advanced Technology of digital libraries[M]. Springer Berlin Heidelberg, 2002:91-106.
[11] 葉勤勇. 基于URL規則的聚焦爬蟲及其應用[D]. 杭州:浙江大學, 2007
[12] BRA P M E D,POST R D J. Information retrieval in the World-Wide Web: making client-based searching feasible[J]. Computer Networks & Isdn Systems, 1994, 27(2):183-192.
[13] KIEN P, AECIO S, JULIANA F. Bootstrapping domain-speci c content discovery on the Web[C]. In The World Wide Web Conference, 2019: 1476-1486.
[14] 傅向華,馮博琴,馬兆豐,等. 可在線增量自學習的聚焦爬行方法[J]. 西安交通大學學報,2004,38(6):599-602.
[15] 劉國靖,康麗,羅長壽. 基于遺傳算法的主題爬蟲策略[J]. 計算機應用,2007,27(12):172-174.
[16] 曾廣樸,范會聯. 基于遺傳算法的聚焦爬蟲搜索策略[J]. 計算機工程,2010,36(11):167-169.
[17] 童亞拉. 自適應動態演化粒子群算法在Web主題信息搜索中的應用[J]. 武漢大學學報(信息科學版),2008,33(12):1296-1299.
[18] 賀晟,程家興,蔡欣寶. 基于模擬退火算法的主題爬蟲[J]. 計算機技術與發展,2009,19(12):55-58.
[19] 宋海洋,劉曉然,錢海俊. 一種新的主題網絡爬蟲爬行策略[J]. 計算機應用與軟件,2011,28(11):264-267.
[20] 謝志妮. 一種新的基于概念樹的主題網絡爬蟲方法[J]. 計算機與現代化,2010,176(4):103-106.
[21] 左薇,張熹,董紅娟,等. 主題網絡爬蟲研究綜述[J]. 軟件導刊,2020,19 (2): 278-281.
[22] 韓瑞昕. 基于時效性的爬蟲調度[J]. 軟件導刊,2020,19(1):108-112.
(責任編輯:黃 健)