第
4.1.
節
???????
處理結構化和半結構化網頁的系統
...
第
4.1.1.
節
???? ShopBot
第
4.1.2.
節
???? WIEN..
第
4.1.3.
節
???? SoftMealy.
第
4.1.4.
節
???? STALKER.
第
4.2.
節
???????
處理半結構化和非結構化網頁的系統
...
第
4.2.1.
節
???? RAPIER.
第
4.2.2.
節
???? SRV.
第
4.2.3.
節
???? WHISK.
第
4.3.
節
???????
小結
...
早期從網站上抽取信息的方法基本上是基于手工操作的。程序員認真研究網站的結構后手工編寫代碼,開發一個分裝器程序,把網頁的邏輯特征抽取出來并把他們存入到數據庫。
TSIMMIS[13
,
25
,
28
,
29]
系統和“斯坦福
-IBM
多信息源管理系統(
1995
)”是比較早的幫助建造分裝器程序的框架系統。
TSIMMIS
的目標是以一體化的方式獲取不同信息源的信息并且保證所獲取信息一致性。其重點是開發支持這種包裝過程的語言和工具。
對于數據量大,結構動態變化的網站而言,需要一種更為有效的分裝器建造方法。一般說來,數據庫領域的人把注意力放在錯綜復雜的信息如何進行整合,分裝器則用手工建造。另一方面,
AI
領域的人則把重點放在機器學習的方法如何能用在網站結構的自動學習上。本章將重點介紹分裝器的自動或半自動的生成系統。
分裝器及其自動生成的復雜度和難易度將取決于網站結構的層次。第
4 .1.
節介紹的系統主要是針對結構化程度相對好的網站。這類系統多數是源自分裝器生成領域的研究者。第
4.2.
節介紹了能處理結構缺少規范化的網頁。這類系統較多地受到傳統的
IE
領域的影響。
第4.1.節
???????????????
處理結構化和半結構化網頁的系統
本節介紹
ShopBot, WIEN, SoftMealy
和
STALKER
系統。這類系統可以說是屬于分裝器生成系統,專門用來從網站數據庫系統生成的網頁。采用分隔符為主的抽取規則,無需用到句法和語義知識,局限于處理比較結構化的數據。
第4.1.1.節
???????
?ShopBot
開發者:
R. B. Doorenbos, O. Etzioni, D. S. Weld (1996/1997)[17,18]
。
ShopBot
是比價代理系統,專門從網上賣家的網站上抽取信息,因此,比其他系統的局限性要大。其算法主要針對以表單形式提供查詢的頁面,而且返回的搜索結果是以表格形式顯示的產品信息頁面。從結果頁面中抽取信息的技巧結合了啟發式搜索、模式匹配和歸納式學習。
ShopBot
的運行分兩個階段:離線學習階段和在線比價階段。在學習階段,系統分析每個購物網站,獲得其符號化描述,然后在比價階段,利用獲得的符號化描述,從網站上抽取信息,找到用戶指定的產品的最低價格。
在學習階段,系統利用簡單的啟發式方法找到正確的檢索表單,學習如何向該表單發送查詢請求。學習程序還必須判定查詢結果頁面的格式。一般包括頭部、主體和尾部等三部分。頭尾兩部分在所有的結果頁面中都是一致的,而主體則包含了想要的產品信息。結果頁面的格式是通過三個步驟判定的:
第
1
步:獲取“找不到產品”的失敗頁面。用不存在的詞(如“
xldccxx-no-product”
)作為關鍵字查詢數據庫,然后分析返回的頁面。
第
2
步:找到頭尾部分。用可能存在的產品名稱去查詢數據庫,通過分析返回的頁面找到頭尾部分。
第
3
步:判定包含產品信息的主體格式。首先用
HTML
標記和字串對可能的產品信息摘要進行定義和表示。網頁主體被切分成“邏輯行”,代表“垂直空格分隔”
(vertical-space-delimited)
的文本。學習程序用邏輯行比較不同的摘要形式,找到最佳匹配。這樣可以找到產品的描述格式,但是不能歸納出信息欄的名稱。最關鍵的價格信息是用手工編碼的方法獲取的。
第4.1.2.節
???????
?WIEN
開發者:
N. Kushmerick
(1997) [33,34]
。
“分裝器歸納生成環境”(
WIEN-Wrapper Induction Environment
)是輔助分裝器生成的工具,為網頁的自動分析而設計,受到
ShopBot
的影響。不過,
Kushmerick
是第一個提出分裝器歸納生成這一術語的。其方法不只局限于某一領域,適用于所有包含表格信息的結構化文本,也不只是用于
HTML
文本。
這種方法可以處理被他們稱之為具有
HLRT
結構的網頁:頭分隔符、左右分隔符(在每個待抽取的事實的左右)和尾分隔符。系統尋找標記信息點開始和結尾的統一的分隔符,以及那些把表格信息與其他周圍信息分開的分隔符。符合這一規則的頁面幾乎都是搜索數據庫所得的結果頁面。
Kushmerick
力圖盡量自動化,避免用人工標記樣例,因此開發了一系列自動標記樣例的方法。標記算法需要輸入特定領域(
domain-specific
)的啟發學習規則,目標是找到待抽取屬性的值。系統雖然需要輸入學習規則,但卻不管這些規則是如何獲得的,可以手工編制。即使是這樣,比起標記整個網站來,其工作量要小。
系統采用歸納學習法,從查詢結果樣例中生成分裝器。歸納算法是:把標記好的網頁作為輸入,然后搜索由“
HLRT
分裝器模型”定義的分裝器空間(
space of wrappers
),反復嘗試所有可能的分隔符,直到找到與標記網頁相一致的
HLRT
分裝器。系統還采用基于機器學習理論的模型來預測需要學習多少個例子,以保證所生成的分裝器的出錯幾率控制在一特定的范圍內。
由于
WIEN
只考慮與待抽取數據緊相鄰的分隔符,因此不能包裝那些數據不全或信息項次序不固定的網頁。系統采用的是多欄(
Multi-slot
)規則,這就意味著能把相關的信息聯在一起,而單欄規則只能抽取孤立數據(例如,若一篇文檔包含多個姓名和地址,使用單欄規則不能辨認出哪個地址是屬于某人的)。
第4.1.3.節
???????
SoftMealy
開發者:
C-H. Hsu (1998)[30,31]
。
Kushmerick
之后,有好幾個別的系統研發出來,力圖改進
WIEN
的分裝器歸納算法。
SoftMealy
是一個通過學習分裝器學習從半結構化網頁中抽取信息的系統。其分裝器被稱為“非確定有限自動機”(
non-deterministic finite automata
)。這種表達模式和學習算法據說可以處理缺失值、一欄多值和變量改變(
permutations
)的情況。
系統從訓練樣例中歸納上下文規則。訓練樣例提供一個有順序的事實列表以及事實間的分隔符。歸納生成分裝器時,把一系列帶標記元組(
labeled tuples
)作為輸入。這些元組提供了分隔符的位置和事實次序變化的信息。這些信息被歸納為上下文規則作為結果輸出。
歸納生成的分裝器是一個“非確定有限自動機”。其狀態代表待抽取的事實,狀態的轉換代表定義分隔符的上下文規則。狀態的轉換由上下文規則的匹配結果來確定。分裝器通過識別事實周圍的分隔符來抽取事實。
SoftMealy
的規則允許使用通配符,而且能處理信息缺失和次序變化。然而,為了能處理不同次序的事實,系統需要學習其各種可能的次序。總的說來,
SoftMealy
的抽取模式比
WIEN
規定的要更有表達能力。
第4.1.4.節
???????
STALKER
開發者:
I. Muslea, S. Minton, C. Knoblock. (1998) [42,43,44]
。
STALKER
采用指導學習的算法歸納抽取規則。訓練例子由用戶提供。用戶需選擇若干樣例頁面并把有用的數據(即所謂“
EC
樹”的葉子)標記出來。頁面被標記好后,系統可生成一符號序列(
the sequence of tokens
),用來表示頁面的內容,還生成代表信息點開始的符號索引。符號系列(字、
HTML
標記)和通配符被作為定位標志,用于找到頁面上的數據。分裝器歸納算法產生抽取規則并表示為簡單的標志語法(
landmark-grammars
)。此法可處理文本,但不能處理鏈接信息。
網頁文檔用所謂的“內嵌目錄”(
Embedded Catalog
)表示。那是一個樹形結構,其內部節點或是同構的(
homogeneous
)信息點列表,或是異構信息點元組(
tuples
)。根節點是整篇文檔,任一節點的內容代表其父節點內容的一個接續(
subsequence
)。末節點即是用戶需要抽取的數據。
?
STALKER
采用線性覆蓋算法(
sequential covering algorithm
)。首先生成線性標志自動機(
landmark automata
)。這些自動機能產生盡可能多的訓練正例(
positive training examples
)。該自動機實際上是一個“非確定有限自動機”。其狀態的變化只有在字符串輸入為了目前狀態與下一狀態間的轉換而被接受時才發生。然后系統試圖生成新的自動機以覆蓋剩余的例子,一直到所有的訓練例子都被覆蓋為止。這時,
STALKER
返回一個被稱之為
SLG
(簡單標記語法)的解決方法。其每個分支都對應一個學習獲得的標記自動機。
STALKER
可以包裝有任意層結構的信息源。每個節點的抽取與其子節點獨立,因此,文檔中信息點的次序是沒有關系的。對于信息點缺失或次序多變的文檔一樣能處理。這就比只能處理固定次序的
WIEN
等系統更靈活。與同樣能處理信息點缺失或次序多變文檔的
SoftMealy
不同,
STALKER
無需把各種可能的次序變化都學習到。
STALKER
采用的規則與
WIEN
的不同,是單欄的。不過由于
STALKER
利用
EC
樹把從多欄模板中取出的單個信息點集在一起,因此沒有什么缺陷。
第4.2.節
???????????????
處理半結構化和非結構化網頁的系統
本節介紹
RAPIER
,
SRV
和
WHISK
系統。這些系統比上節介紹的要復雜一些,能處理的文本類型要多一些。雖然如此,它們并不依賴語義和句法信息,只是在可能的情況下利用這些知識,而且能發揮混合抽取模式的作用。
這些系統更接近傳統的信息抽取方法,可以說處于
IE
和
WG
中間,因為它們的重點是開發用機器學習方法來解決
IE
問題。所用的方法以歸納邏輯編程(
inductive logic programming
)或關系學習(
relational learning
)為基礎,而且與歸納算法有關,比如
FOIL
算法(
SRV
,
WHISK
采用)和
GOLEM
算法(
RAPIER
采用)。
第4.2.1.節
?????????????
RAPIER
開發者:
E. Califf
(1997) [11,12]
。
RAPIER
(
Robust Automated Production of Information Extraction Rules
,健壯的信息抽取規則自動生成系統)以半結構化文本為處理對象,學習抽取規則,為整個
IE
過程服務。系統需要輸入指明待抽取信息的“文檔
-
充實模板”(
filled template
)組對作為訓練內容,從中獲得模式匹配規則,抽取“填充子”(
filler
)填充模板中的空槽。
學習算法結合了多個歸納邏輯編程系統所采用的技巧,能學習無界限模式。這些模式包含了對詞的限制條件和填充子周圍的詞性。學習算法由一個從具體到一般(即自下而上)的搜索,從訓練中與目標槽匹配的最具體的規則開始。隨機從規則庫中抽取一對對規則,然后橫向搜索(
beam search
),以圖找到這兩條規則的最佳概括,采用最少概括的概括方法(
a least general generalization
),增加限制條件,不斷重復后直到不再有進展為止。
RAPIER
的抽取規則是建立在分隔符和內容描述的基礎上的,即使用了能利用句法和語義信息的模式所表達的規則。系統使用了一個詞性標注程序獲取句法信息,使用了一個語義類別詞典獲取語義信息。標注程序以句子為輸入單位,把詞標注為名詞、動詞、形容詞等,速度和健壯性都比完全句法分析器快和優,但給出的信息有限。
信息抽取規則用模板名和格欄(
slot
)名索引,由三部分組成:前填充子(
pre-filler
):一個應匹配目標文本之前的文本的模式(
pattern
);填充子:一個應匹配目標文本的模式;后填充子:一個應匹配緊接目標文本之后的文本的模式。
一個模式是一串模式信息點(
pattern items
),要求一個一個詞匹配,或者是模式列表(
pattern lists
),可匹配
N
個詞。文本必須滿足模式規定的條件才算匹配成功。可能的條件包括文本必須是(
I
)一組詞,其中一個必須與文檔文本匹配;(
II
)一組句法標記,其中一個標記必須與文檔文本的標記匹配;或者(
iii
)一組語義類別,文檔文本必須屬于其中一類。
這種以目標詞組為中心設定抽取區域的方法意味著系統只能進行單格抽取。但是,若把文本分成超過三個區域,系統或許能進行多格抽取。
第4.2.2.節
?????????????
SRV
開發者:
D. Freitag (1998) [21,22,23]
。
SRV(Sequence Rules with Validation
,帶確認功能的次序規則
)
是一種自上而下、關系型的信息抽取算法。其輸入是一系列的網頁,上面標記了待抽取區域的實例(
instance
),以及一系列基于字串
(token)
的特征。輸出是一系列的抽取規則。
SRV
把信息抽取問題看成是一種分類問題。文本中所有可能的短語(取最長者)都是實例。文檔中的候選實例被提交到分類器。系統會給每個短語賦一個測量值,用于反映該短語作為目標格填充子的信度。最初版本的
SRV
采用的分類器是一個關系型規則的學習器,使用的歸納方法類似于
FOIL
的自上而下的辦法。在文獻
[23]
中,他們采用了另外兩個分類器,機械背誦學習器(
rote learner
)和簡單貝葉斯分類器
(na?ve Bayes classifier)
,并與原來的分類器作了比較。
SRV
利用的特征分兩種:簡單特征和關系特征。字詞的長度、類型、拼寫、詞性等屬于簡單特征。關系特征反映字詞的相鄰度。正是這一特征使
SRV
具有關系型的特點。
SRV
的學習素材包括訓練集文檔中與最短實例區(
field instance
)一樣長(以詞的個數計算)的字串,但不能長過最長的實例。抽取過程即是檢驗長度適合的字串是否與規則匹配的過程。
SRV
與
FOIL
一樣,從學習所有正反例子開始。所謂反例是沒有被標記為實例區的字串。歸納過程也是用正排除法,即當一條規則覆蓋的例子全部是正例,或該規則已無法繼續具體化時,所有與之匹配的正例將被從訓練集中刪除。然后重復以上過程。
SRV
的規則具有較強的表達能力,且無需先進行句法分析。
SRV
與
STALKER
和
RAPIER
有類似之處,能把與其他相關信息點獨立的特定信息點抽取出來。關系型學習器也與
RAPIER
的一樣用于抽取單格信息點。這與
WIEN
等抽取多格信息的系統不一樣。
第4.2.3.節
?????????????
WHISK
開發者:
S. Soderland
(1998) [52]
。
WHISK
系統能處理的文本對象很全面,從結構化程度很強的文本到網頁等半結構化文本,還能處理新聞等純文本。處理結構化或半結構化文本時,
WHISK
無須事先經過句法分析,但處理自由文本時,最好能先對文本作句法和語義標注。
系統采用指導學習算法,而且需要輸入一系列手工標注的訓練實例。標注和學習過程是交織在一起的。每次循環,系統將提交一批實例讓用戶標注,系統則從標注的實例中歸納出規則。
開始時,輸入的文本是未標注的,訓練集也是一個空集。系統會從文本中挑選一批實例(即小于整個文檔的文字單位),讓用戶把需抽取的部分加上標記。怎樣的字串會被選為實例呢?這取決于文檔的類型。對于結構化和半結構化文檔來說,系統根據
HTML
標記或其他字符串表達式把文本切成多個實例。對自由文本,實例的切分將由一個句子分析器完成。在這種情況下,一個實例可能是一個句子或者句子的一部分。
訓練實例上的標記將指導抽取規則的生成,并且檢驗規則的效果。如果規則被成功應用到一個實例上,那么該實例則被認為被規則“覆蓋”了。如果抽取出來的詞組與實例上的標記相吻合,則認為該詞組的抽取是正確的。
WHISK
屬于機器學習算法家族中的覆蓋學習法,與自上而下的學習分類歸納法相關。首先,找到一個最寬泛(
general
)的能覆蓋規則種子的規則,然后一次加一個條件,直到錯誤率為零,或者滿足一個事先設定的標準為止。用來衡量新條件增加的標準是規則的
Laplacian
期望錯誤值。計算公式如下:
。
N
是訓練集中抽取出來的字串數,
e
是這些字串中應用規則所產生的錯誤數。學習過程一直進行,直到能覆蓋所有該被覆蓋的抽取字串都被覆蓋為止。最后把那些過適(
overfitting
)規則刪除掉。
WHISK
與
SRV
、
RAPIER
等一樣可以處理結構化和非結構化文本,但沒有“單格”抽取法的缺陷。象
WIEN
一樣,
WHISK
通過多格“格框架”(
Case Frame
),把有關的信息聯系在一起。
WHISK
與
SRV
和
RAPIER
也不同,操作的對象不是整個文檔,而是象句子或類似長度的文本。
WHISK
象
SoftMealy
一樣可以處理信息點順序變化的情況,但需要輸入各種例子,以便學習所有可能的排序。由于其特征集的表達能力不強,因此不能表達否定特征(
negated features
),比
SRV
的性能要差一些。
第4.3.節
???????????????
小結
本章比較了幾個分裝器的自動學習系統。
表
4. 1
總結了這些系統的特點。
表
4. 1. 七
個系統的功能特征比較
系統
|
結構化
|
半結構化
|
自由式
|
多槽
|
缺失信息
|
次序變化
|
ShopBot
|
X
|
?
|
?
|
?
|
?
|
?
|
WIEN
|
X
|
?
|
?
|
X
|
?
|
?
|
SoftMealy
|
X
|
X
|
?
|
?
|
X
|
X*
|
STALKER
|
X
|
X
|
?
|
*
|
X
|
X
|
RAPIER
|
X
|
X
|
?
|
?
|
X
|
X
|
SRV
|
X
|
X
|
?
|
?
|
X
|
X
|
WHISK
|
X
|
X
|
X
|
X
|
X
|
X*
|
|