摘要:介紹了基于文檔矢量模型進行文檔相關度計算的面向職業教育的主題蜘蛛,并結合頁面鏈接上下文信息對URL進行預過濾,可采用多機并行下載提高收集效率。在一個面向Internet 的職業教育檢索的搜索引擎中得到了具體實現,整個系統在低性能的臺式機上就能運行,并可獲得較高的職業教育頁面的收集精度和收集效率。
關鍵詞:職業教育;搜索引擎;主題蜘蛛
中圖分類號:TP393.09 文獻標識碼:A 文章編號:1009-3044(2008)27-2009-03
The Design and Realization of the Topical-spider for Professional Education
MA Jian-hua
(Department of Educational Technology, Nanjing Normal University, Nanjing 210097, China)
Abstract: In this paper, introducing the topical-spider for professional education that applying to document-vector-model, this system calculates the relevant-degree and filters pages refering to the linked information. It is also able to be downloaded by multi-computers simultaneously ,thus improves the gleaning efficiency. Being realized in searching engine for professional education on the Internet, the system can run in low-performance-compter. Meanwhile, more precise and efficient amassment are available.
Key words: professional education; searching engine; topic spider
當今的世界是信息的世界,網絡上的信息資源飛速膨脹,如何在浩如煙海的信息空間里快速查找并獲取所需要的信息,已成為信息時代最根本的問題之一[1]。從中國互聯網絡信息中心(CNNIC)在京發布的第20次中國互聯網絡發展狀況統計報告了解到,截至2007年6月,中國網站數量已經達到131萬個,半年內增加了47萬個,比2006年同期增加了52萬個,年增長率達到66.4%[2]。教育網站占我國總網站數量的0.8%。職業教育網站和資料近年來在相關政策的扶持下得到了迅猛的發展, 2006年,全國中等職業技術學校配備了212萬臺計算機,每100名學生擁有計算機數量達到12.87臺。5600多所中等職業學校建成了不同技術方案的校園網,占全國中等職業學校總數的30%。從2002年起開通運行“中國職業教育與成人教育網站”。目前,60%多的省份建成省級職業教育網站[3]。
目前,諸多的搜索引擎[4]中沒有一個是針對職業教育的搜索引擎,而職業教育資源和網站目前相對來說又相對豐富,如果用通用的搜索引擎去檢索相關資料時,結果是不令人滿意。本文通過介紹基于職業教育的主題式蜘蛛程序從互聯網上抓取相關的網頁和資源,從而為構建一個基于職業教育的專業搜索引擎打下基礎。
在本文設計的面向職業教育的主題蜘蛛中,采用頁面鏈接級、頁面內容級雙重過濾機制,對下載過程中的頁面進行過濾;同時根據鏈接模文本及權威種子表計算所有鏈接的相關度,并根據預定的閥值過濾掉低于閥值的鏈接,從而保障相關的鏈接入庫。將收集到的鏈接作為待下載的種子存放到種子表。主題蜘蛛不斷從種子表中讀取種子直到全部讀取完畢。在種子全部讀取完畢時進入等待,等待下一次重新抓取。
1 系統結構
在整個系統中,首先要構造職業教育的特征詞表[5],特征詞表是通過指定若干相關網頁(稱為網頁樣本)來確定。通過選定的樣本網頁進行分詞[6]及詞頻統計,按詞頻的高低保存到特征詞表。構造好種子表后,蜘蛛從種子表讀取一定的種子網址進行下載,對于每一個搜集到的資源采用相關的分析計算方法,多層次過濾[7]機制進行信息過濾,通過共享數據庫系統可以并行進行Web 頁面收集。當種子表的網址抓取完后,根據設定的時間間隔又開始重新下載,進入更新階段。主題蜘蛛的系統結構如圖1所示。

