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