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