基于视觉信息的网页分块算法(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>,那么该分隔条的权重就越高 三、 若是分隔条两侧的页面块的背景色是不相同的,那 么该分隔条的权重将相应增高 四、 对于水平分隔条而言,若是分隔条两侧的页面块的 字体属性,好比字体大小,字体重量是不一样的,那 么该分隔条的权重将增长。并且若是分隔条上侧的 页面块的体小于分隔条下侧的页面块的字体,那 么分隔条的权重将增长 五、对于水平分隔条而言,当分隔条两侧的页面块的结 构很是类似,好比文本,那么该分隔条的权重将递减