隨著Internet的迅速發(fā)展,Web已經(jīng)成為人們獲取信息的主要渠道之一,大多數(shù)的企業(yè)或團(tuán)體都是通過Web站點(diǎn)的網(wǎng)頁發(fā)布企業(yè)信息。為了充分利用這些信息,而不僅僅是瀏覽,應(yīng)用程序必須從HTML形式的Web網(wǎng)頁中抽取感興趣的數(shù)據(jù),并轉(zhuǎn)換成具有一定結(jié)構(gòu)的格式化數(shù)據(jù)。Web包裝器軟件的任務(wù)就是負(fù)責(zé)抽取HTML格式的數(shù)據(jù)并轉(zhuǎn)化為結(jié)構(gòu)化的數(shù)據(jù)?;赪eb包裝器的應(yīng)用程序能以訪問數(shù)據(jù)庫中信息的方式來訪問Web數(shù)據(jù),所以Web包裝器是Web數(shù)據(jù)集成體系結(jié)構(gòu)中的關(guān)鍵部分。論文在研究Web包裝器概念設(shè)計(jì)的基礎(chǔ)上,利用最新的Web技術(shù)、信息處理技術(shù)和人工智能技術(shù),完成了Web網(wǎng)頁數(shù)據(jù)抽取包裝器軟件的設(shè)計(jì),并通過Web新書發(fā)布頁面信息抽取實(shí)驗(yàn),分析了算法和系統(tǒng)的性能,驗(yàn)證了該包裝器軟件的可行性和高效性。
一、Web包裝器的概念設(shè)計(jì)
定義Wrapper:給定一個(gè)包含一系列Web頁面P(其中P={p1,p2Λ,pn})的Web數(shù)據(jù)源S,找到一個(gè)映射關(guān)系W,它可以將S中的P映射到一個(gè)數(shù)據(jù)集R,并且當(dāng)pi,j ∈{1,Λ,n}結(jié)構(gòu)變化不大的情況下能正確抽取數(shù)據(jù)。映射W就是通常所說的Web包裝器(Wrapper)。
從功能上來說,Wrapper就是根據(jù)特定的抽取規(guī)則從特定的半結(jié)構(gòu)化Web數(shù)據(jù)源執(zhí)行數(shù)據(jù)抽取的程序。Wrapper的核心是抽取規(guī)則。抽取規(guī)則用于從每個(gè)HTML文檔中抽取相關(guān)信息。
維護(hù)的步驟首先要進(jìn)行Wrapper的驗(yàn)證,然后,進(jìn)入維護(hù)過程。當(dāng)頁面發(fā)生變化時(shí),Wrapper所抽取的數(shù)據(jù)就可能不正確或抽取不到數(shù)據(jù),這樣就觸發(fā)了維護(hù)例程。維護(hù)在本質(zhì)上是在新頁面中重新建立抽取規(guī)則,從而完成Wrapper的自動(dòng)修復(fù)過程。
Web信息抽取就是從Web頁面所包含的無結(jié)構(gòu)或半結(jié)構(gòu)的信息中識(shí)別用戶感興趣的數(shù)據(jù),并將其轉(zhuǎn)化為結(jié)構(gòu)和語義更為清晰的格式(XML、關(guān)系數(shù)據(jù)、面向?qū)ο蟮臄?shù)據(jù)等)。信息抽取可以理解為一個(gè)從待處理文本中抽取信息,形成結(jié)構(gòu)化的數(shù)據(jù)并存入一個(gè)數(shù)據(jù)庫,供用戶查詢和使用的過程。因此為了完成信息的抽取和轉(zhuǎn)化,Web包裝器需要具有四個(gè)方面的能力:(1)信息定位:確定所需要的信息在文檔中的位置;(2)數(shù)據(jù)抽取:將文本內(nèi)容分字段抽取出數(shù)據(jù);(3)數(shù)據(jù)組織:將抽取的數(shù)據(jù)按照正確的結(jié)構(gòu)和語義組織起來;(4)可維護(hù)性:當(dāng)Web頁面發(fā)生變化時(shí),Web包裝器仍能正確抽取數(shù)據(jù)。因此,我們?cè)O(shè)計(jì)了一種高效的Web包裝器算法如下:
輸入:
- Config.xml配置文件:Web數(shù)據(jù)源S抽取規(guī)則定義;
- S:Web數(shù)據(jù)源;
- P:Web數(shù)據(jù)源S的Web頁面,其中P={p1,p2Λ,pn};
- T:HTML解析后生成的DOM樹,其中T={t1,Λ,tn};
- B:待抽取信息塊,其中B={b1,K,bm};
- Express:表達(dá)式;
輸出:
- R:抽取數(shù)據(jù)結(jié)果集R=R1,YR2KYRn
①利用JDOM解析Config.xml配置;
②R=(空數(shù)據(jù)集);
③for(int i=1; i<=n; i++)
{
解析S中的pi得到ti,即:pi→ti
從ti定位信息抽取塊bj,即:ti→bj,其中j ∈{1,Λ,m}
//對(duì)于pi中得到的bj進(jìn)行如下操作;
④for(int j=1; j<=m; j++)
{
用表達(dá)式Express從bj中析取數(shù)據(jù),記作Ri j={rj1,Λ,rjk};
k表示從S中抽取數(shù)據(jù)生成k個(gè)字段的數(shù)據(jù)模型
}
⑤RetuRn Ri=Ri1YRi2ΛYRim},其中i ∈{1,Λ,n}
}
⑥RetuRn R=R1YR2ΛYRn
二、Web包裝器軟件的設(shè)計(jì)
根據(jù)以上算法,Web包裝器的結(jié)構(gòu)主要由3個(gè)模塊組成:預(yù)定義模塊、數(shù)據(jù)抽取模塊和數(shù)據(jù)組織模塊。其中預(yù)定義模塊、數(shù)據(jù)抽取模塊是Web包裝器的核心部分。
1.預(yù)定義模塊。預(yù)定義模塊主要完成了抽取規(guī)則定義。本文設(shè)計(jì)的Web包裝器是基于規(guī)則的抽取模型,考慮到這種包裝器的可維護(hù)性和重用性,采用了通過解析XML配置文件(Config.xml)來完成信息定位和信息抽取。對(duì)于Web數(shù)據(jù)源頁面發(fā)生了變動(dòng),則Web包裝器的維護(hù)只需要更改針對(duì)此Web數(shù)據(jù)源的配置文件(Config.xml)即可。在網(wǎng)頁組織形式變動(dòng)不大的情況下,可以方便、快速地解決Web包裝器的維護(hù)問題。預(yù)定義抽取規(guī)則Config.xml配置文件模板如下:
<?xml version=“1.0” encoding=“gb2312”?>
<config>
<url>W(wǎng)eb源網(wǎng)頁地址</url>
<beginPage>起始頁</beginPage>
<endPage>結(jié)束頁</endPage>
<tag>標(biāo)簽</tag>
<index>索引號(hào)</index>
<regex>正則表達(dá)式</regex>
</config>
2.數(shù)據(jù)抽取模塊。數(shù)據(jù)抽取模塊作為Web包裝器的核心部分,完成了信息定位和信息抽取功能。頁面解析主要是解析HTML文檔格式的文件,可以利用HTMLParser解析器。HTMLParser是一個(gè)純的java寫的HTML解析的庫,不依賴于其它的java庫,是目前很好的HTML解析和分析的工具,能根據(jù)需要抓取網(wǎng)頁數(shù)據(jù)或改造HTML的內(nèi)容。此模塊主要完成抽取信息的定位,即確定所需抽取的信息塊在文檔中的位置。
在完成信息定位后,根據(jù)定義的抽取規(guī)則中的正則表達(dá)式來按字段析取出所需要的數(shù)據(jù)。正則表達(dá)式(Regular expression)是一種可以用于模式匹配和替換的強(qiáng)有力的工具。一個(gè)正則表達(dá)式就是由普通的字符以及特殊字符(稱為元字符)組成的文字模式,它描述在查找文字主體時(shí)待匹配的一個(gè)或多個(gè)字符串。正則表達(dá)式作為一個(gè)模板,將某個(gè)字符模式與所搜索的字符串進(jìn)行匹配,從而可以按字段析取出所需要的數(shù)據(jù)。
3.數(shù)據(jù)組織模塊。Web包裝器完成的功能就是從半結(jié)構(gòu)化的信息中抽取出結(jié)構(gòu)化的數(shù)據(jù)并保存。因此,如何將抽取的數(shù)據(jù)以結(jié)構(gòu)化的形式保存起來也是Web包裝器的一個(gè)關(guān)鍵部分。而數(shù)據(jù)組織模塊正是完成了對(duì)抽取結(jié)果的處理過程。我們使用XML格式來組織抽取結(jié)果,XML語言具有良好的數(shù)據(jù)存儲(chǔ)格式、可擴(kuò)展性、高度結(jié)構(gòu)化以及便于與數(shù)據(jù)庫交互,可以方便以后對(duì)抽取信息的進(jìn)一步處理,如檢索和分類等。
三、算法驗(yàn)證與結(jié)果分析
為了驗(yàn)證本文提出的Web包裝器設(shè)計(jì)與實(shí)現(xiàn)方法的可行性、高效性及在Web信息集成中的應(yīng)用,現(xiàn)針對(duì)清華大學(xué)、冶金工業(yè)、北京大學(xué)等出版社的新書推薦和發(fā)布網(wǎng)站的頁面運(yùn)用以上設(shè)計(jì)思想定義其抽取規(guī)則及Web包裝器,進(jìn)行圖書信息抽取測(cè)試。用ce,te和fe來分別表示:已抽取出的正確信息個(gè)數(shù)、還沒抽取出的正確信息個(gè)數(shù)和抽取出的錯(cuò)誤信息個(gè)數(shù);用R表示召回率也稱查全率;P表示精度也稱查準(zhǔn)率,根據(jù)R、P計(jì)算公式得實(shí)驗(yàn)結(jié)果如表1所示:

從以上表中實(shí)驗(yàn)結(jié)果看出,此包裝器的召回率(查全率)和精度(查準(zhǔn)率)均可達(dá)到近100%。經(jīng)分析,清華大學(xué)出版社由于其圖書發(fā)布頁面以列表形式顯示。為了抽取其詳細(xì)數(shù)據(jù),利用二次抽取完成數(shù)據(jù)抽取,在抽取過程中一些圖書信息定位不同造成一些圖書信息未能抽取出來。但從整體實(shí)驗(yàn)結(jié)果來看,此Web包裝器設(shè)計(jì)具有可行性和高效性。
基金項(xiàng)目:河南省自然科學(xué)基金資助項(xiàng)目(0411010500);校博士基金項(xiàng)目(2004-010)
(作者單位:鄭州輕工業(yè)學(xué)院機(jī)械工程學(xué)院)