《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應用 > 一種高效的新聞網(wǎng)頁噪聲過濾方法
一種高效的新聞網(wǎng)頁噪聲過濾方法
來源:微型機與應用2011年第16期
鄒永強,鐘志農(nóng)
(國防科技大學 電子科學與工程學院,湖南 長沙410073)
摘要: 網(wǎng)頁噪聲過濾是網(wǎng)頁預處理中關(guān)鍵的一步,其處理結(jié)果對后續(xù)處理的效率和準確性都有很大的影響。本文基于文本塊字符數(shù)的統(tǒng)計規(guī)律,在總結(jié)了新聞網(wǎng)頁特點的基礎(chǔ)上設(shè)計了一種高效的新聞網(wǎng)頁噪聲過濾算法。該算法不僅完成了新聞正文的提取,也實現(xiàn)了新聞標題和報道時間的提取。試驗證明,該算法有很高的處理速度,同時其提取的準確率也有了進一步的提高。
Abstract:
Key words :

摘  要: 網(wǎng)頁噪聲過濾是網(wǎng)頁預處理中關(guān)鍵的一步,其處理結(jié)果對后續(xù)處理的效率和準確性都有很大的影響。本文基于文本塊字符數(shù)的統(tǒng)計規(guī)律,在總結(jié)了新聞網(wǎng)頁特點的基礎(chǔ)上設(shè)計了一種高效的新聞網(wǎng)頁噪聲過濾算法。該算法不僅完成了新聞正文的提取,也實現(xiàn)了新聞標題和報道時間的提取。試驗證明,該算法有很高的處理速度,同時其提取的準確率也有了進一步的提高。
關(guān)鍵詞: 統(tǒng)計規(guī)律;網(wǎng)頁噪聲過濾;正文提取

 目前,互聯(lián)網(wǎng)的網(wǎng)頁除了表達主題的文本內(nèi)容之外,還常常包括與主題無關(guān)的導航區(qū)、超鏈接、廣告信息、版權(quán)信息等噪聲信息。這些噪聲對后續(xù)處理是十分不利的,一方面它增加了處理的工作量,耗費了不必要的資源;另一方面它使得處理的效果大打折扣,使結(jié)果出錯的概率大大增加。因此網(wǎng)頁噪聲過濾是每個面向網(wǎng)絡(luò)文本處理的應用技術(shù)都要考慮的,尤其是在網(wǎng)絡(luò)文本挖掘和網(wǎng)絡(luò)人物追蹤等對精度和速度要求都比較高的應用中,其重要性更是不言而喻。
    網(wǎng)頁噪聲過濾的目的是快速準確地識別并清除網(wǎng)頁內(nèi)的噪聲,它是提高各種網(wǎng)頁分析系統(tǒng)性能的一項關(guān)鍵技術(shù)。許多學者為了提高網(wǎng)頁濾噪的準確度和效率進行了卓有成效的研究,紛紛提出各自的方法并且不斷加以改進[1-6]。而參考文獻[7]提出了一種快速且簡單的正文提取方法,它不需要構(gòu)造DOM樹而是直接把HTML源文件看作是文本塊的集合,僅通過分析每個文本塊的字符數(shù)就可以提取出正文。與基于DOM的方法相比,這種方法在處理速度上有很大的優(yōu)勢。
    本文在分析總結(jié)新聞網(wǎng)頁特征的基礎(chǔ)上利用基本文本塊的字符數(shù)統(tǒng)計規(guī)律,提出了一種高效的過濾方法,它有很高的提取準確率和過濾速度,并且此方法在提取出新聞正文文本的同時還提取出了新聞網(wǎng)頁的標題和報道時間。
1 網(wǎng)頁噪聲過濾算法
    盡管網(wǎng)頁結(jié)構(gòu)、網(wǎng)頁布局千差萬別,但還是有一定的規(guī)律可循。在參考文獻[7]中,網(wǎng)頁源文件被分割成多個文本塊,然后根據(jù)文本塊字符數(shù)的統(tǒng)計規(guī)律,在通過一定的處理后得到nshort和nlong兩個閾值,最后根據(jù)這兩個閾值得到要提取的文本塊集合。該方法處理速度較快,但是精度上卻有所欠缺,而且會發(fā)生大段文本塊遺漏的現(xiàn)象。問題主要出在閾值的選取上,本文希望通過對參考文獻[7]的方法進行改進從而提高提取精度、減少文本塊的遺漏,同時實現(xiàn)新聞標題和報道時間的提取。
