Web信息提取(Web Information Extraction,簡稱為WebIE)是將 Web作為信息源的一類信息進(jìn)行提取。它的主要目的是從半結(jié)構(gòu)或無結(jié)構(gòu)的信息中提取出特定的事實(shí)信息(Factual Information)。比如,從新聞報(bào)道中提取出恐怖事件的詳細(xì)情況:時(shí)間、地點(diǎn)、作案者、受害者、襲擊目標(biāo)、使用的武器等;從經(jīng)濟(jì)新聞中提取出公司發(fā)布新產(chǎn)品的情況:公司名、產(chǎn)品名、發(fā)布時(shí)間、產(chǎn)品性能等;從病人的醫(yī)療記錄中提取出癥狀、診斷記錄、檢驗(yàn)結(jié)果、處方等,或者直接提取文章中某句話或某段話的信息等等。
隨著Internet的飛速發(fā)展,Web已經(jīng)發(fā)展成為一個(gè)巨大、分布和共享的信息資源,目前Web數(shù)據(jù)大都以HTML形式出現(xiàn),缺乏對數(shù)據(jù)本身的描述,不含清晰的語義信息,模式也不明確,結(jié)構(gòu)上也不良好。這使得應(yīng)用程序無法直接解析并利用到 Web的海量信息,為增強(qiáng)Web數(shù)據(jù)的可用性,出現(xiàn)了Web信息提取技術(shù),它通過包裝現(xiàn)有 Web信息源,將網(wǎng)頁上的信息以更為結(jié)構(gòu)化的方式提取出來,為應(yīng)用程序利用 Web數(shù)據(jù)提供了良好的方式。
信息提取的研究起源于20世紀(jì)90年代初,國外的研究表現(xiàn)在以下幾個(gè)方面:斯坦福大學(xué)的Sergey Brin提出的DIPRE算法可以對 Web文檔數(shù)據(jù)關(guān)系進(jìn)行發(fā)現(xiàn);IBM 研究中心的N.Sundaresan等對Web文檔中的雙義問題進(jìn)行了討論并提出了改進(jìn)的算法,并對 Web中的英文單詞縮寫和全稱進(jìn)行了挖掘。國內(nèi)的研究:復(fù)旦大學(xué)周傲英等對半結(jié)構(gòu)化文檔的模式提取進(jìn)行了研究,提出了遞增式模式挖掘算法;南京大學(xué)張福炎等采用OEM模型構(gòu)造了半結(jié)構(gòu)化數(shù)據(jù)的提取器。這些 Web提取研究利用了半結(jié)構(gòu)化文檔的特點(diǎn),對互聯(lián)網(wǎng)上的數(shù)據(jù)進(jìn)行深層次的查找和分析,用知識代替了信息作為信息獲取的最終結(jié)果。
圖1 整體結(jié)構(gòu)圖
本文重點(diǎn)研究如何從半結(jié)構(gòu)化的 Web頁面中提取出用戶感興趣的數(shù)據(jù),并試圖提出一個(gè)基于XML的Web信息提取平臺。其工作的核心是生成提取規(guī)則。這里,提取規(guī)則實(shí)際上就是對感興趣的信息點(diǎn)進(jìn)行定位。首先需要將樣本 Web頁面轉(zhuǎn)化成為結(jié)構(gòu)良好的XML文檔;通過從樣本XML文檔中找到用戶感興趣的區(qū)域;并在這個(gè)區(qū)域內(nèi)細(xì)粒度地查找到具體要提取的信息點(diǎn)的定位信息;然后對不同樣本頁面的定位信息進(jìn)行歸納學(xué)習(xí),學(xué)習(xí)出該類頁面感興趣信息點(diǎn)的定位信息,并構(gòu)造出以XSLT文檔表示的提取規(guī)則,最終應(yīng)用該提取規(guī)則進(jìn)行實(shí)際的信息提取,如圖1所示。
本信息提取平臺目的是結(jié)合現(xiàn)有不同提取技術(shù)的優(yōu)點(diǎn),以XML技術(shù)為基礎(chǔ),將Web頁面中的關(guān)鍵信息自動(dòng)地提取出來,并表達(dá)成為結(jié)構(gòu)化的、擴(kuò)展性很強(qiáng)的XML文檔。
本文希望通過一組相似的頁面,能夠歸納出相應(yīng)的提取規(guī)則,進(jìn)而利用提取規(guī)則進(jìn)行頁面信息的提取。
系統(tǒng)首先根據(jù)用戶指定的URL獲取樣例網(wǎng)頁數(shù)據(jù)并且將該網(wǎng)頁利用HTML Tidy轉(zhuǎn)換為XHTML。
然后利用 XML Parser將該 XHTML文檔解析成為 DOM(Document Object Model)樹結(jié)構(gòu),這樣DOM樹就成為Web網(wǎng)頁在系統(tǒng)內(nèi)部的表示形式。
最后在獲得DOM樹的基礎(chǔ)上,應(yīng)用XSLT將DOM樹結(jié)構(gòu)轉(zhuǎn)化為結(jié)果XML文檔。
3.4.1 知識庫和數(shù)據(jù)庫
系統(tǒng)中的庫包括知識庫(Knowledge Base)和數(shù)據(jù)庫(database),知識庫包括領(lǐng)域知識庫和提取規(guī)則庫。數(shù)據(jù)庫包括提取結(jié)果數(shù)據(jù)庫和Web頁面數(shù)據(jù)庫。
在實(shí)際操作中,提取系統(tǒng)中的知識庫和數(shù)據(jù)庫的構(gòu)建比較復(fù)雜,而本文的側(cè)重是信息提取的研究,所以有關(guān)知識庫和數(shù)據(jù)庫的部分本文不做深入的闡述,如圖2所示。
圖2 總體框架
3.4.2 頁面優(yōu)化模塊
主要針對待學(xué)習(xí)頁面和待提取頁面進(jìn)行優(yōu)化處理,使結(jié)構(gòu)不完整或不規(guī)范的Web頁面轉(zhuǎn)化成為結(jié)構(gòu)良好的XHTML文檔,并解析成為DOM樹結(jié)構(gòu)。
3.4.3 信息提取模塊
信息提取是本文的核心,信息提取以獲得提取規(guī)則為前提,任何信息提取的研究都致力于獲得健壯可靠的提取規(guī)則,然后運(yùn)用提取規(guī)則進(jìn)行信息的提取。因此,該部分就分為兩個(gè)步驟:首先進(jìn)行樣本學(xué)習(xí),以獲得提取規(guī)則;然后運(yùn)用規(guī)則進(jìn)行信息提取。
領(lǐng)域知識庫的功能主要包括如下幾點(diǎn):
(1)為用戶提供查詢導(dǎo)航服務(wù),使用戶開始使用時(shí)不至于束手無策。方法是將一些較重要的網(wǎng)站的URL添加到相應(yīng)的領(lǐng)域下。
(2)為規(guī)則的管理提供邏輯和方法上的支持,方法是將提取規(guī)則按照子領(lǐng)域分類存儲。
本文中的領(lǐng)域指的是發(fā)布同類信息的專業(yè)網(wǎng)站,領(lǐng)域知識庫是要提取的信息所在領(lǐng)域所包含的基本概念、屬性、實(shí)體、規(guī)則等知識。如出版社圖書出版網(wǎng)站發(fā)布的是有關(guān)圖書的一類信息,它的領(lǐng)域知識庫就要包含圖書所要求的各種基本概念和屬性等知識。本文中規(guī)定,領(lǐng)域知識庫中的各領(lǐng)域按從屬關(guān)系形成一個(gè)層次樹,而根是虛擬的,也可稱為“根領(lǐng)域”。
提取規(guī)則庫存儲的是已經(jīng)學(xué)習(xí)到的提取規(guī)則,提取規(guī)則是欲提取的識別模式知識。對不同的領(lǐng)域和網(wǎng)站所采用的規(guī)則各不相同,隨著提取系統(tǒng)的運(yùn)行,會(huì)產(chǎn)生許多規(guī)則,系統(tǒng)自然需要一個(gè)庫來存放這些規(guī)則。當(dāng)系統(tǒng)需要進(jìn)行信息提取時(shí),首先可以向規(guī)則庫中查找是否有可以重復(fù)利用的規(guī)則,如果有則可以直接從規(guī)則庫中提取出相應(yīng)的規(guī)則,不必再重新生成針對相似網(wǎng)站或網(wǎng)頁的新規(guī)則。
最終提取出來的結(jié)果是含有用戶感興趣信息點(diǎn)的 XML文檔,提取結(jié)果數(shù)據(jù)庫中存放的也就是這些XML頁面。Native XML DataBase,也稱 XML本源數(shù)據(jù)庫,是專門設(shè)計(jì)用于存儲 XML文檔的數(shù)據(jù)庫,它以XML文檔自身的形式來存儲XML文檔,與其它數(shù)據(jù)庫的不同在于其內(nèi)部模型是基于XML文檔格式的。
4.4.1 清洗(TIDY)頁面文檔
清洗(TIDY)頁面需要做的是對Web頁面進(jìn)行修復(fù)轉(zhuǎn)換成為符合規(guī)范的XHTML文檔,本文中稱為清洗(TIDY)。
HTML Tidy是一個(gè)開放源代碼的強(qiáng)大工具,可用于修正HTML文檔中的常見錯(cuò)誤并生成格式編排良好的等價(jià)文檔。本文使用了Tidy的類庫,將其集成到系統(tǒng)當(dāng)中。Web頁面將通由Tidy進(jìn)行頁面預(yù)處理,將源HTML文檔轉(zhuǎn)換成等價(jià)的XHTML文檔。
4.4.2 頁面解析(PARSER)
HTML DOM樹是Web頁面的一種描述方式,是根據(jù)Web頁面中 HTML標(biāo)簽的含義而建立的,有層次關(guān)系的樹狀結(jié)構(gòu),其上的每個(gè)節(jié)點(diǎn)都是一個(gè)單獨(dú)的HTML元素。因此,將DOM層次結(jié)構(gòu)中的路徑理解成為提取的“坐標(biāo)”,通過對坐標(biāo)的獲得和理解來得到需要提取的信息。這個(gè)過程中,將XML文件加載到內(nèi)存生成XML DOM樹,以供提取規(guī)則學(xué)習(xí)模塊來生成基于DOM的規(guī)則。
在 Web信息應(yīng)用中,使用包裝器進(jìn)行信息提取。包裝器是一個(gè)軟件過程,應(yīng)用已經(jīng)定義好的信息提取規(guī)則,將輸入 Web頁面中的信息數(shù)據(jù)提取出來,轉(zhuǎn)換成用特定格式描述的信息,提供給其它信息系統(tǒng)做進(jìn)一步研究,信息提取的工作流程如圖3所示。
圖3 信息提取工作流程
4.5.1 規(guī)則學(xué)習(xí)的依據(jù)
規(guī)則(rule),不同的文獻(xiàn)中也有稱作模式(pattern)的。Wrapper的核心是提取規(guī)則,構(gòu)造準(zhǔn)確健壯的提取規(guī)則是重中之重,也是任何提取系統(tǒng)致力的目標(biāo)。
文中主要采用 HTML中所包含的結(jié)構(gòu)特征、位置特征、顯示特征、語義特征和引用特征形成提取規(guī)則。規(guī)則學(xué)習(xí)的步驟:(1)確定樣本頁面集;(2)樣本學(xué)習(xí),生成提取規(guī)則。
4.5.2 信息提取過程的描述
當(dāng)?shù)贸隽颂崛∫?guī)則XSLT文檔后,要構(gòu)造一個(gè)進(jìn)行信息提取的wrapper僅需要執(zhí)行這個(gè)XSLT。
本文方法為 Web頁面的信息提取奠定了良好的基礎(chǔ),但其適用范圍仍然有所局限。當(dāng)遇到了頁面結(jié)構(gòu)較為復(fù)雜并且缺乏語義的時(shí)候,提取的準(zhǔn)確率就會(huì)降低。所以,需要加強(qiáng)學(xué)習(xí)提取規(guī)則的適應(yīng)性和算法來解決信息復(fù)雜性,信息源權(quán)威性和有效性,提高信息提取的準(zhǔn)確性。