本發(fā)明涉及信息檢索領(lǐng)域,特別是涉及信息檢索中的網(wǎng)頁主題爬蟲。
背景技術(shù):
萬維網(wǎng)上的海量信息不斷地快速增長和更新,對這個海量信息庫進(jìn)行及時的收集一直是信息檢索研究和應(yīng)用的基礎(chǔ)問題,Web爬蟲正是解決該問題的經(jīng)典技術(shù)。在很多時候,人們僅僅需要搜索特定領(lǐng)域或主題的Web網(wǎng)站,完成這項任務(wù)的爬蟲技術(shù)即稱為主題爬蟲。不同領(lǐng)域都有大量的網(wǎng)站,對這些領(lǐng)域網(wǎng)站的自動爬取,是建立該領(lǐng)域的垂直搜索引擎以及特定領(lǐng)域數(shù)據(jù)挖掘和分析等應(yīng)用的基礎(chǔ)。雖然特定領(lǐng)域網(wǎng)站之間存在一定的鏈接關(guān)系,但是這也取決于網(wǎng)站的維護(hù)程度。如何全面、快速和精確地找到特定領(lǐng)域網(wǎng)站成了主題爬蟲系統(tǒng)需要解決的主要問題。另外由于網(wǎng)站更名和合并等因素,使得領(lǐng)域網(wǎng)站的識別有了一定難度。爬蟲系統(tǒng)需要從一些已給定的初始網(wǎng)站出發(fā),盡可能多的通過鏈接尋找到新的網(wǎng)站,并且實(shí)現(xiàn)網(wǎng)站爬取的更新。目前的主題爬蟲研究主要包括主題爬行算法和主題相似度計算算法。在主題爬行算法領(lǐng)域,不同于傳統(tǒng)爬蟲的寬度優(yōu)先和深度優(yōu)先搜索策略,主題爬蟲為了效率,在此基礎(chǔ)上發(fā)展出了多種多樣的算法。主要分為三類,基于文字內(nèi)容啟發(fā)式方法,基于Web超鏈圖方法,基于分類器的方法。基于文字內(nèi)容的啟發(fā)策略主要應(yīng)用的是網(wǎng)頁中的文本信息,主要有標(biāo)題,正文,鏈接,錨文本等?;赪eb圖的啟發(fā)策略的基本思想來自于文獻(xiàn)計量學(xué)的引文分析理論,這種理論能有效的應(yīng)用于Web環(huán)境。基于Web超鏈圖的方法可克服基于文字內(nèi)容難以精確描述主題以及分析效率問題。在主題相似度計算算法上,有研究者提出了基于概念主題相似度計算策略,一個關(guān)鍵字在不同的場合往往含有不同的含義,這對中文尤其明顯。采用概念的關(guān)鍵字集合能更加細(xì)致的對主題進(jìn)行描述。還有工作者提出了基于本體的自主學(xué)習(xí)的主題爬蟲策略,采用基于概念和關(guān)系的方法,收集現(xiàn)實(shí)真實(shí)生活中的數(shù)據(jù)作為本體來與網(wǎng)頁中提取的本體信息計算網(wǎng)頁的相似度。現(xiàn)有的網(wǎng)頁主題爬蟲方法存在兩方面的問題。一方面是發(fā)現(xiàn)特定領(lǐng)域網(wǎng)頁的爬取代價問題,為了發(fā)現(xiàn)特定領(lǐng)域中的網(wǎng)頁,需要對海量的網(wǎng)頁進(jìn)行過濾,這種爬取方式是建立在通用爬取的基礎(chǔ)上,實(shí)現(xiàn)代價太高。另一方面是發(fā)現(xiàn)和特定主題相關(guān)的網(wǎng)頁的爬取精度問題,即對爬取的網(wǎng)頁,需要能較精確地判定是否是特定主題的網(wǎng)頁。本發(fā)明旨在提出一種解決現(xiàn)有方法這兩方面不足的新型通用網(wǎng)頁爬蟲技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明主要解決的技術(shù)問題是提供一種基于搜索引擎的輕量級通用網(wǎng)頁主題爬蟲技術(shù),該方法有低代價、易實(shí)現(xiàn)、高效、準(zhǔn)確等優(yōu)點(diǎn)。為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是:提供一種基于搜索引擎的輕量級通用網(wǎng)頁主題爬蟲方法,包括步驟為:(1)初始種子:給定的少量描述特定主題相關(guān)種子,如商品簡稱和全稱等,然后根據(jù)一定規(guī)則,對種子進(jìn)行擴(kuò)充,使得每一個種子被擴(kuò)充為一系列種子;(2)發(fā)現(xiàn)網(wǎng)站:將初始種子轉(zhuǎn)換為查詢詞,通過搜索引擎接口獲得相關(guān)的若干網(wǎng)站,并經(jīng)過多層相關(guān)性過濾算法找到和查詢詞對應(yīng)的網(wǎng)站;(3)下載網(wǎng)站:將相關(guān)的網(wǎng)站下載到本地并存入數(shù)據(jù)庫;(4)網(wǎng)頁解析:從下載的網(wǎng)站進(jìn)行分析,獲取其中的鏈接信息,對相關(guān)性符合的鏈接,進(jìn)一步判斷其指向網(wǎng)站是否和主題相關(guān),如果相關(guān),則將該鏈接存為一個待爬取URL;(5)種子更新:在下載和爬取線程開始一段時間之后,或無法爬取到新網(wǎng)頁時,啟動種子更新線程,通過分析已爬取到的新網(wǎng)站,從中提取主題相關(guān)詞,并以此構(gòu)造新種子,保證爬取過程持續(xù)進(jìn)行;(6)爬取更新:根據(jù)已爬取網(wǎng)站的更新信息,計算重新爬取的周期,使得已爬取網(wǎng)站能實(shí)現(xiàn)自適應(yīng)的自動更新。在本發(fā)明一個較佳實(shí)施例中,步驟(1)中所述初始種子需要人工提供使得爬取持續(xù)進(jìn)行的主題相關(guān)詞匯,一般而言,特定領(lǐng)域的用戶都熟悉本領(lǐng)域內(nèi)的典型詞匯,因此這種提出初始種子的過程較為可行。在本發(fā)明一個較佳實(shí)施例中,步驟(2)中對所述將傳統(tǒng)繁重的爬蟲尋找相關(guān)網(wǎng)站的難題轉(zhuǎn)化為簡單的搜索查詢?nèi)蝿?wù),即利用目前成熟的搜索引擎查詢API,準(zhǔn)確定位和查詢詞相關(guān)的候選網(wǎng)站集合,這極大避免了主題爬蟲中漫無目遍歷網(wǎng)頁的過程,簡化了爬蟲整體設(shè)計。在本發(fā)明一個較佳實(shí)施例中,步驟(4)中所述網(wǎng)頁解析包括兩方面的重要目的,一方面是發(fā)現(xiàn)爬取到的網(wǎng)站中的外鏈,由此發(fā)現(xiàn)更多的主題相關(guān)網(wǎng)站,另一方面通過分析網(wǎng)頁文本來自動構(gòu)造新的種子,是實(shí)現(xiàn)種子更新的基礎(chǔ)。在本發(fā)明一個較佳實(shí)施例中,步驟(6)中所述爬取更新則是為了保證已爬取的網(wǎng)頁和實(shí)際的網(wǎng)站盡量保持一致,即爬蟲能根據(jù)實(shí)際網(wǎng)頁發(fā)生變化的過程,智能地調(diào)整自身重新對網(wǎng)站進(jìn)行爬取的周期。本發(fā)明的有益效果是:本發(fā)明的基于搜索引擎的輕量級通用網(wǎng)頁主題爬蟲方法,該方法相對于現(xiàn)有方法擁有低代價、易實(shí)現(xiàn)、高效、準(zhǔn)確等特點(diǎn),提出了一個基于搜索引擎的通用網(wǎng)頁主題爬蟲系統(tǒng)實(shí)現(xiàn)具體框架,提出了一種基于向量空間模型的相關(guān)網(wǎng)站三層主題過濾方法,設(shè)計并實(shí)現(xiàn)主題爬蟲的更新策略,還提出一種補(bǔ)種策略,彌補(bǔ)特定主題下的網(wǎng)站缺乏密集鏈接的局限性。附圖說明圖1是本發(fā)明基于搜索引擎的輕量級通用網(wǎng)頁主題爬蟲一較佳實(shí)施例的流程圖;具體實(shí)施方式下面結(jié)合附圖對本發(fā)明的較佳實(shí)施例進(jìn)行詳細(xì)闡述,以使本發(fā)明的優(yōu)點(diǎn)和特征能更易于被本領(lǐng)域技術(shù)人員理解,從而對本發(fā)明的保護(hù)范圍做出更為清楚明確的界定。請參閱圖1,本發(fā)明提供一種新型基于搜索引擎的輕量級網(wǎng)頁主題爬蟲方法,包括步驟為:(1)給定少量描述特定主題相關(guān)的詞匯作為種子,如某商品的簡稱和全稱等,并構(gòu)造該領(lǐng)域內(nèi)種子擴(kuò)充規(guī)則,如一個商品的種子可以通過品牌規(guī)則擴(kuò)充為一系列種子,一個學(xué)術(shù)會議的種子可以通過年份擴(kuò)充為一系列種子;(2)根據(jù)擴(kuò)充后的種子,將種子轉(zhuǎn)換為查詢詞,通過搜索引擎Google,Yahoo或Bing等提供的搜索查詢接口(該接口通常為JSON格式)得到與查詢詞相關(guān)的若干個候選網(wǎng)站。采用三層相關(guān)性過濾算法從候選網(wǎng)站中尋找和查詢詞對應(yīng)的網(wǎng)站;(3)將相關(guān)的網(wǎng)站下載到本地,具體包括把網(wǎng)站URL等信息存入爬取數(shù)據(jù)庫,并把網(wǎng)站結(jié)構(gòu)信息和網(wǎng)頁存入本地硬盤,不同網(wǎng)站的網(wǎng)頁采用文件夾進(jìn)行組織;(4)分析已爬取到的網(wǎng)站,獲取其中的鏈接信息,對相關(guān)性符合的鏈接,進(jìn)一步判斷其指向網(wǎng)站是否和主題相關(guān),如果相關(guān),則將該鏈接存為一個待爬取URL;(5)在分析已爬取網(wǎng)站的同時,從網(wǎng)頁文本中提取新的主題相關(guān)詞,并以此根據(jù)規(guī)則構(gòu)造新種子,保證爬取過程持續(xù)進(jìn)行。在下載和爬取線程開始一段時間之后,以及無法爬取到新網(wǎng)頁時,啟動種子更新線程;(6)在定期重爬取已爬取網(wǎng)站的同時,收集網(wǎng)站的更新信息,計算重新爬取的周期,使得已爬取網(wǎng)站能實(shí)現(xiàn)自適應(yīng)的自動更新。本發(fā)明中的新型基于搜索引擎的輕量級網(wǎng)頁主題爬蟲易于實(shí)現(xiàn)。首先,根據(jù)給定的種子,利用搜索引擎獲得初始網(wǎng)站集合;然后,通過網(wǎng)站間的鏈接關(guān)系發(fā)現(xiàn)更多的主題相關(guān)網(wǎng)站,其中采用基于向量空間模型的相關(guān)度過濾以及正則表達(dá)式匹配過濾錯誤的網(wǎng)站;最后,通過搜索引擎逐年對網(wǎng)站進(jìn)行補(bǔ)全,同時從新發(fā)現(xiàn)的網(wǎng)站中的鏈接構(gòu)造更多的種子。本發(fā)明中的主題相關(guān)過濾是一種新型的基于向量空間模型的相關(guān)網(wǎng)站三層主題過濾方法。首先,根據(jù)網(wǎng)站URL鏈接字符串、簡稱和全稱進(jìn)行初步的主題過濾;其次,進(jìn)一步利用搜集的領(lǐng)域典型網(wǎng)站的URL構(gòu)成的向量進(jìn)一步進(jìn)行過濾;最后,提取網(wǎng)站主頁的關(guān)鍵詞,并與領(lǐng)域背景知識進(jìn)行向量相關(guān)度計算,判斷網(wǎng)站是否是屬于特定主題。通過以上三層主題過濾,能有效過濾掉偏離主題的網(wǎng)站,減少需要爬取和分析的網(wǎng)頁數(shù)量。本發(fā)明中的主題爬蟲更新是一種新型的爬蟲更新策略。首先,根據(jù)網(wǎng)頁更新符合泊松分布的特點(diǎn),計算各網(wǎng)站內(nèi)網(wǎng)頁的更新周期,取其平均值作為站點(diǎn)更新周期;然后,以該周期作為爬蟲重新爬取網(wǎng)站的間隔周期初始值,利用自適應(yīng)的方法,根據(jù)網(wǎng)站動態(tài)變化情況調(diào)整更新周期,從而達(dá)到有效利用帶寬、合理重復(fù)爬取和保證網(wǎng)站實(shí)時性的目的。本發(fā)明中的爬蟲種子補(bǔ)充是一種新型的補(bǔ)種策略。領(lǐng)域網(wǎng)站之間往往缺乏密集的相互鏈接,這為主題爬蟲的效率造成較大的局限性。為了盡可能多地收集主題相關(guān)網(wǎng)站,系統(tǒng)定期從一些具有Hub鏈接特征的領(lǐng)域列表網(wǎng)站出發(fā),采用了BestFirstSearch的方法對URL進(jìn)行爬取,作為新的種子添加到種子集中,并分別利用BerkeleyDB和BloomFilter實(shí)現(xiàn)未訪問和已訪問URL隊列。本發(fā)明提出了輕量級網(wǎng)頁主題爬蟲的概念,用以克服傳統(tǒng)主題爬蟲在發(fā)現(xiàn)相關(guān)網(wǎng)站方面的效率問題,即將發(fā)現(xiàn)相關(guān)網(wǎng)站的過程轉(zhuǎn)換為一個簡單的搜索引擎查詢過程,避免了費(fèi)事耗力的爬取大量無關(guān)網(wǎng)站的過程。該輕量級網(wǎng)頁主題爬蟲概念的提出能極大地降低傳統(tǒng)主題爬蟲的實(shí)現(xiàn)難度。本發(fā)明的所有環(huán)節(jié)均進(jìn)行了大量的實(shí)驗(yàn)驗(yàn)證,包括搜索引擎訪問規(guī)律探查、網(wǎng)站解析策略比較、種子質(zhì)量對性能影響分析、網(wǎng)站鏈接特征和搜索引擎返回記錄數(shù)對比、搜索策略和關(guān)鍵參數(shù)進(jìn)行優(yōu)化選擇等。我們的實(shí)驗(yàn)結(jié)果表明,采用本發(fā)明的主題爬蟲系統(tǒng)在62小時內(nèi)的自動運(yùn)行中順利爬取到3109個計算機(jī)科學(xué)相關(guān)學(xué)術(shù)會議網(wǎng)站,基本包含了該領(lǐng)域的現(xiàn)有網(wǎng)站,說明了本發(fā)明具有較好的可行性和效率。以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。