從系統結構圖可以看出,系統實現面向職業教育的主題蜘蛛的功能主要由三部分組成:1) 特征詞獲取模塊:通過讀取給定的樣本網頁,運用分詞及詞頻統計的方法得到按詞頻[8]高低排序的表,經過人工選取職業教育相關的特征詞,存入特征詞表;2) 初始化種子模塊:在構造好特征詞表后,分別用這些特征詞在谷歌、百度和雅虎三個搜索引擎中搜索,將查詢結果靠前N條的網址插入到種子表中;3) 分析過濾模塊:從種子表讀取要下載的網址,再根據特征詞表提供的特征詞,對下載的資源進行相關度計算,判斷相關后存入文檔庫。同時判斷該網頁中所有的鏈接是否和職業教育相關,將相關的網址存放至種子表。
2 實現策略
面向職業教育的主題蜘蛛在模塊上主要由三個模塊構成:特征詞獲取模塊,初始化種子表模塊及分析過濾模塊。下面將詳細介紹各模塊的實現策略。
2.1 特征詞獲取模塊的實現策略
特征詞獲取是對給定的樣本網頁進行分詞和詞頻統計。程序在獲得輸入的樣本網頁后先進行預處理[9],去除所有HTML標記,只留下文本。利用分詞程序對所有剩下的文本進行分詞處理,用詞頻統計計算每個詞在文檔中出現的頻率,按從高到低的順序排列,最后經過人工選取與職業教育相關的詞。之所以在最后需要人工篩選是為了保證特征詞的準確性,如果特征詞與職業教育有偏離的話,后面下載的網頁的相關度將會有所下降。在這一階段認真選取了300篇樣本網頁篩選了大概2500個與職業教育相關的詞,并將詞頻的分值作為權重。
2.2 初始化、更新種子表
涉及種子表的操作有兩部分:初始化及更新。
2.2.1 初始化種子表
初始化種子表是在構造好特征詞后,選取最具代表性的若干個特征詞,在谷歌、百度和雅虎三個通用搜索引擎中進行搜索。將搜索出來的結果經過去重后插入到種子表中。
特征詞經過人工篩選后,與職業教育具有很高的相關度,從中再選取大約500個權重最高的詞通過程序自動地在谷歌、百度和雅虎三大搜索引擎中分別進行檢索。每個特征詞檢索出來的結果會有許多,經過多次實驗,每次檢索后選取前150條的檢索結果。因為每個搜索引擎對同一關鍵詞的檢索結果不盡相同,有部分是重復的。所以就將這些結果放到一個結果集中,去除相同的網址。為了保證種子網址的質量,只對一級網址進行收錄,即一個網站的主機域名[10],比如:http://www.baidu.com/,用正則表達式即可輕松的判斷。通過實驗共收錄了大約12000條種子網址。表2給出了前幾條網址示例。

2.2.2 更新種子表
為了使種子表不斷地有新的種子加入,讓蜘蛛不斷地連續地運行,需要一種有效的機制不斷地向種子表插入新種子。經過實驗發現用戶的檢索詞[11]和下載表中主機名最多的網址仍可以捕捉到相當多的種子。
用戶的檢索關鍵詞在目前階段是最能反應用戶的需求,用戶在職業教育搜索引擎檢索想要的資源都是通過關鍵詞的匹配[12]來獲取的。當搜索引擎檢索不到與關鍵詞相匹配的資源時,說明在下載的表中沒有相應的資源,此時把該關鍵詞按上面的初始化種子表的方法,在通用搜索引擎中獲得網址再判斷其相關度。
2.3 分析過濾模塊
分析過濾模塊是本系統的核心部分,實現對資源及鏈接的過濾。主題蜘蛛每次工作開始前都會從種子表里讀取種子,逐條下載種子所指的網站,計算其相關度判斷是否入庫;獲得所有頁面的鏈接,判斷每條鏈接的相關度,如果大于閥值就保存入庫,否則丟棄。
分析過濾模塊包括兩部分:資源的相似度計算和鏈接的相關度計算。
2.3.1 資源的相似度計算策略
對于網站的內容,主要下載HTML頁面、PDF 、XLS、DOC 、PPT 以及圖像、音頻、視頻、動畫教學信息等。在網頁頭部信息中的Content-Type[13]以“text/”開頭的都是文本格式,無需解析,而其它格式的則需要格外的解析才能得到正確的內容,所以要把方本格式的網頁計算和二進制資源的計算分開。
1) 網頁的相似度計算策略
網頁的相似度用的是采用向量空間模型[14]進行判斷。對特征詞表里的每組特征詞可以看作是由一組特征項(T1,T2,…,Tn)構成,對于每一個特征項,其權值為(W1,W2,…,Wn),即特征詞表可以表示為 [W]=∑TiWi;而對于搜索到的網頁,則可以表示為[D]=∑TiDi 其中,Di表示該網頁對于特征項Ti的權值。通過構造一個n維坐標系,以特征項(T1,T2,…,Tn)為其n維坐標,此時,特征詞表的權值(W1,W2,…,Wn)就對應成該坐標系的一個空間向量[W]。而對于每一個搜索到的網頁,也可以用一個相應的空間向量[D]來表示。
這時,要對搜索到的網頁與特征詞表里的特征詞作相似度比較,可以認為是空間向量[W]與[D]之間的相似度比較,而評價向量之間的相似度,可以簡化為向量空間兩個向量的夾角以及向量之間的距離來判斷。夾角越小,距離越短,就表示相似度越高。因此可采用如下近似公式來計算搜索到的網頁與特征詞之間的相似度:S=D*W=∑Di*Wi ,S越大,表明相似度越高。
2) 二進制資源的相似度計算策略
二進制資源指的是指網頁頭部信息中的Content-Type除“text/”開頭以外的格式,如擴展名為.jpg、.gif、.rm、.dat等常見的方件格式。這些文件大致可以歸為四類:文檔資源、圖像資源、動畫資源、軟件資源。由于二進制資源大小不一,有的幾MB,大的可能幾百MB,如果要把這些資源下載下來再計算相關度的話是非常耗費帶寬和硬盤空間。這里采用文字周圍指定范圍內的上下文文本(anchor-text-context) 及資源鏈接的模文本[15],低于閥值的則丟棄。
2.3.2 鏈接的相似度計算策略
為了使主題蜘蛛所用到的種子表不斷有新的種子加入,從而可以不斷地抓取到新的內容,考慮采用如下公式計算:
鏈接相關度 = 鏈接模文本相關度 + 網址相關性 + 深度值
其中公式中的鏈接模文本的相似度計算采用向量空間模型。網址相關性計算主要是查看網址中是否含有職業教育的重要域名,如果含有則增加相應的權重。深度值的計算則是根據網址的深度來判斷,如果層次越深則相應的值越低。
3 系統實現
程序采用多線程的機制,使系統更高效、更靈活。其中有兩個重要的類來實施線程機制:Manager和Worker類。Manager類管理分配線程,控制每個線程的狀態,定義相應的事件。Worker類是線程執行的方法,負責下載的類,從Manager的種子隊列中獲取一個種子網址,并進行下載,下載到頁面之后分析網頁中的所有鏈接,計算相關度,相關度高的存入種子隊列。判斷是文本格式的還是二進制格式的資源,如果是文本格式的網頁則將源文本存放到數據庫;如果是二進制格式的資源,則只保存其鏈接到數據庫。圖2為蜘蛛下載的流程圖。
本系統主要基于Microsoft Visual Studio.net 2005 和SQL Server 2000,采用C#語言開發和流行的三層架構[16]技術。
4 實驗數據
實驗是在一臺1.4GHzCPU,256MB內存,40GB硬盤的臺式機上進行的。當時的環境配制參數是線程數為8,相關性參數為0.35,閥值為0.028。收集的部分數據情況見表3,系統資源占用情況見表4。