1.1 新聞網(wǎng)頁的特征
    新聞網(wǎng)頁一般包括新聞標題、新聞報道時間、作者、新聞正文等新聞有效信息,也常常包括導航區(qū)、超鏈接、版權(quán)信息以及圖片控件廣告等噪聲信息。通過大量觀察發(fā)現(xiàn)新聞有效信息絕大多數(shù)處于網(wǎng)頁源文件的中間位置,而且由相對較長且位置緊湊的多個段落組成。這些緊挨著的段落字數(shù)多少不同,中間還可能插有少量的鏈接。而噪聲信息一般來說字數(shù)比較少,而且大多一般處在邊緣位置。
    再來看新聞網(wǎng)頁HTML源文件的特征。HTML源文件由各種標簽和標簽所修飾的內(nèi)容組成。這些標簽根據(jù)作用的不同可以分為網(wǎng)頁布局元素(如<div>)和網(wǎng)頁描述元素(如<font>)。通過對標簽的分析可以發(fā)現(xiàn)有些標簽所修飾的內(nèi)容全是噪聲(如<script>),完全可以濾除它。之后根據(jù)網(wǎng)頁布局元素將HTML源文件劃分為多個文本塊,這類似于多個段落。對每個文本塊的字數(shù)進行統(tǒng)計,將其結(jié)果用直方圖表示出來(如圖1所示)。在這個網(wǎng)頁中新聞有效信息部分從第67塊到第104塊,其他部分全是噪聲塊。從這個統(tǒng)計結(jié)果來看,HTML源文件的特征和網(wǎng)頁表現(xiàn)的特征是一致的。

 

 

1.2 基于文本塊統(tǒng)計的新聞有效信息提取算法
    通過以上對新聞網(wǎng)頁特點的總結(jié)可見,其文本塊是有一定的統(tǒng)計規(guī)律的。本文的算法就是利用這些統(tǒng)計規(guī)律來實現(xiàn)新聞有效信息的提取。
1.2.1 基本文本塊的提取
    從新聞網(wǎng)頁HTML源文件中提取出基本文本塊主要分以下四步:
    (1)檢查HTML標簽,將不完整的補全。
    (2)濾除表1中類型Ⅰ欄的標簽。這些標簽所修飾的內(nèi)容全部為噪聲,這些噪聲在HTML源文件中一般會占很大的比例。
    (3)將表1中類型Ⅱ欄的標簽全部替換為<textblock>,同時把空白都刪掉。

    (4)根據(jù)自定義標簽<textblock>從經(jīng)過上述三步處理的網(wǎng)頁源文件中按順序抽取出每個文本塊,得到文本塊集合blockset={b1,b2,b3…}。
    HTML的編寫自由度比較大,再加上瀏覽器的容錯能力很強,導致HTML源文件里的標簽使用很不規(guī)范,標簽缺失的現(xiàn)象很嚴重。這會使濾除的出錯概率增大,所以第(1)步的處理是很必要的。經(jīng)過第(2)、(3)兩步后,按順序提取出各個文本塊就得到了原始的文本塊集合blockset。下面的處理就是針對這個集合的。
1.2.2 文本塊統(tǒng)計與閾值確定
    這一步的目的是確定哪些文本塊是應該提取的,為此需要建立一個blockset的一一映射,這個映射就是數(shù)值數(shù)組blocknum,然后對blocknum進行處理。這個過程包括以下幾步:
    (1)對文本塊集合blockset中每個塊的字符數(shù)進行統(tǒng)計,之后將統(tǒng)計結(jié)果存入數(shù)值數(shù)組blocknum對應的位置處。為便于分析將blocknum的結(jié)果繪制成直方圖。
    上面已經(jīng)說過主體文本是字符數(shù)比較多且緊湊的文本塊,從這幅統(tǒng)計圖中確實可以看出一些符合這個特征的文本塊,但是這些緊湊的文本塊之間字符數(shù)差別比較大,其邊界也不好判斷,為此采用平滑技術(shù)對其進行處理。平滑技術(shù)的關(guān)鍵是平滑算子的選取,而這個算子選取的依據(jù)是以平滑為目的的。由于希望在平滑的同時使邊界保持清晰,所以采用加權(quán)鄰域平均法來處理統(tǒng)計結(jié)果,為此設(shè)計一個一維中心加權(quán)算子:1/4[1  2  1]。這個算子在平滑過程中考慮到處理點前后各一個臨近點,同時給予處理點較大的權(quán)值(這里處理點的權(quán)值為2,而其臨近點權(quán)值為1)。處理后得到數(shù)值數(shù)組sblocknum,繪制成直方圖如圖2所示。對比圖1、圖2,可以發(fā)現(xiàn)平滑處理之后新聞主體文本塊更為突出,其邊界也更為明顯。這對最終提取出準確的主體文本是非常有利的。
    (2)確定文本塊最低閾值N′min和標定值N標定,并據(jù)此提取出新聞的主體文本。經(jīng)過多次試驗,在總結(jié)了規(guī)律的基礎(chǔ)上本文規(guī)定這兩個閾值如下:
  
