楊文超 喬鴻
山東師范大學(xué)管理科學(xué)與工程學(xué)院 山東 250014
Web信息抽取是一個從網(wǎng)頁中抽取主題信息的問題。它將現(xiàn)有的Web信息以更為結(jié)構(gòu)化的方式抽取出來。Web 信息抽取技術(shù)的核心是從Web 頁面所包含的無結(jié)構(gòu)或半結(jié)構(gòu)的信息中識別用戶感興趣的數(shù)據(jù),并將其轉(zhuǎn)化為結(jié)構(gòu)化、語義更為清晰的格式。構(gòu)建Web 信息抽取器的方法有很多,這些方法大多數(shù)都是有監(jiān)督的學(xué)習(xí)方法,通過學(xué)習(xí)樣本網(wǎng)頁,歸納出網(wǎng)頁的抽取規(guī)則。但是,目前常見的信息抽取器存在的一個主要問題:從樣本網(wǎng)頁中學(xué)習(xí)到的抽取規(guī)則只適用于樣本所在的網(wǎng)站。這些抽取器不僅維護成本高,而且可適應(yīng)性差。
最近,有研究者提出了幾種不同的可適應(yīng)性信息抽取的方法,意在網(wǎng)站結(jié)構(gòu)發(fā)生變化時不必修改抽取規(guī)則,然而這些方法仍然需要大量人工工作。例如:文獻[1]提出一種通過聚類規(guī)則來對網(wǎng)頁進行分塊,最后對其進行剪枝,刪除掉無用的信息,提取主題信息。文獻[2]提出基于擴展DOM樹的Web頁面信息抽取,能對多信息塊的Web頁面進行信息抽取。文獻[3]提出的一種可適應(yīng)性的Web信息抽取方法,但僅僅只是針對單信息塊的商品信息抽取,而對于多個信息塊的網(wǎng)頁只能抽取出第一個信息塊,影響了信息抽取的精度?;谖墨I[3]這種思想,我們提出一種基于DOM 樹的可適應(yīng)性多信息塊Web信息抽取,以對任何一種網(wǎng)頁結(jié)構(gòu)進行有效的信息抽取。
Web信息抽取流程圖如圖1所示。
圖1 Web信息抽取流程圖
網(wǎng)頁信息主要存在于半結(jié)構(gòu)化的HTML文檔中,由于HTML經(jīng)常可以有一些省略和不規(guī)范的寫法存在,這就給抽取我們感興趣的信息增加了難度。本文的方法是首先利用開源的HTML解析程序NekoHtml,修改網(wǎng)頁的語法錯誤,將網(wǎng)頁轉(zhuǎn)化為格式良好的HTML文檔,將HTML文檔解析成DOM樹。網(wǎng)頁被解析后,轉(zhuǎn)化為DOM樹,樹的每個節(jié)點是一個對象。DOM模型不僅描述了文檔的結(jié)構(gòu),還定義了節(jié)點對象的行為,利用對象的方法和屬性,可以方便地訪問、修改、添加和刪除DOM樹的節(jié)點和內(nèi)容。我們首先將網(wǎng)頁解析成DOM樹,給我們的網(wǎng)頁抽取帶來了極大的方便。
在同一領(lǐng)域里不同網(wǎng)站介紹同一商品的網(wǎng)頁,都包含一些與商品有關(guān)的相同或相似的關(guān)鍵詞。而這些關(guān)鍵詞通常放在重要的信息塊里面,可以通過確立和定位這些關(guān)鍵詞來確定和抽取關(guān)鍵信息塊。關(guān)鍵詞組與一定的領(lǐng)域知識和商品密切相關(guān),我們需要為不同的商品建立不同的關(guān)鍵詞組。對于某一商品的關(guān)鍵詞組的選取,要使得該關(guān)鍵詞組覆蓋盡可能多的網(wǎng)站,同時每個網(wǎng)站包含其中一定數(shù)量的關(guān)鍵詞。我們可以建立一個商品關(guān)鍵詞庫,包含多種商品的關(guān)鍵詞組。當(dāng)要抽取某種商品信息時,直接去商品關(guān)鍵詞庫取得相應(yīng)商品的關(guān)鍵詞組。該方法具有很強的適應(yīng)性和擴展性。
對于某類商品,獲取一定數(shù)量的相關(guān)網(wǎng)頁,對這些網(wǎng)頁進行文本分析,提取頻繁關(guān)鍵詞作為商品的相關(guān)關(guān)鍵詞。由于屬于同一網(wǎng)站的網(wǎng)頁往往是經(jīng)過相同的模版生成的,而不同網(wǎng)站都有各自的模版,因此針對網(wǎng)頁是否屬于同一網(wǎng)站進行相應(yīng)不同的處理。本文采用分層抽取的思路來挖掘商品相關(guān)關(guān)鍵詞。
算法:
輸入:某商品一定數(shù)量的樣本網(wǎng)頁;
網(wǎng)站內(nèi)頻繁度λ1,網(wǎng)站間頻繁度λ2
輸出:該商品的相關(guān)關(guān)鍵詞集
步驟:
對樣本網(wǎng)頁根據(jù)所在的網(wǎng)站進行分類;
同一網(wǎng)站的網(wǎng)頁集頻繁關(guān)鍵詞提取
{
抽取網(wǎng)頁純文本;
調(diào)用分詞器對網(wǎng)頁文本進行分詞處理;
計算網(wǎng)站內(nèi)關(guān)鍵詞的詞頻 f1;
/* f1= 網(wǎng)站內(nèi)包含該關(guān)鍵詞的樣本網(wǎng)頁數(shù)/該網(wǎng)站的總樣本網(wǎng)頁數(shù)* /
返回網(wǎng)站內(nèi)的詞頻大于λ1的關(guān)鍵詞集;
}
網(wǎng)站間頻繁關(guān)鍵詞提取
{
計算網(wǎng)站間關(guān)鍵詞的詞頻f2;
/* f2= 包含該關(guān)鍵詞的樣本網(wǎng)站數(shù)/
所有樣本網(wǎng)站數(shù)* /
返回網(wǎng)站間的頻繁度大于λ2 關(guān)鍵詞集;
}
在DOM 樹中,每一個文本節(jié)點都對應(yīng)一條從根節(jié)點到葉子節(jié)點的路徑,路徑上所有的元素節(jié)點都是文本節(jié)點的祖先。
由于每一個關(guān)鍵詞都對應(yīng)到文本節(jié)點,因此我們可以利用每一個關(guān)鍵詞的路徑來得到所有關(guān)鍵詞的最近公共祖先,從而有效地定位到中心節(jié)點,改進了文文獻提出的算法。具體算法如下:
輸入:關(guān)鍵詞組集{ k1,k2,...,kn}
輸出:m個中心節(jié)點和關(guān)鍵路徑
步驟:
(1) 對待抽取的網(wǎng)頁建構(gòu)DOM樹結(jié)構(gòu),深度優(yōu)先遍歷DOM樹,
For i : = 1 →m
找到每個關(guān)鍵詞ki(i = 1 ,…,n) 對應(yīng)的m個文本節(jié)點,生成對應(yīng)的遍歷路徑集合
尋找最長的公共子字符串p11′字符串必須是從pij首個字符開始嚴格匹配,并將p11′加入到公共子字符串集合{pij′},i ≤m j≤n中,然后累計p11′出現(xiàn)的次數(shù)。
End ;
(3) 在集合{ pij′} ,i ≤m j≤n 中出現(xiàn)次數(shù)最多的p11′就是關(guān)鍵路徑,關(guān)鍵路徑中最后一個標簽字符是我們要獲取的一個信息塊的中心節(jié)點。
我們采用信息抽取系統(tǒng)中兩個經(jīng)典評測方法評測,即精度和召回率。定義如下:
正確率=正確信息塊數(shù)/輸出的信息塊總數(shù);
召回率=正確信息塊數(shù)/信息塊數(shù)。
從電子商務(wù)網(wǎng)站中60個筆記本類商品信息網(wǎng)頁進行抽取(所屬品牌,上市時間,屏幕尺寸,標配內(nèi)存,處理器型號,硬盤容量等通用屬性)測試,測試數(shù)據(jù)如表1。
表1 測試數(shù)據(jù)
由上面的計算公式得,正確率85%,召回率93.2% 證明該方法是可行的。
本文主要提出的基于DOM樹的可適應(yīng)性多信息塊Web信息抽取是對基于DOM 樹的可適應(yīng)性Web信息抽取算法的一種擴充。它利用聚類方法從待抽取的一類網(wǎng)站中獲取到關(guān)鍵詞組,然后利用NekoHtml構(gòu)建網(wǎng)頁的DOM 樹結(jié)構(gòu),通過遍歷DOM 樹結(jié)構(gòu)來獲取每個關(guān)鍵詞在DOM樹中每個信息塊中的路徑,每個路徑組的最近祖先節(jié)點包含了我們待抽取的一個信息塊。該信息抽取方法能夠獲取比較高的正確率和效率。同時該方法不局限于單信息塊存放商品信息的網(wǎng)站,對多信息塊存放商品信息的網(wǎng)頁也能準確地抽取,因此具有很強的適應(yīng)性和擴展性,以能適應(yīng)于各種類型的網(wǎng)頁。
[1] 劉軍,張凈.基于DOM的網(wǎng)頁主題信息的抽取.計算機應(yīng)用與軟件.2010.
[2] 王磊,蔣建中,郭軍利.基于擴展DOM樹的Web頁面信息抽取.2007.
[3] 李朝,彭宏,葉蘇南,張歡,楊親遙.基于DOM 樹的可適應(yīng)性Web信息抽取.2009.
[4] 鄧健爽,鄭啟倫,彭宏.基于關(guān)鍵詞聚類和節(jié)點距離的網(wǎng)頁信息抽取[J]計算機科學(xué).2007.