陳壯, 葛斌
安徽理工大學計算機科學與工程學院, 安徽 淮南 232001
信息塊是由網頁的主要內容塊組成.非信息塊諸如導航菜單、底部的聯系人信息以及廣告等,都是噪聲信息.要想提高信息提取的性能,必須要去除這些噪聲信息,并快速準確地對網頁進行分割,從而獲得組成塊并對其進行準確的提取.
在網頁信息提取方面,文獻[1,2]使用基于統計的網頁信息提取方法,主要根據網頁中信息的分布情況來決定提取的內容.缺點是當網頁中字符較少時,會導致提取錯誤的信息.文獻[3,4]使用基于網頁分割的信息提取方法,利用網頁中的一些特征對網頁進行分割,再從分割塊中選取包含網頁信息的塊并提取網頁信息.缺點是信息塊內容字符數較少,而噪聲信息較多時,提取的塊可能出錯.文獻[5]提出了一種使用自然語言處理技術提取信息的方法.缺點是未充分利用以文本格式編寫的注釋.文獻[6]通過使用字符串方法和其他信息快速提取內容,而無需創建DOM樹.文獻[7]實現了對復雜網頁中數據記錄的提取.缺點是對于一些復雜的網頁,該方法去除噪聲信息的效果不是太理想.文獻[8]可以從多種類型的網頁中抽取正文信息.缺點是對于細粒度結構化Web信息抽取的精度效果仍達不到最理想的程度.文獻[9]通過三個啟發式規則的加權平均獲得組成塊分數,得分最高的就是信息塊.缺點是只使用緊密度中心性顯得太片面,不足以表示塊的中心性.
1.1.1 視覺特征去噪
通過查看網頁發現,大量的網頁都是由Head、Foot、Left、Right、Center五部分[10]或者其中某幾部分組成,其中大多數的網頁均含有Head、Foot區域.
所提出的方法,先將網頁轉化成DOM結構,并得到頁面的大??;根據頁面大小獲得上下左右四部分閾值,記為W1,W2,W3,W4;再通過對網頁內元素的絕對坐標以及實際大小與獲得的閾值進行比較,通過此方法劃分區域.若任意元素E,所占區域上的左上角原點絕對坐標為(a,b),元素所占區域大小為(width,height).如果E.b + E.height <=W1,則E屬于Head區域;如果E.b>=W2,則E屬于Foot區域;如果E.a + E.width <=W3,則E屬于Left區域;如果E.a >= W4,則E屬于Right區域,所有不屬于Head,Foot,Left,Right的區域作為結果返回.設計的算法如下所示:
算法1 Visual Denoising
輸入:頁面大小閾值W1,W2,W3,W4,元素E,元素絕對坐標(a,b);
輸出:網頁中心區域t.
Begin
1 if b+height<=W1then //(width,height)為元素所占區域大小
2E∈Head; //Head、Foot、Left、Right為網頁區域
3 else ifb>=W2then
4E∈Foot;
5 else ifa+E.width<=W3then
6E∈Left;
7 else ifa>=W4then
8E∈Right;
9 else
10E∈t;//元素E屬于Center部分
11 return t; End
1.1.2 正則表達式去噪
在經過視覺特征去噪后,仍可能包含未去除干凈的噪聲信息,需要通過正則表達式過濾噪聲標簽的方式再次去除.噪聲信息如表1所示.
表1 噪聲信息
本文以一個簡單的方式分割網頁,首先將網頁沿垂直方向拆分成列,對拆分后的每部分進行判斷,是否可以進行沿垂直方向拆分為列或者沿水平方向拆分為行;然后再對于拆分后的每行或者每列,再繼續進行沿垂直方向拆分或者沿水平方向拆分.在此基礎上,重復進行上述操作,如圖1所示.
圖1 網頁拆分圖
本文將網頁轉換成DOM樹結構,在此基礎上,自下向上遍歷中生成一個新的網頁視覺樹.在遍歷的過程中,為了提高網頁信息處理的效率,進行兩次去除噪聲操作:利用視覺特征和正則表達式去除那些噪聲節點,對通常不含正文文本內容的標簽做剪枝處理,得到一個簡潔的DOM樹.并為新的視覺樹中每個提取的節點分配一個判斷符:即為每個節點標記兩個變量,代表其子樹中是否存在沿垂直方向拆分.
構建網頁視覺樹之后,需要識別組成塊.本文從視覺樹對應的根節點展開新的可視化樹.首先需要判斷是否進行了沿垂直方向拆分,如果當前節點的子節點有子節點,即進行了沿垂直方向拆分,則增加一個粒度,繼續擴展當前節點的子節點;如果當前子樹只有沿水平方向拆分,則不進行擴展.如此重復進行上述操作,當整個樹不再進行擴展時,所有的葉節點都是預期的組成塊.通過上述過程,就可以獲得網頁的所有組成塊.接下來就是從這些組成塊當中提取出信息塊.信息塊通常是最靠近網頁中心的塊,通過上述過程后標記數最多的塊是所有塊中面積最大的塊.本文在視覺去噪時已經輸出的就是Center部分,只需要使用兩個啟發式規則:信息塊是通過上述網頁分割過程后標記數最多的塊,是所有組成塊中面積最大的塊.通過加權平均來獲得信息塊的分數,就能進行信息的提取,分數最大的組成塊即信息塊.
如圖2所示,圖中①代表視覺去噪結果,②代表組成塊,③代表信息塊.計算公式如下:
圖2 信息塊提取圖
Score(bi)=α×Areai+(1-α)|bi|
(1)
式中:|bi|為塊bi中標記數目,Area為塊bi的面積,得分最高的塊是信息塊.
在本節中,對本文方法進行了評估,將其與文獻[1]中PPL、PPR、CEPR算法和文獻[9]算法進行了比較.
2.1.1 數據集
利用三個數據集來驗證本文提出方法的性能.在表2中顯示數據集的詳細信息.
表2 三個數據集統計
2.1.2 評估指標
使用準確率,召回率和F1量度[11]來評估本文信息提取方法的性能,計算公式如下所示:
(2)
(3)
(4)
其中S1表示抽取結果的集合,而S2表示手工標記結果的集合.
2.2.1 實驗結果
本文實驗結果如下表3所示
表3 本文實驗結果(%)
觀察表4到表6發現,在人民網數據集、搜狐網數據集、新浪網數據集上,本文的方法都能取得較高的準確率,但召回率相對較低,這是因為人民網、搜狐網包含大量的導航或者評論內容,導致錯誤地將其當成正文信息并提取.相對于文獻[1]中PPL、PPR、CEPR算法和文獻[9]算法,本文方法在準確率上高于另外幾種算法,在召回率上,本文方法高于文獻[1]中的PPL、PPR、CEPR方法,但是在部分數據集上低于文獻[9]中算法.對于F1值,本文的方法也優于其他幾種網頁信息提取方法.
表4 準確率(P)對比結果(%)
表5 召回率(R)對比結果(%)
表6 F1值對比結果(%)
2.2.2 參數分析
參數α是用于平衡兩個啟發式規則之間的重要權值,若α值太高,則組成塊面積會占據更多的權值,同時可能會導致獲得錯誤的結果.通過一些先前的觀察,決定將α權值設置在0.4以內,實驗結果如圖3到圖5所示.
通過觀察圖3到圖5可以發現,當參數α大于或者小于0.2時,準確率、召回率、F1值都沒有達到最好的效果,因此本文方法實驗參數設置為0.2.
本研究提出了一種基于視覺特征去噪和DOM樹的網頁信息提取方法.與其他幾種方法相比,準確率有所提高.同時,本方法也適合許多網站,但是在個別網頁當中也會存在不準確的信息塊提取.比如正文文本較短,可能會導致提取錯誤;同時由于本算法主要依賴元素的位置信息,錯誤的位置將導致錯誤的劃分,它將進一步影響信息塊提取的準確性,這將是今后方法改進的方向.