其中Nmin是除0以外的最小值,Navg是所有塊的平均值,Nmaxi是第i個最大值,Nmin、Navg、N標定和Nmaxi都取自平滑后的結(jié)果sblocknum。N′min由Nmin、Navg兩個參數(shù)決定,實際上是這兩個參數(shù)的加權(quán)平均。給Nmin較大的權(quán)值,就使得N′min的值落在Nmin、Navg之間且更靠近Nmin。經(jīng)過實驗驗證,這樣取值是合理的,并且達到了較好的效果。標定值N標定的取值最終關(guān)系到一個文本塊集合的取舍,因此必須慎重考慮。因為各個文本塊的字符數(shù)相差很大,即使平滑后也存在這種情況,因此不能僅根據(jù)sblocknum中的最大值來確定N標定的值,否則會丟掉很多原本是主體文本的文本塊。同時N標定也不能太小,否則起不到篩選的作用。本文采用的是數(shù)組sblocknum前9個最大值和Navg的平均值,這個N標定的選取很好地考慮到了這兩點,其中前9個最大值也是根據(jù)大量實驗最終確定的。
    在確定了閾值N′min和標定值N標定的基礎(chǔ)上,本文提出的新聞主體文本塊集合mainblockset的提取規(guī)則如下:
    ①設(shè)文本塊子集subblockset={bi|bi∈blockset,i<blockset.length},并且subblockset中的文本塊是從blockset中按順序提取的。只有當subblockset滿足下列兩個條件時:subblockset中所有bi的字符數(shù)都不小于N′min;subblockset中至少有一個bi的字符數(shù)大于等于N標定,subblockset才是mainblockset中的一個子集,即subblocksetmainblockset。
    ②設(shè)subblockset1和 subblockset2是相繼提取出的文本塊子集(如圖2所示),則它們之間夾的不符合①中第二個條件的文本塊集合(如圖2中的BSet)也認為是mainblockset的子集。

    在圖2中,很明顯文本塊子集subblockset1和subblockset2是符合條件①的集合,所以subblockset1mainblockset,subblockset2mainblockset成立。subblockset1和subblockset2之間夾的文本塊集合BSet是不符合①的第二個條件的,但是很顯然BSet字符數(shù)并不少,僅僅是沒有一個文本塊的字符數(shù)達到N標定而已。它極有可能是新聞正文中的一個小段落,把它舍棄將破壞正文的完整性。所以把它留下并且認為它也是正文的一部分,即BSetmainblockset。實驗證明,這樣做是非常合理的。
1.2.3 新聞標題和報道時間的提取
    新聞標題和報道時間是新聞不可或缺的新聞要素,因此本文將其列為提取內(nèi)容之一。不論是新聞標題還是報道時間,其在新聞網(wǎng)頁中出現(xiàn)的位置一般都是固定的,比如標題可能出現(xiàn)在<title>處,也可能出現(xiàn)在緊貼正文的前面,而報道時間大多是在標題和正文之間,也有一些是在正文的結(jié)尾處。
    正是因為新聞標題和報道時間的位置特殊,本文沒有一開始就提取它們,否則提取的標題和時間很可能是正文內(nèi)部的一些小標題和非報道時間。上一小節(jié)抽取出了新聞的主體,實際上也就知道了新聞主體文本的開始塊和結(jié)尾塊的位置。設(shè)開始塊為blocki,結(jié)束塊為blockj(如圖2 所示,其中i、j分別為開始和結(jié)束塊在blockset中的位置)。從塊blocki-2~blocki+2中抽取出標簽<h1>~<h6>所夾的部分,取等級最高的為標題。如果這幾個塊中沒有這個標簽,就抽取<titile>所夾的部分,這時抽取出的標題需要用停用詞表做進一步的過濾。
    一般來講報道時間格式是比較固定的,常見的格式如:2010-12-15,2010年12月15日, 2010/12/15,二零一零年十二月十五日等。因此在找到報道時間可能存在的文本塊集合后,利用正則表達式匹配的方式找到它。如在本文中把塊blocki-2~blocki+2和blockj-2~blockj+2作為候選文本塊集,用一個正則表達式“\w{4}[-,.,/,年]\w{1,2}[-,.,/,月]\w{1,2}日?”(不包括引號)來匹配,就可以找到報道時間。
