摘 要: 利用網(wǎng)頁(yè)的視覺(jué)特征和DOM樹(shù)的結(jié)構(gòu)特性對(duì)網(wǎng)頁(yè)進(jìn)行分塊,并采用逐層分塊逐層刪減的方法將與正文無(wú)關(guān)的噪音塊刪除,,從而得到正文塊,。對(duì)得到的正文塊運(yùn)用VIPS算法得到完整的語(yǔ)義塊,最后在語(yǔ)義塊的基礎(chǔ)上提取正文內(nèi)容,。試驗(yàn)表明,,這種方法是切實(shí)可行的。
關(guān)鍵詞: 頁(yè)面分塊,;信息提取,;視覺(jué)特征
隨著互聯(lián)網(wǎng)的迅速發(fā)展,互聯(lián)網(wǎng)上的信息量以幾何級(jí)數(shù)倍增,。人們需要在海量的信息庫(kù)中查找自己需要的信息,。雖然搜索引擎能幫助人們快速地搜索到想要的信息,但每個(gè)網(wǎng)頁(yè)除了正文內(nèi)容外還摻雜了很多用戶不需要的信息,。例如,,為了方便用戶瀏覽而加入的導(dǎo)航鏈接、出于商業(yè)利益而加入的廣告鏈接,、版權(quán)信息以及相關(guān)主題閱讀推薦鏈接等,。這些信息摻雜在網(wǎng)頁(yè)中,,影響了用戶對(duì)主題內(nèi)容的瀏覽。因此,,如何從包含大量噪音內(nèi)容的網(wǎng)頁(yè)中將正文信息準(zhǔn)確、完整地提取出來(lái)成為眾多研究者研究的課題,。
1 相關(guān)工作
在Web信息抽取領(lǐng)域,已經(jīng)有大量的研究工作,,包括HTML結(jié)構(gòu)分析方法(如XWRAP和Lixto),、基于自然語(yǔ)言處理的方法(如SRV和WHISK),、機(jī)器學(xué)習(xí)方法等。但是這些方法都是針對(duì)特定網(wǎng)站或特定格式的,不具有通用性,,并且不能完成自動(dòng)抽取。眾多的Web網(wǎng)頁(yè)正文信息提取方法都有各自的優(yōu)缺點(diǎn),。
參考文獻(xiàn)[1]采用機(jī)器學(xué)習(xí)的方法提取網(wǎng)頁(yè)正文信息。此方法通過(guò)對(duì)網(wǎng)頁(yè)集的學(xué)習(xí),,不斷生成新的模板,,從而建立模板庫(kù)。提取信息時(shí),,查找對(duì)應(yīng)的模板,,利用模板中主題結(jié)點(diǎn)信息,直接定位主題信息塊,,快速提取主題信息,。雖然此方法采用自動(dòng)抽取的方式,其智能化程度也在一定程度上方便了用戶的使用,,但對(duì)于一個(gè)新的網(wǎng)頁(yè),,若找不到匹配的模板,此方法就不適用了,。而且隨著模板數(shù)量的增加,,模板庫(kù)的維護(hù)工作也變得越來(lái)越復(fù)雜。
從頁(yè)面視覺(jué)特征的角度對(duì)網(wǎng)頁(yè)結(jié)構(gòu)進(jìn)行挖掘也是很有效的途徑,。典型的代表就是微軟亞洲研究院提出的VIPS(Vision-based Page Segmentation)算法[2],。它利用背景顏色、字體顏色和大小,、邊框,、邏輯塊和邏輯塊之間的間距等視覺(jué)特征,通過(guò)制定相應(yīng)的規(guī)則把頁(yè)面分成了各個(gè)視覺(jué)信息塊,。這能在一定程度上滿足復(fù)雜頁(yè)面對(duì)算法的要求,,但由于視覺(jué)特征的復(fù)雜性,運(yùn)用的啟發(fā)知識(shí)往往較為模糊,,需要人工不斷地總結(jié)調(diào)整規(guī)則,,因此如何保證規(guī)則集的一致性是一大難點(diǎn)。
有許多研究者考慮使用HTML標(biāo)簽信息來(lái)劃分頁(yè)面,。其中,,中科院計(jì)算所軟件研究室提出利用TABLE標(biāo)記和視覺(jué)特征對(duì)頁(yè)面進(jìn)行語(yǔ)義塊劃分,并識(shí)別各語(yǔ)義塊屬性的算法TVPS(Table and Vision based Page Segmentation)[3],。TVPS算法中的分塊方法只考慮了各個(gè)最底層的TABLE標(biāo)記,,但是實(shí)際情況中網(wǎng)頁(yè)樣式結(jié)構(gòu)和TABLE標(biāo)記的嵌套關(guān)系都非常復(fù)雜,網(wǎng)頁(yè)正文信息不一定全在最底層的TABLE標(biāo)記中。如果只考慮最底層的TABLE標(biāo)記,,會(huì)遺漏部分正文信息,。
參考文獻(xiàn)[4]根據(jù)正文字?jǐn)?shù)多、標(biāo)點(diǎn)符號(hào)多2個(gè)特征,,提出一種基于正文特征的網(wǎng)頁(yè)正文信息提取方法,。該方法利用HTML標(biāo)簽對(duì)網(wǎng)頁(yè)內(nèi)容進(jìn)行分塊,把具有正文特征的塊保留,,不具有正文特征的塊舍棄,,從而進(jìn)行網(wǎng)頁(yè)正文信息的提取。這種方法對(duì)于新聞,、財(cái)經(jīng),、科技等類型網(wǎng)頁(yè)提取效果較好,但對(duì)于圖片多文字少或?qū)τ谟脩艋靥謹(jǐn)?shù)較少的論壇型網(wǎng)頁(yè)提取效果較差,。
以往的基于分塊的網(wǎng)頁(yè)信息提取算法都是對(duì)整個(gè)網(wǎng)頁(yè)進(jìn)行處理,,并分完塊后再對(duì)頁(yè)面塊進(jìn)行取舍,確定正文塊,。這類方法對(duì)與頁(yè)面主題無(wú)關(guān)的噪音信息也進(jìn)行了處理,,增加了算法的復(fù)雜度。本文在前人工作的基礎(chǔ)上結(jié)合參考文獻(xiàn)[3],、[4],、[7],提出采用逐層分塊逐層刪減的方法對(duì)Web網(wǎng)頁(yè)進(jìn)行信息提取,,以降低算法的復(fù)雜度,,提高抽取的準(zhǔn)確度,并用試驗(yàn)驗(yàn)證其可行性,。
2 正文提取算法
Web網(wǎng)頁(yè)通常分為3種類型:主題型網(wǎng)頁(yè)、圖片型網(wǎng)頁(yè),、目錄型網(wǎng)頁(yè)[5],。主題型網(wǎng)頁(yè)通常通過(guò)成段的文字描述1個(gè)或多個(gè)主題(如新聞網(wǎng)頁(yè)),;圖片型網(wǎng)頁(yè)中內(nèi)容是通過(guò)圖片體現(xiàn)的,只用少量文字對(duì)圖片進(jìn)行說(shuō)明,;目錄型網(wǎng)頁(yè)通常不會(huì)用成段的文字描述,,而是提供指向相關(guān)網(wǎng)頁(yè)的超鏈接,,也可稱為索引頁(yè)。本文所研究的網(wǎng)頁(yè)正文提取是針對(duì)主題型網(wǎng)頁(yè)展開(kāi)的,。
2.1 VIPS算法
VIPS算法充分利用了Web頁(yè)面的布局特征,。它首先從DOM樹(shù)中提取出所有合適的頁(yè)面塊,,然后根據(jù)這些頁(yè)面塊檢測(cè)出它們之間所有的分割條,,包括水平和垂直方向;最后基于這些分割條,,重新構(gòu)建Web頁(yè)面的語(yǔ)義結(jié)構(gòu),。對(duì)于每一個(gè)語(yǔ)義塊又可以使用VIPS算法繼續(xù)分割為更小的語(yǔ)義塊。該算法分為頁(yè)面塊提取,、分隔條提取和語(yǔ)義塊重構(gòu)3部分,,并且是遞歸調(diào)用的過(guò)程,直到條件不滿足為止,。在此僅對(duì)頁(yè)面塊提取方法做簡(jiǎn)單介紹,。
整個(gè)VIPS算法自頂向下,圖1(a)顯示的是一個(gè)表格,,該表格是整個(gè)Web頁(yè)面的一部分,,它的DOM樹(shù)結(jié)構(gòu)如圖1(b)所示。在頁(yè)面塊的提取過(guò)程中,,當(dāng)遇到<TABLE>結(jié)點(diǎn)時(shí),,它只有1個(gè)有效的孩子結(jié)點(diǎn)<TR>。根據(jù)參考文獻(xiàn)[2]中規(guī)則,,進(jìn)入<TR>標(biāo)簽,。該<TR>結(jié)點(diǎn)具有5個(gè)<TD>孩子結(jié)點(diǎn),但是它們中只有3個(gè)是有效結(jié)點(diǎn),,而且第1個(gè)孩子結(jié)點(diǎn)的背景顏色與父親結(jié)點(diǎn)的顏色不同,。根據(jù)參考文獻(xiàn)[2]中規(guī)則,該<TR>結(jié)點(diǎn)將被分割,,而第1個(gè)<TD>結(jié)點(diǎn)在本次迭代中不進(jìn)行分割,,將其保存到頁(yè)面塊池中。第2個(gè)和第4個(gè)<TD>結(jié)點(diǎn)為無(wú)效結(jié)點(diǎn),,因此將被刪除,。對(duì)于第3個(gè)和第5個(gè)<TD>結(jié)點(diǎn),根據(jù)參考文獻(xiàn)[2]中規(guī)則,,在本次迭代中不再分割,,被保存到頁(yè)面塊池中。因此最終得到3個(gè)頁(yè)面塊VB2_1,、VB2_2和VB2_3,。
2.2 頁(yè)面塊提取和過(guò)濾
由于VIPS算法的重點(diǎn)是對(duì)網(wǎng)頁(yè)進(jìn)行分塊,,所以其要對(duì)網(wǎng)頁(yè)上的所有內(nèi)容進(jìn)行處理。而對(duì)于網(wǎng)頁(yè)信息提取,,只有與主題相關(guān)的正文信息才有意義,,其他內(nèi)容(如導(dǎo)航欄、相關(guān)閱讀,、廣告鏈接,、用戶評(píng)論等)都屬于噪音信息,只需要識(shí)別出來(lái),,并不需要對(duì)其進(jìn)行處理,。如果直接利用VIPS算法對(duì)網(wǎng)頁(yè)進(jìn)行頁(yè)面塊的劃分,則會(huì)將那些與正文內(nèi)容無(wú)關(guān)的噪音內(nèi)容也進(jìn)行處理,,需要大量的內(nèi)存來(lái)保存結(jié)點(diǎn)信息,,增加了算法的時(shí)間和空間開(kāi)銷(xiāo),也不利于提高提取的準(zhǔn)確度,。所以本文采用逐層分塊逐層刪減的方法,,將網(wǎng)頁(yè)中的噪音信息盡早地刪除,以節(jié)省開(kāi)銷(xiāo),、提高準(zhǔn)確度,。本文在頁(yè)面塊提取和過(guò)濾階段只利用了VIPS算法中的頁(yè)面塊提取方法,并未進(jìn)行分隔條的提取和語(yǔ)義塊的重構(gòu),,而是在過(guò)濾完成后對(duì)保留的頁(yè)面塊進(jìn)行相應(yīng)的處理,。
由于VIPS算法中的頁(yè)面塊提取過(guò)程是結(jié)合DOM樹(shù)和視覺(jué)特征,利用人工制定的規(guī)則來(lái)判斷該結(jié)點(diǎn)是否需要再分,,并用頁(yè)面塊池來(lái)存儲(chǔ)要被繼續(xù)提取的頁(yè)面塊,,所以可以對(duì)每一層完全提取后頁(yè)面塊池中保存的頁(yè)面塊進(jìn)行相應(yīng)的判斷,將與標(biāo)題內(nèi)容無(wú)關(guān)的噪音塊刪除,。這樣將每1次提取出來(lái)的頁(yè)面塊中的噪音塊都刪除,,當(dāng)頁(yè)面塊提取完后,剩下的頁(yè)面塊即為要進(jìn)行信息提取的頁(yè)面塊,。
對(duì)網(wǎng)頁(yè)信息的抽取包括:頁(yè)面主題,、發(fā)表時(shí)間、正文內(nèi)容,,抽取流程如圖2所示,。
(1)構(gòu)建DOM樹(shù)。由于HTML書(shū)寫(xiě)的隨意性,,首先對(duì)HTML代碼進(jìn)行預(yù)處理,,例如對(duì)書(shū)寫(xiě)不規(guī)范的標(biāo)簽進(jìn)行補(bǔ)全處理,以免在后面的程序處理中造成錯(cuò)誤,,并去除一些無(wú)用標(biāo)簽,,如<script>,、注釋信息等。網(wǎng)絡(luò)上有很多網(wǎng)頁(yè)預(yù)處理工具可以將不規(guī)范的html代碼規(guī)范化,,例如HTML Tidy等,。構(gòu)造DOM樹(shù)的過(guò)程中要保存每個(gè)結(jié)點(diǎn)的字體大小、顏色,、粗細(xì),、背景色等視覺(jué)信息,方便后續(xù)處理,。
(2)對(duì)網(wǎng)頁(yè)進(jìn)行逐層分塊逐層刪減,。根據(jù)對(duì)大量網(wǎng)頁(yè)的統(tǒng)計(jì),,處于網(wǎng)頁(yè)最上方和最下方的頁(yè)面塊基本全部是網(wǎng)站的導(dǎo)航鏈接和版權(quán)聲明,,這2個(gè)頁(yè)面塊可以直接刪除。而頁(yè)面塊的中心位置與網(wǎng)頁(yè)的左邊框或右邊框的距離小于一定閾值的基本全為廣告信息,。在實(shí)驗(yàn)數(shù)據(jù)中有的廣告可以占到網(wǎng)頁(yè)寬度的40%,。可以利用這一特征將網(wǎng)頁(yè)四周的噪音塊刪除,。定義網(wǎng)頁(yè)的左上角頂點(diǎn)為坐標(biāo)原點(diǎn),,網(wǎng)頁(yè)的右下角頂點(diǎn)坐標(biāo)為(WIDTH,HEIGHT),,每個(gè)頁(yè)面塊的中心點(diǎn)坐標(biāo)為(Center_X,,Center_Y),定義4個(gè)閾值:上臨界值(TOP),、下臨界值(BOTTOM),、左臨界值(LEFT)、右臨界值(RIGHT),,據(jù)此可以得出對(duì)頁(yè)面塊進(jìn)行刪減的2個(gè)判斷規(guī)則:
規(guī)則1:IF Center_X<LEFT‖Center_X>RIGHT,,則刪除該塊。
規(guī)則2:IF Center_Y<TOP‖Center_Y>BOTTOM,, 則刪除該塊,。
進(jìn)行完第1次頁(yè)面塊提取后可以利用這2個(gè)判斷規(guī)則將位于頁(yè)面四周的導(dǎo)航欄、廣告內(nèi)容,、版權(quán)聲明等頁(yè)面塊刪除,。
網(wǎng)頁(yè)中不僅包括正文標(biāo)題、發(fā)表時(shí)間,、主題相關(guān)圖片,、正文內(nèi)容等要抽取的信息,還包括相關(guān)閱讀等與頁(yè)面主題相關(guān)但不需要抽取的信息以及圖片廣告,、搜索欄等噪音內(nèi)容,。在頁(yè)面塊提取過(guò)程中記錄該頁(yè)面塊的中心位置的坐標(biāo),、文字長(zhǎng)度(TextLength)、鏈接文字長(zhǎng)度(LinkTextLength),、圖片數(shù)量(ImageNum),。記正文字?jǐn)?shù)和鏈接個(gè)數(shù)的比值為F。設(shè)置閾值T(試驗(yàn)中T=2),。據(jù)此可以得出對(duì)頁(yè)面塊進(jìn)行刪減的3個(gè)判斷規(guī)則:
規(guī)則3:IF F<T && ImageNum=0,,則說(shuō)明該塊為相關(guān)閱讀或文字廣告鏈接,刪除該塊
規(guī)則4:IF F<T && ImageNum>0 && CENTER_Y>HEIGHT/2,,即鏈接較多,,文字較少且位于網(wǎng)頁(yè)的下方,則為圖片廣告,,刪除該塊,。
規(guī)則5:IF TextLength<100,可能為搜索欄或用戶評(píng)論等噪音,,刪除該塊,。
對(duì)逐層提取出來(lái)的頁(yè)面塊按照以上5個(gè)判斷規(guī)則逐層將噪音塊刪除。
2.3 正文信息提取
逐層分塊逐層刪減后仍保留在內(nèi)存塊池中的頁(yè)面塊被認(rèn)為是正文頁(yè)面塊,,下面的工作是對(duì)這些頁(yè)面塊進(jìn)行信息抽取,。在正式提取內(nèi)容前要對(duì)這些頁(yè)面塊進(jìn)行分隔條提取和語(yǔ)義塊的重構(gòu),以保證提取內(nèi)容的語(yǔ)義完整性,。
(1)提取頁(yè)面主題,。包含主題的頁(yè)面塊一般具有以下視覺(jué)特征:字號(hào)比其他頁(yè)面塊都大;字體顏色與其他塊不同,;周?chē)休^多的空白,;位置在網(wǎng)頁(yè)的上方。在此假定滿足以上條件中的3個(gè)或3個(gè)以上即被認(rèn)為是頁(yè)面主題塊,。
(2)提取發(fā)表時(shí)間,。本文利用視覺(jué)信息識(shí)別包含發(fā)表時(shí)間的頁(yè)面塊。在視覺(jué)上,,發(fā)表時(shí)間一般位于頁(yè)面主題下方,,且字號(hào)相對(duì)其他內(nèi)容塊較小。利用參考文獻(xiàn)[3]中提到的位置和詞性雙重約束的方式對(duì)發(fā)表時(shí)間進(jìn)行識(shí)別:考慮頁(yè)面塊標(biāo)題和正文之間的文字,,判斷它們的詞性,,對(duì)詞性為“數(shù)詞(m)”或“時(shí)間詞(t)”的文字串,把它挖掘出來(lái)作為發(fā)表時(shí)間,。本文采用中國(guó)科學(xué)院計(jì)算技術(shù)研究所軟件室研發(fā)的詞法分析器ICTCLAS[6]進(jìn)行詞性的判斷,。其對(duì)時(shí)間信息的分析結(jié)果如下所示:
“2004-06-15/m 08: /m 57: /m 45/m”、“2004年/t06月/t 5日/t05: /m 37/m”,。
(3)提取正文內(nèi)容,。需要注意的是:有的正文中有小標(biāo)題,,其視覺(jué)信息與其他正文內(nèi)容不同,這上面的分塊中已有體現(xiàn),。
3 試驗(yàn)與分析
為驗(yàn)證該方法的可行性,,從新浪、搜狐,、網(wǎng)易,、新華網(wǎng)、人民網(wǎng)5大熱門(mén)網(wǎng)站中各抽取100篇網(wǎng)頁(yè),,共500篇網(wǎng)頁(yè)進(jìn)行試驗(yàn),,網(wǎng)頁(yè)內(nèi)容涉及新聞、財(cái)經(jīng),、軍事等多個(gè)領(lǐng)域,。從頁(yè)面標(biāo)題、發(fā)表時(shí)間,、提取的完整率和準(zhǔn)確率等方面進(jìn)行評(píng)價(jià),。為驗(yàn)證其性能,,從中抽取200篇進(jìn)行人工抽取,,并進(jìn)行比對(duì)。實(shí)驗(yàn)結(jié)果如表1所示,。
準(zhǔn)確率和完整率的計(jì)算公式如下:
準(zhǔn)確率=(正確提取正文信息網(wǎng)頁(yè)個(gè)數(shù)/網(wǎng)頁(yè)總數(shù))×100%
完整率=(完整提取正文信息的網(wǎng)頁(yè)個(gè)數(shù)/正確提取正文信息網(wǎng)頁(yè)個(gè)數(shù))×100%
通過(guò)對(duì)實(shí)驗(yàn)結(jié)果的分析發(fā)現(xiàn),,有些網(wǎng)頁(yè)的發(fā)表時(shí)間前后都帶有網(wǎng)站的鏈接,導(dǎo)致該頁(yè)面塊被當(dāng)作噪音刪除,。實(shí)驗(yàn)數(shù)據(jù)表明,,正文抽取完整率和準(zhǔn)確率都達(dá)到90%以上,證明了該方法的可行性,。
本文在VIPS算法的基礎(chǔ)上結(jié)合網(wǎng)頁(yè)正文抽取的特點(diǎn),,實(shí)現(xiàn)了一種根據(jù)頁(yè)面視覺(jué)特征對(duì)Web頁(yè)面進(jìn)行逐層分塊逐層刪減的正文信息抽取方法。下一步將對(duì)判斷規(guī)則進(jìn)行完善,,以達(dá)到更好的抽取效果,。
參考文獻(xiàn)
[1] 歐健文,董守斌,,蔡斌.模板化網(wǎng)頁(yè)主題信息的提取方法[J].清華大學(xué)學(xué)報(bào),,2005,45(S1):1743-1747.
[2] CAI D,, YU S,, WEN J R, et al. VIPS: A vision-based page segmentation algorithm. Microsoft Technical Report,, MSR-TR-2003-79. 2003:10.
[3] 于滿泉,,陳鐵睿,,許洪波.基于分塊的網(wǎng)頁(yè)信息解析器的研究與設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2005,,25(4):974-976.
[4] 孫桂煌,,劉發(fā)升.基于正文特征的網(wǎng)頁(yè)正文信息提取方法[J].現(xiàn)代計(jì)算機(jī),2008(9):34-37.
[5] JOHNSON R,,HOELLOR J,,ARENDSEN A,et al.Spring框架高級(jí)編程[M].蔣培,,譯.北京:機(jī)械工業(yè)出版社,,2006.
[6] 張華平.ICTCLAS[EB/OL]. [2009-08-15].http://mtgroup.
ict.ac.cn/~zhp/ICTCLAS.htm. 2002.
[7] 黃文蓓,楊靜,,顧君忠.基于分塊的網(wǎng)頁(yè)正文信息提取算法研究[J].計(jì)算機(jī)應(yīng)用,,2007,27(B06):24-26.