[转载]VIPS:基于视觉的Web页面分页算法
VIPS:基于视觉的Web页面分页算法
目前,随着互联网的高速发展,Web已经成为这个世界上最大的信息来源。Web 作为信息技术的载体已成为人们重要的工作、学习、生活、娱乐工具。Web的发展给人类生活带来了巨大的方便,人们可以跨越时间和空间
通常用来进行数据组织,因此不适合表示单独的可视语义块。对于这种结点,对他们的提取将被它们的孩子结点替代。而且由于HTML语法的灵活性,很多的Web页面并没有严格遵循W3C的HTML规范,这导致DOM树并不能总是能反映不同的DOM结点之间的关系。
通常用来从视觉上分隔不同主题的内容。因此如果DOM结点中包含这些标签,那么我们倾向于认为该结点允许被继续分割。
和
规则 1
|
如果当前结点不是文本结点,同时它又没有任何有效的孩子结点,那么该结点将不被分割,并且从结点集合中删除。
|
规则 2
|
如果当前结点只有一个有效的孩子结点,同时该孩子结点不是文本结点,那么当前结点将被分割。
|
规则 3
|
如果当前的DOM结点是整个子DOM树的根结点(与页面块对应),同时只有一个子DOM树与当前的页面块关联,那么分割该结点。
|
规则 4
|
如果当前结点的所有的孩子结点都是文本结点或者是虚拟文本结点,那么不分割该节点。如果当前所有孩子结点的字体大小和字体重量都是相同的,那么该页面块的DoC设置为10,否则设置为9。
|
规则 5
|
如果当前DOM结点的孩子结点中有一个line-break结点,那么该结点将被继续分割
|
规则 6
|
如果当前结点的孩子结点中存在
结点,那么该结点将被继续分割 |
规则 7
|
如果当前结点的背景色与它的所有子结点中的某个的背景色不相同,那么该结点将被分割,同时具有不同颜色的子结点在本次迭代中不分割,分割在下轮迭代中进行。与此同时,孩子结点的DoC的值根据标签和尺寸的不同设置为6-8。
|
规则 8
|
如果结点至少具有一个文本或者虚拟文本子结点,同时结点的相对大小小于门槛大小,那么这个结点不再分割,同时根据标签的不同,DoC的值设置为5-8。
|
规则 9
|
如果当前结点的所有子结点中最大的尺寸也小于门槛大小,那么该结点将不再分割,同时DoC值根据HTML标签和结点大小设置。
|
规则 10
|
如果前一个兄弟结点没有被分割,那么该结点也不会被继续分割
|
规则 11
|
分割该结点
|
规则12
|
不要分割该结点,同时基于当前结点的标签和大小设置DoC值
|
。根据规则2,我们进入
标签。该
结点具有五个
孩子结点,但是它们中只有三个是有效结点。而且第一个孩子结点的背景颜色与父亲结点的颜色不同。根据规则8,该 |
结点将被分割,而第一个
结点在本次迭代中部进行分割。第一个 |
结点被保存到页面块池中。第二个和第四个
结点为无效结点,因此它们将被删除。对于第三个和第五个
结点,根据推理规则11,在本次迭代中不再分割,因此最终我们得到三个页面块VB2_1,VB2_2和VB2_3。
4.2分隔条检测
当所有的页面块被提取出来之后,它们都被保存在页面块池中以便进行分隔条检测。在VIPS算法中,分隔条是Web页面中的垂直的或者水平的行。从视觉的角度而言,separators are good indicators for discriminating different semantics within the page。
在VIPS中,一个可视的分隔条可以用二维向量(Ps,Pe)描述,其中,Ps是分隔条的起始坐标,而Pe则是分隔条的终止坐标。坐标的单位全部为像素pixel。根据Ps和Pe,很容易计算当前分隔条的宽度和高度。
4.2.1 分隔条检测
分隔条的检测算法如下描述:
1)、初始化分隔条列表。最早的分隔条列表中仅仅存在一个分隔条,它的起始和终止坐标为(Pbe,Pee),分别对应整个Web页面的起始坐标和终止坐标。
2)、对于页面块池中的每一个页面块,它与分隔条的关系包括下面三种:
■ 页面块被包含在分隔条中,此时,该分隔条将从页面块的边缘裂变为多个分隔条。
■ 页面块与分隔条发生部分重合,那么根据页面块的边界重新调整分隔条的参数
■ 页面块跨越分隔条,那么此时移除该分隔条。
3)、移除页面边缘的四个分隔条
图8演示了分隔条的检测过程。为了简单期间,我们仅仅演示水平分隔条的检测过程。开始的时候我们之后一个大的分隔条,它的起始和终止位置就是整个页面的起始和终止位置。当我们将第一个页面块放入到池中的时候,由于该页面块被包含在分隔条内部,此时原有的分隔条将裂变为S1和S2。同理当第二个和第三个页面块放入到池中的时候,四个分隔条S1,S2,S3和S4被检测出来。
当第四个页面块放入到池中的时候,它跨越了S3分隔条,同时与S2分隔条有部分重合,此时S3分隔条将被删除,同时S2将被调整,从图中可以看出,调整后,S3明显的变细了。
4.2.2 设置分隔条的权重
分隔条通常用于区别不同语义的页面块,因此基于给定分隔条两边的语义块的在视觉上的差异,我们可以设置分隔条的权重。如果分隔条的权重越重,该分隔条最终成为分隔条的可能性就越大。
下面的规则可以用来设置分隔条的权重:
1)、分隔条两边的页面块的距离越远,该分隔条的权重就越高。
2)、如果某个分隔条是通过检测HTML标签获取的,比如
,那么该分隔条的权重就越高。
3)、如果分隔条两侧的页面块的背景色是不相同的,那么该分隔条的权重将相应增高。
4)、对于水平分隔条而言,如果分隔条两侧的页面块的字体属性,比如字体大小,字体重量是不同的,那么该分隔条的权重将增加。而且如果分隔条上侧的页面块的字体小于分隔条下侧的页面块的字体,那么分隔条的权重将增加。
5)、对于水平分隔条而言,当分隔条两侧的页面块的结构非常相似,比如文本,那么该分隔条的权重将递减。
考虑图7中的第三个
|
。与该结点对应的子页面如图9(b)所示,同时它的DOM树结构如图9(a)所示。我们可以看到根据我们的定义,该DOM树中的很多结点都是无效的,它们无法在浏览器中显示出来,在页面块的提取过程忠,这些结点将被忽略。当这些页面块提取出来之后,六个页面块将保存到池中,同时五个水平分隔条也被检测出来。同时,基于上面的五个分隔条规则,这些分隔条的权重将被设置。在本例中,页面块2和3之间的分割条要比页面块1和页面块2之间的分割条权重高,这是因为字体不同的原因。同样的原因,4和5之间的分隔条权重也高一些。最终的分隔条以及它们的权重如图9(c)所示。
4.2.3 内容结构构建
当分隔条被检测出来,同时权重设置完毕后,相应的内容重建过程就可以开始了。构建过程从最小权重的分隔条开始,该分隔条两侧的页面块将合并在一起组成一个新的页面块。该合并过程不停的进行迭代,直到遇到权重最高的分隔条为止。对于每一个新的语义块,相应的DoC也被相应设置。
当页面块最终合并成为语义块之后,本轮的迭代也就结束了。对于这些语义块,每一个语义块的DoC都会与PdoC进行对比,如果DoC的值小于PdoC,那么新的迭代过程将重新开始:页面块检测,分隔条检测以及内容结构重构。当所有的语义块的DoC的值都不大于PdoC,迭代过程将停止。同时针对整个Web页面的内容结构将构建出来。
以图9为例,在第一轮迭代中,第一,三以及五个分隔条将被选择出来,同时页面块1和2被合并为新的语义块VB2_2_2_1。同样的合并发生在页面块3和4上,它们被合并为新的语义块VB2_2_2_2,页面块5和6最终合并为VB2_2_2_3。新的语义块VB2_2_2_1,VB2_2_2_2以及VB2_2_2_3是语义块VB2_2_2的子结点。对于每一个页面结点,比如VB2_2_2_2_1_1,VB2_2_2_1_1以及VB2_2_2_2_1它们的DoC的值将被检查,以便确定是否满足PdoC的值。最终的内容结构构建完毕。
|
[转载]VIPS:基于视觉的Web页面分页算法相关推荐
- VIPS:基于视觉的Web页面分页算法(转载)
VIPS:基于视觉的Web页面分页算法 1.问题的提出 目 前,随着互联网的高速发展,Web已经成为这个世界上最大的信息来源.Web 作为信息技术的载体已成为人们重要的工作.学习.生活.娱乐工具.We ...
- VIPS:基于视觉的Web页面分页算法
本文转自:http://blog.csdn.net/tingya/article/details/601836 1.问题的提出 目前,随着互联网的高速发展,Web已经成为这个世界上最大的信息来源 ...
- java vips 算法_VIPS:基于视觉的Web页面分页算法[转]
VIPS:基于视觉的Web页面分页算法 1.问题的提出 目前,随着互联网的高速发展,Web已经成为这个世界上最大的信息来源.Web 作为信息技术的载体已成为人们重要的工作.学习.生活.娱乐工具.Web ...
- 基于视觉的Web页面分页算法VIPS的实现源代码下载
基于视觉的Web页面分页算法VIPS的实现源代码下载 - tingya的专栏 - 博客频道 - CSDN.NET 基于视觉的Web页面分页算法VIPS的实现源代码下载 分类: 技术杂烩 2006-04 ...
- VIPS:基于视觉的页面分割算法[微软下一代搜索引擎核心分页算法]
VIPS:基于视觉的页面分割算法[微软下一代搜索引擎核心分页算法] VIPS:基于视觉的页面分割算法[微软下一代搜索引擎核心分页算法] - tingya的专栏 - 博客频道 - CSDN.NET VI ...
- java web毕业答辩_基于JAVA的WEB页面设计毕业答辩.ppt
基于JAVA的WEB页面设计 网站管理模块设计 网站页面设计 网站导航设计 网站交互设计 网站学习资源设计与后台设计 研究内容 管理模块 登录模块 权限管理模块 账户管理模块 系统登录模块设计 系统权 ...
- 转载:基于MATLAB的几种图像分割算法
基于MATLAB的几种图像分割算法 转载自:https://blog.csdn.net/bentleydelll/article/details/82456150 最大类间方差法 基本思路是根据直方图 ...
- Web页面分页的几种方式
JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询) 转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6134851.html 在开发过程中,经常做 ...
- js设置html打印不分页,web 页面分页打印的实现
1.首先引入一个WebBrowser在需要打印的页面,可以直接添加: 到页面,或者使用JavaScript在需要的时候临时添加也可以: document.body.insertAdjacentHTML ...
最新文章
- 【spring】具名参数
- 看一家公司发展得如何就看这家公司的财务部门
- 想学好Java开发,你要做到这三点
- 机器学习(K-means聚类原理以及用法)
- BSS段 data段 text段 堆heap 和 栈stack
- 基于java语言轻量级实时风控引擎
- python 字符串替换换行,Python fstring:替换换行符/lineb
- 女性寒性体质注意事项
- 数 AI 人物还看今朝!CCAI 2017 人工智能青年论坛即将启航
- 权限 shareuser certificat Runtime.exec
- delphi7 调用XE编译的DLL遇到的坑
- 新手SEO优化原创与伪原创
- android studio引入lib,Android studio项目引入另外一个项目做为Lib
- promise的实例方法、静态方法
- 牛客-判断一个链表是否为回文结构
- teradata是MySQL吗_Teradata 数据库介绍
- 免费银行卡验证API接口
- chrome使用脚本修改组策略_允许新版本 Chrome 安装第三方网站的脚本以及扩展的方法...
- SpringBoot 1.X 优雅停机 ( shutdown gracefully )
- java随机数代码解析,实例解析常用的java随机数生成办法
热门文章
- 嵌入式驱动那年的笔试面试-有干货
- 大力金钢机器人_大力金刚机器人(威海)有限公司
- AAAI 2023:清华SIGS信息学部19篇论文入选,含多模态、目标检测、语义分割等方向...
- using the Connector/J connection property 'autoReconnect=true' to avoid this problem
- 计算机神书『编码:隐匿在计算机软硬件背后的语言』
- Python全栈(十)Django框架之9.聚合函数和表达式
- 关于QQ使用的一些代码
- 【加强锻炼篇】如何进行科学有效的健身锻炼
- 微服务门神-Zuul
- 钻石DIAMOND一词来源于古法文DIAMAUND钻石