2 實驗研究
2.1 實驗準備

    檢測算法性能的機器環(huán)境:CPU是Intel(R) Celeron(R) D CPU 3.2 GHz;內(nèi)存為DDR2 667 2.00 G;操作系統(tǒng)是Windows XP Professional SP3。開發(fā)環(huán)境選用C#2010集成開發(fā)環(huán)境。為了使得到的結(jié)果具有普遍性,本文設(shè)計了一個網(wǎng)頁采集器NewsSpider,讓它從知名的新聞網(wǎng)站(如網(wǎng)易新聞、新浪新聞、騰訊新聞、新加坡聯(lián)合早報等)中下載了2 298個網(wǎng)頁,以此作為實驗語料集。實驗主要測試新聞網(wǎng)頁有效信息提取的準確率和處理速度。新聞標題和報道時間的檢驗比較簡單,而對于新聞正文,只有提取出的正文完全覆蓋真正的正文,而且未濾除的噪聲占正文的比例不大于5%的時候才算合格,如果這個比例小于2%就為優(yōu)秀。這里采用準確率來表示算法的準確性:
    
2.2 實驗結(jié)果
    將本文方法與參考文獻[7]所提出的算法進行了比較,其結(jié)果如表2所示(方法一是參考文獻[7]提出的方法,方法二是本文的方法):

    可見,不論是本文方法還是參考文獻[7]的方法都取得了不錯的效果。本文方法在優(yōu)秀率和準確率上更勝一籌,主要有兩個原因:一是本文在N標定的選取上采用數(shù)組sblocknum前9個最大值和Navg的平均值,這使N標定的取值考慮到更多的其他文本塊子集的最大值,防止一些字數(shù)不是很多的文本塊子集的遺漏;另外本文考慮到了不符合規(guī)則①的第二個條件,但是又極有可能是正文的文本塊集合(如圖2中的BSet),這樣就使正文文本塊之間字數(shù)比較少的文本塊子集也被提取出來。
    方法一處理網(wǎng)頁的平均速度達到了51個/s,本文方法的平均處理速度是47個/s。這主要是因為本文方法在計算量上比方法一要稍大一些,但是由于本文提取準確率要高一些,以較小的速度損失換來較高的準確率還是值得的。另外本文方法的速度比基于DOM的方法還是快很多的,在準確率和速度上都達到了比較好的效果。
    結(jié)果中不合格的網(wǎng)頁大多是總的正文文本很少的網(wǎng)頁,這些網(wǎng)頁的正文往往由幾句話構(gòu)成,與其周圍的噪聲相比特征不十分明顯,這極大地影響了提取的準確度。這樣的網(wǎng)頁占不合格網(wǎng)頁的比例達到70%左右。另外30%的不合格網(wǎng)頁是一些主體文本邊界不明顯的新聞網(wǎng)頁,由于正文開頭文本塊和結(jié)尾文本塊的提取比較困難,有時遺漏這些文本塊,有時又增加一些噪聲塊。對于以上兩種處理效果不好的網(wǎng)頁,還需要研究更為有效的技術(shù)來處理。
    本文在借鑒現(xiàn)有研究的基礎(chǔ)上針對新聞網(wǎng)頁提出了一種集網(wǎng)頁過濾和基本信息提取于一體的過濾方法。該方法利用了新聞網(wǎng)頁基本文本塊的統(tǒng)計規(guī)律,提高了新聞正文的提取精度,獲得了比較高的處理速度,同時提取出了對后續(xù)處理很有價值的新聞標題和報道時間。但是在處理一些字符數(shù)比較少的網(wǎng)頁時,效果較差,這說明算法還有待改進。同時Internet上的網(wǎng)頁種類繁多,如論壇網(wǎng)頁、博客網(wǎng)頁等,它們都蘊涵了大量有價值的信息。本文的算法還不適于處理這種多主題的網(wǎng)頁,所以研究如何快速準確地過濾這些網(wǎng)頁并提取出有價值的信息將是下一步研究的重點。
參考文獻
[1] Lin Shianhua,Ho Janming.Discovering informative content  blocks from Web documents[C].KDD 2002:588-593.
[2] 歐健文,董守斌,蔡斌. 模板化網(wǎng)頁主題信息的提取方法[J].清華大學學報:自然科學版,2004,32(S1):84-87.
[3] Yu Shipeng,Cai Deng,Wen Jirong,et al.Improving pseudo—relevance feedback in web information retrieval using web page segmentation[C].Proceedings of WWW2003,Budapest,Hungary,2003:11-18.
[4] GUPTA S,KAISER G E,NEISTADT D,et al. DOMbased content extractlon of HTML documents[A].Proceeding of the 12th International World Wide Web Conference[C].Budapest:ACM Press,2003:207-214.
[5] 王琦, 唐世渭, 楊冬青,等. 基于DOM的網(wǎng)頁主題信息自動抽取[J].計算機研究與發(fā)展, 2004, 41(10): 1786-1791.
[6] 徐超.基于DOM的網(wǎng)頁凈化方法研究[D]. 青島:中國石油大學(華東),2009.
[7] Zhou Baoyao, Xiong Yuhong,Liu Wei.Efficient web page main text extraction towards online news analysis[C]. 2009 IEEE International Conference on e-Business Engineering, 2009:37-41.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。