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