周艷平 李金鵬 宋群豹
(青島科技大學(xué)信息科學(xué)技術(shù)學(xué)院 山東 青島 266061)
如今,在網(wǎng)絡(luò)信息飛速增長(zhǎng)的時(shí)代,網(wǎng)絡(luò)信息變得越來(lái)越重要,它影響著人類(lèi)學(xué)習(xí)、工作、生活等各個(gè)方面。然而,網(wǎng)頁(yè)通常包含非主題信息,如導(dǎo)航、廣告鏈接、版權(quán)信息等, 我們稱之為噪音信息。 在網(wǎng)頁(yè)上的正文信息通常與不相關(guān)的內(nèi)容混雜在一起,這導(dǎo)致網(wǎng)頁(yè)信息的可利用性大大降低[1]。當(dāng)對(duì)Web頁(yè)面信息再次分析或開(kāi)發(fā)利用時(shí),往往會(huì)有頁(yè)面上的噪音信息。如何準(zhǔn)確有效地提取文本信息已成為當(dāng)前研究領(lǐng)域的一個(gè)重要課題。
現(xiàn)有的網(wǎng)頁(yè)正文抽取的方法可以分為四類(lèi):基于包裝器和啟發(fā)式規(guī)則的信息提取方法,基于文本特征的信息提取方法,基于視覺(jué)分塊的信息提取方法,基于統(tǒng)計(jì)和機(jī)器學(xué)習(xí)的信息提取方法。
(1) 基于包裝器和啟發(fā)式規(guī)則的信息提取方法。該方法是一種早期且流行的方法,后續(xù)的Web模板提取技術(shù)也屬于這一類(lèi)。 其原則是通過(guò)構(gòu)造包裝器或Web模板規(guī)則從Web信息源中提取符合規(guī)則的信息[2-3]。該方法在特定格式信息源中的提取有很好的準(zhǔn)確率,但在當(dāng)前互聯(lián)網(wǎng)頁(yè)面越來(lái)越多樣化、越來(lái)越復(fù)雜的趨勢(shì)下,該方法并不是通用的。
(2) 基于文本特征的信息提取方法。 該方法通過(guò)網(wǎng)頁(yè)結(jié)構(gòu)和文本特征將網(wǎng)頁(yè)劃分為文本塊和鏈接塊。通過(guò)使用連續(xù)出現(xiàn)的噪聲塊的結(jié)果來(lái)完成文本部分的位置,得到網(wǎng)頁(yè)正文信息[4-5]。該方法比傳統(tǒng)的基于包裝的提取方法更簡(jiǎn)單實(shí)用。但對(duì)于某些多主題網(wǎng)頁(yè)的抽取,該方法無(wú)法正確地對(duì)正文進(jìn)行定位,從而影響了準(zhǔn)確率。
(3) 基于視覺(jué)分塊的信息提取方法。該算法受人眼視覺(jué)啟發(fā),對(duì)人視覺(jué)處理信息進(jìn)行模擬,并結(jié)合DOM樹(shù)對(duì)網(wǎng)頁(yè)進(jìn)行文本分塊,最后從文本塊中定位到正文塊,達(dá)到提取正文的目的。該方法考慮了包含文本的DOM節(jié)點(diǎn)的結(jié)構(gòu)。與傳統(tǒng)算法相比,該算法的精度有了一定的提高,但計(jì)算量大,實(shí)現(xiàn)難度較大。
(4) 基于統(tǒng)計(jì)和機(jī)器學(xué)習(xí)的信息提取方法。該算法通過(guò)對(duì)樣本網(wǎng)頁(yè)的文本分布和節(jié)點(diǎn)特征進(jìn)行統(tǒng)計(jì)分析,建立模型規(guī)則,并通過(guò)不斷學(xué)習(xí)對(duì)模型參數(shù)進(jìn)行改進(jìn),從而在一定程度上實(shí)現(xiàn)自適應(yīng)。文獻(xiàn)[7]根據(jù)網(wǎng)頁(yè)的顯示屬性對(duì)網(wǎng)頁(yè)文本進(jìn)行分組,根據(jù)顯示屬性值對(duì)網(wǎng)頁(yè)文本進(jìn)行分類(lèi),獲取相關(guān)文本,從而完成網(wǎng)頁(yè)的信息提取。目前,網(wǎng)頁(yè)的復(fù)雜性和非標(biāo)準(zhǔn)化程度越來(lái)越高。僅將屬性值作為訓(xùn)練特征使用會(huì)導(dǎo)致某些網(wǎng)頁(yè)無(wú)法正確識(shí)別或特征遺漏。
本文提出了一種基于SVM和文本密度的網(wǎng)頁(yè)信息提取方法。 根據(jù)網(wǎng)頁(yè)的特點(diǎn)和文本信息塊周?chē)鷺?biāo)簽的特點(diǎn),提出了五種密度特征。使用分類(lèi)效果比較高的監(jiān)督學(xué)習(xí)分類(lèi)器SVM進(jìn)行正文信息塊篩選處理。實(shí)驗(yàn)證明,該方法不僅有較高的精度,而且通用性好。
網(wǎng)頁(yè)按內(nèi)容可分為三類(lèi):主題型網(wǎng)頁(yè),Hub網(wǎng)頁(yè)和多媒體網(wǎng)頁(yè)[11]。下面分別給出定義:
(1) 主題型網(wǎng)頁(yè):以段落形式描述一個(gè)或多個(gè)主題的網(wǎng)頁(yè),很少或甚至沒(méi)有圖片、視頻和鏈接。鳳凰新聞網(wǎng)是一個(gè)典型的主題網(wǎng)頁(yè)。
(2) Hub網(wǎng)頁(yè):通常它不描述事物,但提供相關(guān)頁(yè)面的超鏈接,例如hao123的主頁(yè)。
(3) 多媒體網(wǎng)頁(yè):這種網(wǎng)頁(yè)的內(nèi)容通過(guò)圖片,視頻等體現(xiàn),而文本只是對(duì)它們的描述,如電影天堂。
本文是以主題網(wǎng)頁(yè)為主開(kāi)展研究工作。
為了提高處理效率,在構(gòu)建DOM樹(shù)之前,應(yīng)先刪除網(wǎng)頁(yè)中如 HTML注釋及腳本等噪音信息。本文采用正則表達(dá)式來(lái)過(guò)濾噪音信息,噪音信息如表1所示。
表1 噪音信息
在網(wǎng)頁(yè)的DOM樹(shù)中,容器標(biāo)簽如
大量研究發(fā)現(xiàn)正文節(jié)點(diǎn)一般分布在DOM樹(shù)的葉節(jié)點(diǎn)中。 因此,采用DOM樹(shù)的深度優(yōu)先遍歷來(lái)分析葉子節(jié)點(diǎn)中的信息。步驟如下:
(1) 深度優(yōu)先遍歷DOM樹(shù),從葉子節(jié)點(diǎn)開(kāi)始,找到最底層的第一個(gè)容器標(biāo)簽,讀取該節(jié)點(diǎn)信息加入文本塊隊(duì)列,并標(biāo)記已訪問(wèn)。
(2) 判斷葉子節(jié)點(diǎn)有未被訪問(wèn)的兄弟節(jié)點(diǎn),若有則讀取節(jié)點(diǎn)信息加入文本塊隊(duì)列,并標(biāo)記已訪問(wèn)。若無(wú)則讀取父節(jié)點(diǎn)信息,若父節(jié)點(diǎn)未被訪問(wèn),并且不是body節(jié)點(diǎn),則重復(fù)(1)過(guò)程。直到將所有的節(jié)點(diǎn)都訪問(wèn),輸出文本塊隊(duì)列。
在本文中,去噪被認(rèn)為是二元分類(lèi)問(wèn)題,即正文塊和噪音塊。在實(shí)驗(yàn)中,SVM用于解決二元分類(lèi)問(wèn)題。 假設(shè)在n維空間中定義了訓(xùn)練集,正類(lèi)表示正文塊,負(fù)類(lèi)表示噪聲塊。選擇了可以區(qū)分正文塊和噪音塊的五個(gè)重要特征屬性,即可以訓(xùn)練出五維的特征屬性矩陣。
文本塊特征會(huì)直接影響SVM的分類(lèi)效果,通過(guò)分析網(wǎng)頁(yè)結(jié)構(gòu)發(fā)現(xiàn),雖然各個(gè)網(wǎng)站的風(fēng)格有差異,但主題網(wǎng)站的結(jié)構(gòu)是很相似的。通過(guò)使用數(shù)學(xué)模型分析其組成并計(jì)算其比例,形成具有不同含義的特征文本的密度值。本文使用五種密度值進(jìn)行特征標(biāo)注,分別如下:
(1) 超鏈接密度:“超鏈接”形式的文本長(zhǎng)度與文本塊總長(zhǎng)度的比例稱為文本塊的超鏈接密度,其公式為:
(1)
式中:HLL為超鏈接文字長(zhǎng)度,AL為文本塊包含的文字總長(zhǎng)度。諸如廣告、友情鏈接、目錄和導(dǎo)航之類(lèi)的大量“網(wǎng)絡(luò)噪聲”通常以“超鏈接”的形式存在,并且與正文內(nèi)容在不同文本塊中。 也就是說(shuō),文本塊中超鏈接的密度越高,該文本塊屬于噪音塊的概率就越大。
(2) 噪音詞密度:通常用于標(biāo)識(shí)網(wǎng)站自身的功能,與頁(yè)面正文內(nèi)容無(wú)關(guān)的詞語(yǔ)數(shù)量,(如“首頁(yè)”、“搜索”、“聲明”、“版權(quán)”、“幫助”等)與整個(gè)文本塊詞語(yǔ)數(shù)量之比,稱為該文本塊的噪音詞密度,其公式為:
(2)
式中:NWC是文本塊中有噪音的詞語(yǔ)的數(shù)量,AWC是文本塊中的詞語(yǔ)總數(shù)。 噪音詞的出現(xiàn)并非偶然。 通過(guò)對(duì)大量網(wǎng)頁(yè)的研究,發(fā)現(xiàn)文本塊中的噪音詞的比例越高,該文本塊是噪音塊的概率越大。本文通過(guò)哈爾濱工業(yè)大學(xué)信息檢索研究中心開(kāi)發(fā)分詞工具來(lái)對(duì)文本塊內(nèi)容進(jìn)行分詞處理,并提取出詞語(yǔ)信息來(lái)進(jìn)行計(jì)算。
(3) 中文標(biāo)點(diǎn)密度:在某一文本塊中,中文標(biāo)點(diǎn)與文本塊內(nèi)字符總長(zhǎng)度之比,稱為該文本塊的中文標(biāo)點(diǎn)密度,其公式為:
(3)
式中:SCL是文本塊中中文標(biāo)點(diǎn)的數(shù)量,ACL是文本塊中字符的總數(shù)量。通過(guò)對(duì)網(wǎng)頁(yè)的研究和分析,發(fā)現(xiàn)網(wǎng)頁(yè)文本通常分段顯示。 段落通常包含標(biāo)準(zhǔn)標(biāo)點(diǎn)符號(hào),而網(wǎng)頁(yè)中的噪音信息通常不包含或僅包含一個(gè)標(biāo)點(diǎn)符號(hào)。
(4) 文本修飾標(biāo)簽密度:“strong”、“b”、“I”、“h1”、“h2”、“u”等修飾文字的標(biāo)簽稱為文本修飾標(biāo)簽。某一文本塊中,文本修飾標(biāo)簽數(shù)量與文本塊中所有標(biāo)簽數(shù)量之比,稱為該文本塊的文本修飾標(biāo)簽密度,其公式為:
(4)
式中:LC為文本塊包含的文本修飾標(biāo)簽的數(shù)量,ALC為文本塊中所有標(biāo)簽的數(shù)量。文本修飾標(biāo)簽對(duì)文本的內(nèi)容進(jìn)行裝飾,增加文本的可讀性,通常修飾標(biāo)簽會(huì)在正文中體現(xiàn)。
(5) 網(wǎng)頁(yè)區(qū)域密度:在整個(gè)HTML中,正文文本塊通常集中在網(wǎng)頁(yè)的某個(gè)區(qū)域位置,稱為該正文文本塊的網(wǎng)頁(yè)區(qū)域密度,其公式為:
(5)
式中:NS為該文本塊容器標(biāo)簽所在的節(jié)點(diǎn)序數(shù),ANS為整個(gè)DOM樹(shù)的節(jié)點(diǎn)總數(shù)。經(jīng)過(guò)大量的研究發(fā)現(xiàn),正文容器標(biāo)簽的區(qū)域密度通常在18%~55%范圍內(nèi),這對(duì)我們進(jìn)一步判斷正文文本塊有很大的參考價(jià)值。
本文從網(wǎng)易、新浪、人民網(wǎng)等主題網(wǎng)站隨機(jī)提取10個(gè)頁(yè)面作為訓(xùn)練網(wǎng)頁(yè),通過(guò)特征提取器針對(duì)2.1節(jié)提出的五種密度特征來(lái)提取,并且人工標(biāo)注文本塊的類(lèi)別(-1:噪音塊、1:正文塊)。針對(duì)訓(xùn)練期間所出現(xiàn)的問(wèn)題,文本通過(guò)以下方法解決:
(1) 數(shù)值歸一化處理。為了讓結(jié)果更加準(zhǔn)確,在處理不同取值范圍的特征值時(shí),通常采用數(shù)值歸一化方法,本文將任意取值范圍的特征值轉(zhuǎn)化為(0,1)區(qū)間內(nèi)的值,公式如下:
(6)
式中:newValue為特征值數(shù)值歸一化后新的值,oldValue為原始特征值,max和min分別是數(shù)據(jù)集中的最小特征值和最大特征值。
(2) 確定訓(xùn)練矩陣。將上述五個(gè)特征屬性用作輸入?yún)?shù),得到訓(xùn)練矩陣。
(3) 選擇核函數(shù)。核函數(shù)的作用就是隱含著一個(gè)從低維空間到高維空間的映射,而這個(gè)映射可以把低維空間中線性不可分的兩類(lèi)點(diǎn)變成線性可分的。SVM中常用的內(nèi)核函數(shù)有四種:線性核函數(shù),高斯核函數(shù),多項(xiàng)式核函數(shù),感知核函數(shù)[13]。多實(shí)證應(yīng)用表明高斯核函數(shù)(RBF)SVM具有良好的學(xué)習(xí)能力,其公式如下:
(7)
式中:σ為核函數(shù)的參數(shù),需要人工根據(jù)經(jīng)驗(yàn)調(diào)整。
(4) 調(diào)參方法。在模型中,有兩個(gè)超參數(shù)分別是懲罰系數(shù)C和RBF核函數(shù)的系數(shù)σ是需要人工調(diào)整的。當(dāng)C越大,σ越小,核函數(shù)對(duì)x的衰減越快,這就放大了數(shù)據(jù)之間的差別,致使該模型只適用于支持向量附近,未知樣本分類(lèi)效果差,訓(xùn)練精度高,而測(cè)試精度不高的可能;如果C值越小,σ值越大,平滑效果越大,訓(xùn)練精度不高,從而也會(huì)影響測(cè)試精度。本文使用交叉檢驗(yàn)法來(lái)確定此數(shù)據(jù)模型的參數(shù)σ1、C1。
(5) 交叉檢驗(yàn)法。首先把數(shù)據(jù)集分為兩部分:訓(xùn)練數(shù)據(jù)集和驗(yàn)證數(shù)據(jù)集;為了判斷一個(gè)模型的優(yōu)秀程度,我們將模型的訓(xùn)練數(shù)據(jù)集替換成驗(yàn)證集進(jìn)行檢驗(yàn),從而獲得驗(yàn)證結(jié)果。但我們不能只對(duì)數(shù)據(jù)集進(jìn)行一次分割,而是必須將其隨機(jī)分割幾次,從而每次都得到一個(gè)結(jié)果。再求所有結(jié)果的均值,就可以對(duì)訓(xùn)練模型進(jìn)行評(píng)估了。我們可以在其間不斷地調(diào)整模型參數(shù),通過(guò)比較結(jié)果可以得出這個(gè)模型的最佳參數(shù)。
通過(guò)SVM數(shù)據(jù)模型對(duì)文本塊進(jìn)行分類(lèi),需要注意的是,這時(shí)已經(jīng)完成了文本塊處理相關(guān)的工作,具體步驟如下:
(1) 先對(duì)網(wǎng)頁(yè)進(jìn)行預(yù)處理并生成DOM樹(shù)。
(2) 遍歷DOM樹(shù)獲得文本塊并加入到隊(duì)列中。
(3) 利用特征提取器對(duì)每個(gè)文本塊進(jìn)行密度特征提取。
(4) 將文本塊密度特征輸入到SVM數(shù)據(jù)模型中,返回相應(yīng)結(jié)果R。
(5) 保存R>0的文本塊(R為結(jié)果值,R<0:噪音塊,R>0:正文塊)。
根據(jù)上述方法,得到正文塊的具體步驟如圖1所示。
圖1 正文塊獲取步驟
經(jīng)過(guò)上述步驟處理之后,就可以獲得正文塊。文本塊中仍有一些需要去除的噪聲信息。研究分析發(fā)現(xiàn)塊內(nèi)噪音一般存在以下特點(diǎn)[12]:
(1) 噪音信息不會(huì)太長(zhǎng),通常只有幾個(gè)詞,而且不包含標(biāo)點(diǎn)符號(hào)信息。
(2) 塊內(nèi)噪音通常存在于正文塊的頭部或尾部,并且不會(huì)出現(xiàn)在混淆文本內(nèi)容的段落。
根據(jù)上述特點(diǎn),本文以段落為基本單位分析正文文本塊,提出“段落文字密度”,“段落標(biāo)點(diǎn)密度”和“段落區(qū)域密度”的概念,以評(píng)估某個(gè)段落是否為塊內(nèi)噪音段落。
常用的HTML分段指示標(biāo)記有:
、
、