何頂軍
(瀘州職業技術學院,四川 瀘州 646000)
AI(Artificial Intelligence)技術是當前飛速發展的熱門技術之一,AI 技術和大數據技術是許多智能系統中的關鍵技術?;诰W絡信息的AI 系統要實現其智能化,必須以海量數據作為前提。Internet 的飛速發展加快了網絡信息爆炸式增長,要在網絡中找到有用的信息有如大海撈針。雖然搜索引擎的出現在一定程度上緩解了這個問題,但是,針對某一特定主題,通用搜索引擎具有信息冗余大、內存占用高、消耗大量系統資源、查準率低和個性化需求弱等問題[1]。為彌補通用搜索引擎的這些缺陷,主題網絡爬蟲(Topical Web Crawler)技術應用而生。主題網絡爬蟲是網絡爬蟲的一個重要分支,它只抓取用戶特定的、與主題相關的網頁,忽略與主題無關的網頁,具有準確性、深入性和專業性等特點。
爬蟲是模擬用戶瀏覽網頁或Web 應用的自動化程序。網絡爬蟲通??梢苑譃橥ㄓ镁W絡爬蟲(General Purpose Web Crawler)、主題網絡爬蟲(Topical Web Crawler)或叫聚焦網絡爬蟲(Focused Web Crawler)、增量式網絡爬蟲(Incremental Web Crawler)和深層網絡爬蟲(Deep Web Crawler)。
通用網絡爬蟲又稱全網爬蟲(Scalable Web Crawler),從一個或若干個初始URL 開始,擴展到整個Internet,通常被搜索引擎和大型Web 服務提供商所掌握和使用。
主題網絡爬蟲就是過濾與主題無關的URL,保留主題相關的URL 并將其放入待抓取的隊列;然后按照一定策略從隊列選出下一步要抓取的URL,重復至中止條件滿足。
增量式網絡爬蟲是指對已下載網頁采取增量式更新和只爬取新產生的或者已經發生變化網頁的爬蟲,它能夠在一定程度上保證所爬行的頁面是盡可能新的頁面。
深層網絡爬蟲是專門針對那些大部分內容不能通過靜態鏈接獲取的、隱藏在搜索表單后的,只有用戶提交一些關鍵詞才能獲取的Web 頁面。如用戶注冊后才可見的網頁就需要使用深層網絡爬蟲進行爬取。
爬蟲獲取網頁與人工獲取網頁類似,主要經歷了以下四個階段:
1.查找域名對應的IP 地址。
2.向IP 對應的服務器發送請求。
3.服務器響應請求,發回網頁內容。
4.瀏覽器解析網頁內容。
主題網絡爬蟲一般由以下模塊組成:網頁下載模塊、網頁分析模塊、鏈接過濾模塊、網頁存儲模塊、URL 隊列模塊。
網頁下載模塊,根據URL 獲取IP 地址后,模擬瀏覽器發出http 請求,從服務器下載目標網頁。當前可選擇python 或java 主流語言來實現,會涉及服務器反爬技術和非靜態頁面的爬取等難點,但可使用代理服務器、分布式爬蟲、session 等技術加以解決。
網頁分析模塊主要分析網頁標題、網頁內容等與主題的相關性,對相關的網頁進行保存,并按照相關性的大小進行相應處理。
鏈接過濾模塊判斷、預測新獲取的URL 與主題的相關性,對可能相關的URL 添加到隊列進行排隊下載,大大減少無關網頁下載占用的時間、空間和帶寬。
網頁存儲模塊主要對相關的網頁進行信息的提取,結構化存儲,以備智能系統其他模塊進一步對數據的挖掘和處理。
URL 隊列模塊維護一個待下載的隊列,并根據優選級對隊列中的URL做排序處理。
主題網絡爬蟲與傳統網絡爬蟲最顯著的區別是選擇與主題相關的網頁,過濾掉與主題無關的網頁,所以鏈接過濾模塊是最核心的模塊。主題網絡爬蟲的主要工作步驟如下:
1.確定種子URL,通常由人工在配置文件或可視化界面中進行設定。
2.種子URL 放入待抓取隊列。
3.根據URL 選取規則從隊列中選取1 個URL 進行下載。隊列中URL 往往有許多個,所以存在優選級排序問題,可以使用多線程或分布式爬蟲技術一次處理多個URL。
4.解析網頁,存儲網頁,獲取新的URL。根據過濾策略判斷新的URL是否與主題相關,如果相關則轉步驟2 把新的URL 添加到隊列,否則丟棄該URL 轉5。
5.判斷是否達到終止條件,如果達到終止條件轉6,否則轉2。6.終止。
Web 上所有網頁都是通過超鏈接實現互相訪問,本質是從種子URL 開始的具有層次的樹型結構。如果一個種子頁面A 中包括BCD 四個子頁面,頁面B 包含子頁面E,頁面C 包含子頁面F,形如圖1 所示:
廣度優先(Breadth-First-Search)遍歷策略:按照層次由淺到深的次序訪問,即首先訪問第0 層的所有頁面,再訪問第1 層的所有頁面,第2 層的所有頁面,……,最后訪問第n 層的所有頁面,同一層頁面按照從左到右的次序訪問。按照此策略對圖中6 個頁面的搜索順序是A-B-C-D-E-F。
深度優先(Depth-First-Search)遍歷策略:依然是按照層次由淺到深的次序訪問,但每層每次僅從左到右訪問第1 個未被訪問過的節點后進入下一層,直到縱深方向沒有可訪問節點后再回退到種子節點重新開始下一輪由淺到深的搜索。按照此策略對圖中6 個頁面的搜索順序是A-B-E-CF-D。
除了以上2 種最常用的搜索策略之外,有時也會使用反向鏈接數策略,Partial PageRank 策略,大站優先策略等,此處不再贅述。
語義分析是自然語言(Natural Language Processisng,NLP)中的核心部分,主要包括詞法分析、句法分析、語用分析和語境分析等。[2-3]
語義分析在主題網絡爬蟲中的處理流程如下:
1.對網頁的中英文進行分詞操作,過濾掉錯誤的短語和停用詞。
2.統計關鍵詞出現次數并計算頻率,根據次數、頻率、主題得出關鍵詞的權重。
3.把網頁信息處理成n 個分量的網頁向量,即每個關鍵詞在網頁中所占的權重。最后根據余弦公式計算出向量相似度。
4.根據相似度值對網頁做進一步過濾。
主題網絡爬蟲應用到智能AI 系統中,增強了智能系統的智能性,在沒有數據、數據量少或嚴重依賴網絡數據的系統中顯得尤為重要。根據2個基金項目開發的AI 智能系統的實踐表明,主題網絡爬蟲對獲取、處理特定話題的信息非常有效,而且準確性較高。在設計基于主題網絡爬蟲的智能應用系統時應該注意結合多種算法提高信息獲取的準確性,通過精心設計過濾規則和爬取條件來減少不必要的資源開銷,通過分布式爬蟲解決速度問題和反爬問題。