在兩天的時間里,共抓得19萬個網頁資源(網頁及資源鏈接),數據庫大小為5.34GB。
5 結束語
面向職業教育的主題蜘蛛作為職業教育搜索引擎的核心部分,負責從互聯網上下載相關的資源。與一般通用蜘蛛不同的是,采用了人工搜集特征詞表,極大地保障地與職業教育的相關性。初始的種子表從各通用搜索引擎中收集得到,經過人工的挑選,篩選不相關的網址。在計算資源的相關性時采用VSM向量空間模型的計算方法,簡單方便。在計算鏈接的相關性時采用多重計算方法,通過實驗數據說明該方法更高效。系統的各項參數都是通過配置文件讀取,更靈活。根據設定的參數,系統可以自動地在指定的時間間隔后重新抓取當種子表下載完一遍時。
參考文獻:
[1] 李名智.中文搜索引擎:現裝、問題及對策[J].大學圖書館學報,1998,12(4):98-100.
[2] CNNIC,第20次中國互聯網絡發展狀況統計報告[EB/OL].[2007-07][2008-1-16].http://www.cnnic.net.cn/html/Dir/2007/07/17/4722.htm.
[3] 國家教育部職業教育與成人教育司,中國職業教育信息化發展報告[EB/OL].[2007-06].[2008-1-11].http://www.edu-info.moe.edu.cn/zhuanti/ppt/17amJ01_Zhichengsi.ppt.
[4] 徐寶文,張衛豐.搜索引擎與信息獲取技術[M].北京:清華大學出版社,2003.
[5] 景麗萍,黃厚寬.Web文本挖掘與特征選取[J].電腦與信息技術,2002,1(1).
[6] 歐振猛,余順爭.中文分詞算法在搜索引擎中的研究[D],1999.
[7] J.Dean and M.R. Henzinger,Finding related pages in the word wide web[R].in: 8th Word Wide Web Conference, Toronto. May 1999.
[8] 梁南元.漢語計算機自動分詞知識[J].中文信息學報,1990,4(1):37-43.
[9] Gerald Huck,Peter Fankhauser,KarlAberer,etal Extracting and Synthesizing Information from the Web[D].New York:in COOPIS,1998.
[10] J. Cho. H. Garcia-Molina,and L. Page.Efficent Crawling Through URL Ordering[J]. Compuer Networks,1998,30(7):161-172.
[11] A. McCallum et al..Building Domain-Specific Search Engines with Machine Learning Techniques[R],Proc. AAAI Spring Symp.Intelligent Agents In Cyberspace,AAAI Press,1999:28-29.
[12] O.Etzioni,Moving up the information food chain:develoying softbots on the word wide web[M],in:Proc.Of AAAI-96,1996.
[13] 李盛韜.主題Web信息采集的研究與設計[M].北京:清華大學出版社,2003.
[14] 張義忠,趙明生,朱精南.基于內容的網頁特征提取[J].計算機工程與應用,2001,10(4):23-33.
[15] Chakrabarti, S.,van den Berg, M.,Dom, B.:Distributed hypertext resource discovery through examples[R].In:Proceedings of the 25th VLDB Conference,Edinburgh,Scotland,Morgan-Kaufman(1999):375-386.
[16] Richard Blum 著.C#網絡應用編程[M].北京:電子工業出版社,2003.