VIPS: a Vision-based Page Segmentation Algorithm.pdf下載
這篇論文的主要思想:
從人類的角度來看,當一個使用者觀察web頁面的時候,它總是會自然而然的把一個語義塊作為一個單一對象來看待,而不會管web頁面的內部結構是如何描述的。因此一些視覺因素,比如背景顏色、字型顏色和大小、邊框、邏輯塊和邏輯塊之間的間距等等可用來分辨語義塊,充分的利用web頁面的視覺提示,並結合DOM樹進行頁面語義分塊,可以達到更加理想的效果。VIPS演算法的首先從DOM樹中提取出所有的合適的頁面塊,然後根據這些頁面塊檢測出它們之間的所有的分割條,包括水平和垂直方向。最後基於這些分割條,Web頁面的語義結構將被重新構建。對於每一個語義塊又可以使用VIPS演算法繼續分割為更小的語義塊。
vips演算法流程圖
其中,節點分割依據有:
1、DOM結點本身的屬性。比如當前DOM結點的標籤,結點的背景色,當前結點所代表的頁面塊的大小,形狀。
2、當前DOM結點的孩子結點。比如孩子結點的標籤,孩子結點所代表的地區的背景色,前景色彩,地區的大小以及不同類型的孩子的數目等等。
節點的分割原則如下:
1、標籤提示
一些標籤如<HR>通常用來從視覺上分隔不同主題的內容, 因此如果DOM結點中包含這些標籤,該結點允許被繼續分割;
如果inline結點的孩子結點存在line-break結點,那麼該結點 將被傾向於被分割;
2、色彩提示
如果當前結點的孩子結點中有一個結點的背景色與它的背 景色不同,分割該DOM結點。同時,具有不同背景色的節 點在本次迴圈中不再被分割。分割由下一次迭代完成
3、文本提示
如果當前結點的大部分孩子結點都是文本結點或者是虛擬 文本結點,不再繼續分割該結點
4、尺寸提示
對不同的結點類型預定義一個門檻尺寸(結點的大小與整個 頁面大小的比較),如果結點的相對尺寸小於門檻大小,那 麼分割就停止
分割條檢測步驟如下:
1、初始化分隔條列表。最早的分隔條列表中僅僅存在一個分隔條,起始和終止座標為(Pbe,Pee),分別對應整個Web頁面的起始座標和終止座標
2、頁面塊被包含在分隔條中,此時,該分隔條將從頁面塊的邊緣裂變為多個分隔條
3、頁面塊與分隔條發生部分重合,那麼根據頁面塊的邊界重新調整分隔條的參數
4、頁面塊跨越分隔條,那麼此時移除該分隔條
5、移除頁面邊緣的分隔條
分割條檢測步驟圖
語義塊重構過程:
從最小權重的分隔條開始,該分隔條兩側的頁面塊將合并在一起組成一個新的頁面塊。該合并過程不停的進行迭代,直到遇到權重最高的分隔條為止。對於每一個新的語義塊,相應的DOC也被相應設定,參見:
另外,分隔條用於區別不同語義的頁面塊,因此基於給定分隔條兩邊的語義塊的在視覺上的差異,設定分隔條的權重。如果分隔條的權重越重,該分隔條兩側的頁面屬於不同語義塊的可能性就越大。分割塊權重的設定有以下幾個原則:
1、分隔條兩邊的頁面塊的距離越遠,該分隔條的權重 就越高
2、如果某個分隔條是通過檢測HTML標籤擷取的,比 如<HR>,那麼該分隔條的權重就越高
3、 如果分隔條兩側的頁面塊的背景色是不相同的,那 麼該分隔條的權重將相應增高
4、 對於水平分隔條而言,如果分隔條兩側的頁面塊的 字型屬性,比如字型大小,字型重量是不同的,那 麼該分隔條的權重將增加。而且如果分隔條上側的 頁面塊的體小於分隔條下側的頁面塊的字型,那 麼分隔條的權重將增加
5、對於水平分隔條而言,當分隔條兩側的頁面塊的結 構非常相似,比如文本,那麼該分隔條的權重將遞減