摘要:將動態異構的Web信息資源進行抽取以統一的方式供用戶查詢和使用,是當前迫切需要解決的問題。介紹了分析相關Web頁面的方法和經驗,實現了自動提交HTML表單獲得所需頁面和對頁面的信息抽取。最后,實驗證明了此方法的有效性。
關鍵詞:網頁分析; 信息抽取; 模式匹配
中圖分類號:TP391文獻標志碼:A
文章編號:1001-3695(2007)12-0204-03
隨著Internet的快速發展,Web資源已經成為一種人們獲取信息的主要來源。但是對于需要查詢的信息,很多網站必須經過注冊登錄后方可使用提供服務的頁面,而且各個網站的信息表示具有很大的異構性,給用戶帶來很大不便。為了訪問Web上大量有用的信息,動態異構的Web信息集成方法就成為了一個研究的熱點。
由于Web資源具有的海量、異構、動態變化等特性,使信息集成不同于傳統信息抽取, 設計實現一種Web信息集成方法需要經過一個很復雜的過程,它涉及到很多方面的問題。首先對于動態異構的Web資源,需要分析其網頁表單,模擬用戶點擊行為找到結果頁面,這些都是異構數據源在集成應用中的難點問題;此外,Web網站的動態變化對于保持信息抽取的準確性也是一個挑戰,有待研究者去解決。因此,信息集成設計者在部署新的系統之前需要確保它能夠可行并且具有所期望的執行效率。
1信息集成工作流程
現在很多網站提供的頁面往往并不是可以通過一個簡單的URL就可以訪問的,而必須經過注冊并登錄后方可使用提供服務的頁面。不同的資源對于登錄有不同的限制。由于與Web交互的細節需要人們自己來實現,這就需要人們對訪問Web資源的細節進行模擬和描述,得到所需結果頁面;然后通過分析頁面結構和內容,采用相應的抽取算法,將信息抽取出來存入相應的數據庫中;最后以統一的形式顯示。
信息集成工作流程(圖1)由四個部分和相應數據庫構成。
a)源數據站點分析模擬
主要對資源站點的頁面結構進行分析,通過分析獲取其請求參數用來模擬HTTP請求。其分析結果包括如何得到查詢結果頁面及其規律等。
b)網頁抓取
根據分析模擬將查詢得到的結果頁面抓取到本地計算機,以供信息提取作進一步分析之用。
c)信息抽取
通過分析網頁結構和內容,總結出其抽取規則,采用相應的抽取算法,將所需信息抽取出來。
d)數據入庫
將抽取出的信息記錄存放在相應的信息記錄數據庫中,以提供給用戶查詢和使用。
網頁源數據站點分析與提取技術是實現和Web資源自動交互的基礎,也是對所需網頁提取數據的基礎。一方面,與Web資源的交互過程中,有些參數和數據是通過網頁分析與提取獲得的;另一方面,得到的所需網頁是通過網頁分析和提取獲得的。
2源數據站點分析模擬原理與實現
用戶通過瀏覽器來訪問Web資源時,瀏覽器為用戶隱藏了與Web資源交互的具體細節,用戶看到的只是結果。對于需要查詢的信息,一般顯示通過Web瀏覽器登錄到一個Web服務器,輸入查詢條件,提交查詢請求,服務器返回查詢結果。由于用戶與Web資源的交互是以HTTP協議為基礎進行的,這種交互可以由程序模擬出瀏覽器向遠程Web服務器發送HTTP請求的過程。用戶每查詢一次信息,就是向服務器發送一次HTTP請求的過程。
HTTP協議是基于請求/響應模式的。HTTP請求信息由請求行、請求頭部域和請求實體三部分組成。請求行中的方法描述指定資源中應該執行的動作。常用方法有get、post和head。請求頭部域是關于該次請求的一些附加信息。請求實體則是該次請求所需傳遞的一些參數信息。HTTP響應信息由響應行、響應頭部域和響應實體三部分組成。響應行主要顯示HTTP版本,以及此次響應結果的狀態碼;響應頭部域為該次響應的附加信息;響應實體則為該次響應結果的詳細信息。
由于可以通過程序模擬發送HTTP請求的過程,對于HTTP請求信息的獲取是模擬成功的關鍵。有些Web服務程序的設計要求瀏覽器端通過腳本技術,對檢索項進行預處理,在瀏覽器端生成一個檢索表達式,再將此表達式以HTTP請求的方式傳遞給服務器進行檢索。在此情況下,需要分析HTML文件中的腳本代碼,構造出正確的檢索表達式。有些請求信息參數是動態變化的。這需要人工仔細分析,找出其中規律,才能實現實時請求、實時響應,以及對查詢頁面的翻頁等功能。這些參數信息都不能有絲毫差錯。可以借助已有的一些網絡通信攔截工具軟件,如EHSniffer、HttpWatch、HttpTracer等。這些軟件可以捕獲并解碼瀏覽器發出的HTTP請求的數據,分析HTTP通信的網絡活動等。這樣就可以正確獲取HTTP請求通信所需的參數。
HTTP請求的實現主要借助HttpClient來完成。使用HttpClient編程主要有以下基本步驟:
a)創建HttpClient的一個實例;
b)創建某個方法(DeleteMethod、EntityEnclosingMethod、ExpectContinueMethod、GetMethod、HeadMethod、MultipartPostMe-thod、OptionsMethod、PostMethod、PutMethod、TraceMethod)的一個實例,一般用目標URL為參數;
c)讓HttpClient執行該方法;
d)讀取應答信息;
e)釋放連接;
f)處理應答。
在HttpClient中主要用GetMethod和PostMethod兩個方法分別實現HTTP請求中的get和post方法。按上面的步驟,通過HttpWatch獲取其所需參數,對其中動態變化的參數實時動態提取,進行模擬用戶登錄訪問,可以獲得用戶所需要查詢的結果頁面。
3信息提取原理與算法
對Web頁面的信息提取主要表現在對其標記節點和文本內容的分析,構造出健壯的包裝器。信息抽取的規則在包裝器中占有很重要的地位。文獻[4]提出利用隱馬爾可夫模型提取文檔的元數據信息的方法, 但其只關注于提取文檔頭部的元數據信息。Kushmerick等人對具有HLRT(head-left-right-tail)結構的Web頁面使用LR分隔符集表達包裝器[5]。但是該方法只針對格式特別規整的表結構,有其局限性。抽取工具TSIMMIS、W4F等,采用了一些基于Web文檔結構的抽取規則,可以根據結構樹中的節點準確定位HTML頁面中的TAG標記,能夠準確定位到所要抽取信息的位置,不會與其他具有類似結構的數據相混淆。但是當頁面結構發生了變化,結構中的任一個層次發生微小的改變就會最終影響到抽取規則的失效性。NoDoSE、WHISK、STALKER等抽取工具,采用基于特征模式匹配的抽取規則,能夠在Web文檔的全文中識別具有特征模式的子串,不需要結構層次的信息,對于網頁結構變化多的一類的網頁能夠很好地處理。但是,沒有結構層次信息的支持,缺少對文本的定位信息,抽取過程易被具有類似結構的其他數據所干擾。針對這些問題,本文結合文檔結構定位的準確性與特征模式匹配的自由性兩種優勢進行Web頁面的信息抽取,可以對電子期刊資源信息進行精確抽取。
基于結構的信息抽取技術主要采用HTML中所包含的結構特征、位置特征、顯示特征、語義特征和引用特征形成抽取規則。抽取規則主要包括抽取路徑、左右鄰標志及節點特征等。
由于所需抽取信息的左右鄰標志可能與頁面中的其他信息的左右鄰標志產生沖突,將并不需要的信息抽取出來。在抽取信息時需要限定抽取的整體范圍,確定從HTML文檔中什么地方開始抽取,直到什么地方結束。這樣可減少產生沖突的范圍。
HtmlParser是一個對現有的HTML進行分析的快速實時的解析器,主要依靠HtmlParser中的Node來表達HTML。Node是形成樹結構表示HTML的基礎,所有的數據表示均是接口Node的實現。Node定義了與頁面樹結構所表達的頁面Page對象,獲取父、子、兄弟節點的方法,節點到對應HTML文本的方法,該節點對應的起止位置,過濾方法及Visitor訪問機制。Node分成三類:RemarkNode代表HTML中的注釋;TagNode代表標簽節點,是種類最多的節點類型;TextNode表示文本節點。需要提取的信息主要就是TextNode表示的文本節點所對應的文本信息。
通過分析待抽取信息標簽節點的特征,過濾掉與其特征不相關的標簽節點,然后根據其所在路徑,可以精確定位信息所在的位置。以抽取維普中的信息為例,代碼如下:
Parser parser=new Parser();
//括號中應填上帶抽取頁面存放本地硬盤位置或其URL地址
parser.setEncoding(\"UTF-8\");//設定解析編碼格式
NodeFilter filter=1;//初始化節點過濾器
filter=new TagNameFilter(\"div\");//過濾掉不是div的節點
NodeList list=parser.parse(filter); //將過濾后的節點存入數組中
Node node=list.elementAt(1);
//確定待抽取信息的節點,即確定抽取范圍
利用遞歸方法在帶抽取信息的節點中將文本節點信息存入數組,然后根據帶抽取的每條信息的結構特征,可以通過正則表達式構造匹配模式,以供抽取時的模式匹配。
正則表達式(regular expression)就是一個字符構成的串,由一些普通的字符和一些元字符組成。它定義了一個用來搜索匹配字符串的模式,能夠明確地描述文本字符串的匹配模式。如“〈title〉(.*)〈/title〉”可以抽取出網頁中的標題。其中:“.”可以表示任何字符;“*”表示前面類型的字符可以出現零次或者多次。
信息抽取算法具體如下:
設Web頁面標記節點集合N={node1,node2,…,nodem},T={t1,t2,…,tn}為所定義的特征模式集合。
輸入:待抽取信息的網頁;
輸出:本網頁上的標題、作者、地址、關鍵詞、摘要、分類號和期刊號等各種元數據信息。
算法:
建立需要輸出的元數據信息列表List,初始化i=1,j=1,信息塊集合IB為空;
通過文檔定位方式從集合N中找出所有信息項最近的父標簽節點nodek(1≤k≤m);
深度遍歷nodek中的節點,通過遞歸調用將找到的文本信息節點nodeIj(j≥1,且按自然數遞增)放入集合IB中,最后得到集合IB={nodeI1,nodeI2,…,nodeIl}。
while(i<=l)
{
讀取文本信息節點nodeIi;
信息節點nodeIi與T中的每個特征模式進行匹配;
if(匹配成功)
{
產生抽取結果R;
if(List為空)
將R加入列表List;
if(List非空)
{
將R和List中的每項抽取結果進行比較,如果沒有相同,則將其加入列表List中;
}
}
i=i+1;
}
4性能測試
上述抽取算法在科技文獻統一檢索平臺中得以實現。科技文獻統一檢索平臺是一個文獻知識共享平臺。它結合了網格、信息抽取、文獻檢索技術等,實現了網上信息的自動提取和共享,為人們查找和檢索文獻提供了便利。
MUC(message understanding conference)會議為信息檢索和信息提取領域內的算法性能測試制訂了一系列的評估參數:設總共需要提取的信息數目為N, 提取正確的信息數目為Ncorrect,提取錯誤的信息數目為Nincorrect,那么信息查全率Re和提取精確度Pr如下:
Re=Ncorrect/N
Pr=Ncorrect/(Ncorrece+Nincorrect)
現將在華中科技大學圖書館的維普鏡像站和cnki包庫站中抽取出標題、作者、作者地址、關鍵詞、摘要、分類號和期刊號等各種文本信息的試驗結果統計如表1所示。
表1中測試各網站數據所花時間的差異主要是由于各種網站服務器處理請求速度的不同,以及從各登錄頁面到其結果頁面的各種差異,均會影響到信息所抽取的效率。此外,網絡狀況的穩定也是一個關鍵。
5結束語
本文針對Web資源信息集成問題,介紹了一種網頁分析解決方法。該方法主要用于如何得到查詢頁面和實現信息提取。目前的集成系統還處于初級階段,許多地方需要完善和補充,如用戶可選擇的功能少等。今后的發展方向應該充分體現交互式,并且界面可隨用戶的需求變化而變化。如何提高對多種網頁結構的適應性,以及感知Web信息和網頁結構的更新變化,同時減少其復雜性,提高其自動化和智能性,需要作進一步研究和探討。
參考文獻:
[1]LAENDER A H F, RIBEIRO-NETO B A. A brief survey of Web data extraction tools[J]. SIG2MOD Record, 2002,31(2):84-93.
[2]CHANG C H, LUI S C. IEPAD: information extraction based on pattern discovery[C]//Proc of the 10th International Conference on World Wide Web. Hong Kong:[s.n.], 2001:681-688.
[3]KUSHMERICK N. Wrapper induction: efficiency and expressiveness[J]. Artificial Intelligence, 2000,118(1-2):15-68.
[4]SEYMORE K, McCALLUM A, ROSENFELD R. Learning hidden Markov model structure for information extraction[C]//Proc of AAAI’99 Workshop on Machine Learning for Information Extraction. Orlando: AAAI Press, 1999:37-42.
[5]KUSHMERICK N, WELD D S, DOORENBOS R. Wrapper induction or information extraction[C]//Proc of the 15th International Joint Conference on Artificial Intelligence. Japan:[s.n.], 1997:729-735.
[6]李寶利,陳玉忠,俞士汶.信息抽取研究綜述[J].計算機工程與應用,2003,39(10):1-5.
[7]宋武偉. 異構Web數據庫集成檢索系統的網頁分析技術[J].情報雜志,2006,25(3):102-104.
[8]錢防震,杜小勇.DLPers的資源整合[J].計算機科學, 2003,30(10):263-266.
[9]郭志鑫.基于本體的文檔引文元數據信息抽取[J].微計算機信息, 2006,22(18):304-306.
[10]李躍進,趙晶,林鴻飛.基于Internet的軍事演習信息抽取系統[J].計算機工程與應用,2006,42(14):214-218.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”