程倩楠,譚龍,李浩飛
山東師范大學(xué)
面向BIU的網(wǎng)頁(yè)解析
程倩楠,譚龍,李浩飛
山東師范大學(xué)
隨著大數(shù)據(jù)時(shí)代的到來,互聯(lián)網(wǎng)已經(jīng)成為人們最大的信息來源之一,對(duì)于網(wǎng)頁(yè)處理多采用結(jié)構(gòu)化方法?,F(xiàn)有的面向結(jié)點(diǎn)的網(wǎng)頁(yè)解析方法分割粒度過小,容易割裂文字的語(yǔ)義相關(guān)性;而基于分塊的網(wǎng)頁(yè)解析器無法過濾文字內(nèi)部的噪音信息。針對(duì)以上兩種傳統(tǒng)結(jié)構(gòu)化方法的不足,我們提出了一種面向基本信息單元(Basic Information unit)的網(wǎng)頁(yè)解析方法。本文給出了BIU的定義,利用改進(jìn)后的DOM解析工具生成了網(wǎng)頁(yè)DOM樹,通過剪枝和BIU識(shí)別等操作步驟,最終得到了以基本信息單元為粒度的網(wǎng)頁(yè)結(jié)構(gòu),適合用于網(wǎng)頁(yè)內(nèi)容的提取。
結(jié)構(gòu)化;基本信息單元;BIU;解析粒度;DOM解析工具
互聯(lián)網(wǎng)上蘊(yùn)含的海量信息,成為人們重要的數(shù)據(jù)來源。非結(jié)構(gòu)化的網(wǎng)頁(yè)處理方法無法充分利用頁(yè)面特征提取頁(yè)面信息,而面向DOM結(jié)點(diǎn)與面向分塊的結(jié)構(gòu)化方法解析粒度的劃分也存在不合理性。下面我們介紹一種以基本信息單元為分割粒度的網(wǎng)頁(yè)解析方法。
通過分析HTML的內(nèi)容及結(jié)構(gòu),我們發(fā)現(xiàn),網(wǎng)頁(yè)的行與段內(nèi)部可能包含多個(gè)DOM結(jié)點(diǎn),但構(gòu)成了一個(gè)完整的句子,其中的文本信息語(yǔ)義連續(xù),具有較好的信息關(guān)聯(lián)性,適合作為網(wǎng)頁(yè)解析粒度。為此我們定義如下:
定義1:在HTML中,被換行符分隔的連續(xù)文本稱為一個(gè)網(wǎng)頁(yè)的基本信息單元(Basic Information Unit),簡(jiǎn)記為BIU。
HTML中的換行符分為顯示與隱式兩種,顯示的換行符標(biāo)簽為<br>,隱式的換行符標(biāo)簽包括布局標(biāo)簽<head><body><div><ta?ble>等,以及文本標(biāo)簽<h1><h2><p>等。
2.1 改進(jìn)傳統(tǒng)DOM解析工具
DOM樹是HTML網(wǎng)頁(yè)的結(jié)構(gòu)化表示形式,也是網(wǎng)頁(yè)在內(nèi)存中的組織形式,它以層次結(jié)構(gòu)將網(wǎng)頁(yè)信息片段作為結(jié)點(diǎn)組織起來。一般通過對(duì)HTML文檔進(jìn)行詞法分析和語(yǔ)法分析實(shí)現(xiàn)網(wǎng)頁(yè)DOM解析。由于互聯(lián)網(wǎng)上存在著大量不符合HTML語(yǔ)法規(guī)范的網(wǎng)頁(yè),目前,一些DOM解析器也具備較好的容錯(cuò)性,如CTidy軟件,能夠自動(dòng)識(shí)別HTML中的不規(guī)范之處,并發(fā)出警告,進(jìn)行自動(dòng)修正。
為了提高網(wǎng)頁(yè)解析的效率與準(zhǔn)確性,本文對(duì)CTidy軟件做了如下部分改進(jìn):
(1)改變網(wǎng)頁(yè)解析的輸入方式,由HTML文檔輸入變?yōu)樽址斎搿?/p>
(2)跳過無法解析的錯(cuò)誤網(wǎng)頁(yè),繼續(xù)下面的網(wǎng)頁(yè)解析工作,而不是進(jìn)行報(bào)錯(cuò)終止,保證運(yùn)行的連貫性。
(3)刪除script標(biāo)簽下的腳本文字,只留下網(wǎng)頁(yè)可顯示的信息。
(4)去除對(duì)部分轉(zhuǎn)義字符的解析。
2.2 基本信息單元的識(shí)別
在以上DOM解析的基礎(chǔ)上,我們進(jìn)行基本信息單元的識(shí)別工作。由于HTML結(jié)構(gòu)具有靈活性,所以對(duì)基本信息單元的識(shí)別也存在一定的挑戰(zhàn)性。我們必須清楚并不是所有的HTML換行標(biāo)簽都能作為分割基本信息單元的邊界,因此BIU識(shí)別的主要任務(wù)就是尋找有效的換行符。
本文將DOM樹的剪枝與BIU的識(shí)別相結(jié)合,通過以下四個(gè)步驟,實(shí)現(xiàn)面向BIU的網(wǎng)頁(yè)解析,圖1演示了這個(gè)過程。
(1)DOM樹剪枝
規(guī)則一:若葉結(jié)點(diǎn)不含文字內(nèi)容,則刪除此結(jié)點(diǎn),旨在過濾掉網(wǎng)頁(yè)中的非文本噪音結(jié)點(diǎn),對(duì)應(yīng)圖1中的(1)a。
規(guī)則二:若葉結(jié)點(diǎn)的父節(jié)點(diǎn)不存在兄弟結(jié)點(diǎn),則用當(dāng)前頁(yè)葉結(jié)點(diǎn)代替其父節(jié)點(diǎn),旨在消除無效換行符,對(duì)應(yīng)圖1中的(1)b。
(2)識(shí)別BIU
進(jìn)行以上剪枝后,再為各文本結(jié)點(diǎn)尋找對(duì)應(yīng)的換行符結(jié)點(diǎn),即在DOM樹中尋找距離文本結(jié)點(diǎn)最近的換行結(jié)點(diǎn)。若有文本結(jié)點(diǎn)對(duì)應(yīng)相同的換行符結(jié)點(diǎn),則這些文本結(jié)點(diǎn)屬于同一個(gè)基本信息單元。如圖1中(2)所示,其中包含三個(gè)換行符結(jié)點(diǎn),對(duì)應(yīng)于三個(gè)基本信息單元。
(3)合并文本結(jié)點(diǎn)
將屬于同一BIU的文本結(jié)點(diǎn)合并,此時(shí)DOM中又會(huì)出現(xiàn)非文本結(jié)點(diǎn)。對(duì)應(yīng)圖1中(3)。
(4)再次剪枝
為了消除新出現(xiàn)的非文本噪音結(jié)點(diǎn),按步驟1對(duì)DOM樹再次剪枝。
最終實(shí)現(xiàn)樹中的每個(gè)葉結(jié)點(diǎn)均為一個(gè)基本信息單元,對(duì)應(yīng)圖1中(4)。
經(jīng)過上述步驟,我們將網(wǎng)頁(yè)分割為基本信息單元的集合,克服了DOM結(jié)點(diǎn)過于瑣碎的缺點(diǎn),便于網(wǎng)頁(yè)正文的提取和網(wǎng)頁(yè)信息的抽取。
本文針對(duì)傳統(tǒng)基于DOM結(jié)點(diǎn)和網(wǎng)頁(yè)塊進(jìn)行HTML解析的缺點(diǎn),提出一種適用于內(nèi)容提取的網(wǎng)頁(yè)信息單元組織結(jié)構(gòu)。首先,我們對(duì)傳統(tǒng)的DOM解析器進(jìn)行改進(jìn),增強(qiáng)DOM解析的效率和準(zhǔn)確性。其次,對(duì)生成DOM樹同時(shí)進(jìn)行剪枝和BIU的識(shí)別操作,最終得到以基本信息單元為粒度的網(wǎng)頁(yè)結(jié)構(gòu)?;拘畔卧膬?nèi)容具有較強(qiáng)的語(yǔ)義關(guān)聯(lián)性,便于網(wǎng)頁(yè)正文提取及信息抽取等后續(xù)操作。
[1]于滿全,陳鐵睿,徐洪波.基于分塊的網(wǎng)頁(yè)信息解析器的研究與設(shè)計(jì).計(jì)算機(jī)應(yīng)用.2005
[2]王璟琦.基于內(nèi)容單元的網(wǎng)頁(yè)解析與內(nèi)容提取[D].黑龍江:哈爾濱工業(yè)大學(xué),2008.12.1
程倩楠(1997-),女,漢族,山東泰安人,本科,山東師范大學(xué)信息科學(xué)與工程學(xué)院,研究方向:計(jì)算機(jī)信息技術(shù)。