楊文超 喬鴻
山東師范大學管理科學與工程學院 山東 250014
Web信息抽取是一個從網頁中抽取主題信息的問題。它將現有的Web信息以更為結構化的方式抽取出來。Web 信息抽取技術的核心是從Web 頁面所包含的無結構或半結構的信息中識別用戶感興趣的數據,并將其轉化為結構化、語義更為清晰的格式。構建Web 信息抽取器的方法有很多,這些方法大多數都是有監督的學習方法,通過學習樣本網頁,歸納出網頁的抽取規則。但是,目前常見的信息抽取器存在的一個主要問題:從樣本網頁中學習到的抽取規則只適用于樣本所在的網站。這些抽取器不僅維護成本高,而且可適應性差。
最近,有研究者提出了幾種不同的可適應性信息抽取的方法,意在網站結構發生變化時不必修改抽取規則,然而這些方法仍然需要大量人工工作。例如:文獻[1]提出一種通過聚類規則來對網頁進行分塊,最后對其進行剪枝,刪除掉無用的信息,提取主題信息。文獻[2]提出基于擴展DOM樹的Web頁面信息抽取,能對多信息塊的Web頁面進行信息抽取。文獻[3]提出的一種可適應性的Web信息抽取方法,但僅僅只是針對單信息塊的商品信息抽取,而對于多個信息塊的網頁只能抽取出第一個信息塊,影響了信息抽取的精度。基于文獻[3]這種思想,我們提出一種基于DOM 樹的可適應性多信息塊Web信息抽取,以對任何一種網頁結構進行有效的信息抽取。
Web信息抽取流程圖如圖1所示。

圖1 Web信息抽取流程圖
網頁信息主要存在于半結構化的HTML文檔中,由于HTML經常可以有一些省略和不規范的寫法存在,這就給抽取我們感興趣的信息增加了難度。本文的方法是首先利用開源的HTML解析程序NekoHtml,修改網頁的語法錯誤,將網頁轉化為格式良好的HTML文檔,將HTML文檔解析成DOM樹。網頁被解析后,轉化為DOM樹,樹的每個節點是一個對象。DOM模型不僅描述了文檔的結構,還定義了節點對象的行為,利用對象的方法和屬性,可以方便地訪問、修改、添加和刪除DOM樹的節點和內容。我們首先將網頁解析成DOM樹,給我們的網頁抽取帶來了極大的方便。
在同一領域里不同網站介紹同一商品的網頁,都包含一些與商品有關的相同或相似的關鍵詞。而這些關鍵詞通常放在重要的信息塊里面,可以通過確立和定位這些關鍵詞來確定和抽取關鍵信息塊。關鍵詞組與一定的領域知識和商品密切相關,我們需要為不同的商品建立不同的關鍵詞組。對于某一商品的關鍵詞組的選取,要使得該關鍵詞組覆蓋盡可能多的網站,同時每個網站包含其中一定數量的關鍵詞。我們可以建立一個商品關鍵詞庫,包含多種商品的關鍵詞組。當要抽取某種商品信息時,直接去商品關鍵詞庫取得相應商品的關鍵詞組。該方法具有很強的適應性和擴展性。
對于某類商品,獲取一定數量的相關網頁,對這些網頁進行文本分析,提取頻繁關鍵詞作為商品的相關關鍵詞。由于屬于同一網站的網頁往往是經過相同的模版生成的,而不同網站都有各自的模版,因此針對網頁是否屬于同一網站進行相應不同的處理。本文采用分層抽取的思路來挖掘商品相關關鍵詞。
算法:
輸入:某商品一定數量的樣本網頁;
網站內頻繁度λ1,網站間頻繁度λ2
輸出:該商品的相關關鍵詞集
步驟:
對樣本網頁根據所在的網站進行分類;
同一網站的網頁集頻繁關鍵詞提取
{
抽取網頁純文本;
調用分詞器對網頁文本進行分詞處理;
計算網站內關鍵詞的詞頻 f1;
/* f1= 網站內包含該關鍵詞的樣本網頁數/該網站的總樣本網頁數* /
返回網站內的詞頻大于λ1的關鍵詞集;
}
網站間頻繁關鍵詞提取
{
計算網站間關鍵詞的詞頻f2;
/* f2= 包含該關鍵詞的樣本網站數/
所有樣本網站數* /
返回網站間的頻繁度大于λ2 關鍵詞集;
}
在DOM 樹中,每一個文本節點都對應一條從根節點到葉子節點的路徑,路徑上所有的元素節點都是文本節點的祖先。
由于每一個關鍵詞都對應到文本節點,因此我們可以利用每一個關鍵詞的路徑來得到所有關鍵詞的最近公共祖先,從而有效地定位到中心節點,改進了文文獻提出的算法。具體算法如下:
輸入:關鍵詞組集{ k1,k2,...,kn}
輸出:m個中心節點和關鍵路徑
步驟:
(1) 對待抽取的網頁建構DOM樹結構,深度優先遍歷DOM樹,
For i : = 1 →m
找到每個關鍵詞ki(i = 1 ,…,n) 對應的m個文本節點,生成對應的遍歷路徑集合

尋找最長的公共子字符串p11′字符串必須是從pij首個字符開始嚴格匹配,并將p11′加入到公共子字符串集合{pij′},i ≤m j≤n中,然后累計p11′出現的次數。

End ;
(3) 在集合{ pij′} ,i ≤m j≤n 中出現次數最多的p11′就是關鍵路徑,關鍵路徑中最后一個標簽字符是我們要獲取的一個信息塊的中心節點。
我們采用信息抽取系統中兩個經典評測方法評測,即精度和召回率。定義如下:
正確率=正確信息塊數/輸出的信息塊總數;
召回率=正確信息塊數/信息塊數。
從電子商務網站中60個筆記本類商品信息網頁進行抽取(所屬品牌,上市時間,屏幕尺寸,標配內存,處理器型號,硬盤容量等通用屬性)測試,測試數據如表1。

表1 測試數據
由上面的計算公式得,正確率85%,召回率93.2% 證明該方法是可行的。
本文主要提出的基于DOM樹的可適應性多信息塊Web信息抽取是對基于DOM 樹的可適應性Web信息抽取算法的一種擴充。它利用聚類方法從待抽取的一類網站中獲取到關鍵詞組,然后利用NekoHtml構建網頁的DOM 樹結構,通過遍歷DOM 樹結構來獲取每個關鍵詞在DOM樹中每個信息塊中的路徑,每個路徑組的最近祖先節點包含了我們待抽取的一個信息塊。該信息抽取方法能夠獲取比較高的正確率和效率。同時該方法不局限于單信息塊存放商品信息的網站,對多信息塊存放商品信息的網頁也能準確地抽取,因此具有很強的適應性和擴展性,以能適應于各種類型的網頁。
[1] 劉軍,張凈.基于DOM的網頁主題信息的抽取.計算機應用與軟件.2010.
[2] 王磊,蔣建中,郭軍利.基于擴展DOM樹的Web頁面信息抽取.2007.
[3] 李朝,彭宏,葉蘇南,張歡,楊親遙.基于DOM 樹的可適應性Web信息抽取.2009.
[4] 鄧健爽,鄭啟倫,彭宏.基于關鍵詞聚類和節點距離的網頁信息抽取[J]計算機科學.2007.