[转载]VIPS:基于视觉的Web页面分页算法
来源:互联网 发布:oa数据库结构 编辑:程序博客网 时间:2024/05/16 17:59
目前,随着互联网的高速发展,Web已经成为这个世界上最大的信息来源。Web 作为信息技术的载体已成为人们重要的工作、学习、生活、娱乐工具。Web的发展给人类生活带来了巨大的方便,人们可以跨越时间和空间
VIPS:基于视觉的Web页面分页算法
界限来共享大量信息。但是如何去获取这些Web信息为我们所用则是大家面临的共同问题。在最基本的层次上,整个Web网络就是由无数的Web页面而构成,因此如果获取了这些Web页面就相当于获取了Web信息内容。事实上,目前的很多Web信息获取技术都是基于这种理论。
但是把整个页面作为一个基本的信息获取单位并不是太合理,尽管用户通常会把一些相关的内容放在同一页面中,但是大多数情况下,一个页面中通常会包含不止一类的主题,比如在新浪的页面中,可能包含体育类信息,可能包含健康类信息,也可能包含广告,导航链接等信息。这些信息分布在整个页面的不同位置。因此,如果要更准确的获取Web信息,我们必须能够对给定的Web页面进行更进一步的语义提取。
Web页面的语义提取在很多方面都有应用。比如,在Web信息访问中,为了克服关键字搜索所带来的局限性,许多研究者开始使用数据库技术,构建包装器将Web数据进行结构化处理。在构建包装器的过程中,将Web文档分割为一定数目的数据块是首要的工作。目前的工作大多数停留在使用自适应的方法上。如果我们能够获取Web页面的语义内容结构信息,那么构建包装器的过程就非常的简单,当然语义信息也就很容易提取出来。
语义块的提取另外一个应用场合就是搜索引擎。对于搜索引擎而言,链接分析是一个极为重要的工作。目前,对于大部分的搜索引擎而言,链接分析算法的基本前提假设就是如果两个页面之间存在链接关系,那么这两个页面整体上肯定存在着一定的关系。但是在大部分情况下,从页面A到页面B的链接仅仅意味着页面A的某部分与页面B的某部分之间可能存在一定的关系。目前的很多算法比如PageRank以及HITS都是基于前面的假设。把链接关系定义在两个完整的页面之间与定义在两个页面的某部分之间相比,则更粗糙一些。因此对于搜索引擎而言,如果要更准确的获取链接的关系,把一个完整页面分割为多个语义块是一个必须的工作。目前已经有一些工作针对这方面进行展开。不过这些工作都是基于DOM树分析页面的结构。但是DOM树并不能完全反映页面的语义结构,因此这种做法还存在一定的缺陷。
Web页面的语义分块另外一个潜在的用途就是移动终端访问互联网。目前大部分的Web页面都是针对台式机而设计的,由于移动设备通常屏幕较小,计算能力有限,因此这些页面并不适合移动设备直接访问。目前通常通过两种手段来解决这种问题:或者通过服务器进行页面转换或者使用网页缩略图。前者首先将用户访问的页面进行分页和转换,然后将分页的结果提交给移动设备;后者则是将整个Web页面生成缩略页面,整个页面被分割为数目不等的区域,用户如果对特定区域感兴趣,则可以再次访问该区域的内容。通过这两个策略,基本可以完成移动终端访问互联网的任务,但是核心内容还是如何对页面进行语义分割。
如果对Web页面进行有效的分页,目前已经很多工作展开。[Chakrabarti etal.2002]致力于从HTML DOM树中提取出结构化信息。不过由于HTML语法的灵活性,目前大部分的网页都没有完全遵循W3C规范,这样可能会导致DOM树结构的错误。更重要的是,DOM树最早引入是为了在浏览器中进行布局显示而不是进行Web页面的语义结构描述。比如,即使DOM树中两个结点具有同一个父结点,那么这两个结点在语义上也不一定就是有联系得。反之,两个在语义上有关系的结点却可能分布在DOM树的不同之处。因此仅仅通过分析DOM树并不能完全获取Web页面的语义信息。
从人类的角度来看,当一个用户观察Web页面的时候,它总是会自然而然的把一个语义块作为一个单一对象来看待,而不会管Web页面的内部结构是如何描述的。通常情况下,在分辨语义块的时候,用户会使用一些视觉因素来进行帮助,比如背景颜色、字体颜色和大小、边框、逻辑块和逻辑块之间的间距等等。因此如果充分的使用Web页面的视觉提示,并结合DOM树进行页面语义分块,则可以弥补仅使用DOM树所带来的一些缺憾。
在论文中,我们提出了VIPS(Vision-based page segmentation)算法用以提取给定网页的语义结构。这种语义结构是层次性的结构,在该结构中,每一个结点代表一个语义块。每一个语义块都定义一个DOC值来描述该语义块内部内容的关联性。DOC的值越大,则表明语义块内部的内容,它们之间的联系越紧,反之越松散。VIPS算法充分利用了Web页面的布局特征:它首先从DOM树中提取出所有的合适的页面块,然后根据这些页面块检测出它们之间的所有的分割条,包括水平和垂直方向。最后基于这些分割条,Web页面的语义结构将被重新构建。对于每一个语义块又可以使用VIPS算法继续分割为更小的语义块。因此整个VIPS算法是自顶向下,非常高效的。
2.相关工作
忽略不介绍。
3.Web页面的基于视觉的内容结构描述
与[chen et al. 2001]类似,VIPS算法中首先也定义了"基本对象"的概念,通常DOM树上的叶子结点被定义为基本对象,因为这些结点已经不能再被继续分割了。在本论文中,我们首先引入了基于视觉的内容结构,它里面的每一个结点我们称之为"块",这些块或者是一个基本对象或者是一些基本对象的组合。有一点需要注意的是,基于视觉的内容结构中的块与DOM树中的结点没有绝对的对应关系。
与[Tang et al.1999]中文档的描述结构类似,VIPS算法中Web页面的结构定义如下。
对于每一个页面而言,我们可以将其看作一个三元组Ω=(Ο,Φ,δ),其中
Ο=(Ω1,Ω2,…ΩN),表示给定页面上的所有的语义块的集合,这些语义块之间没有重叠覆盖,而每一个语义块Ωi又可以被定义为前面所描述的三元组Ωi = (Οi,Φi,δi),如此迭代循环;
Φ=( ϕ1,ϕ2,…ϕT ),表示当前页面上的所有的分隔条的集合。事实上,一旦确定了一个页面上的两个语义块,那么这两个语义块之间的分隔条也就被确定了。当然,VIPS中的分隔条并不是真正存在的分隔条,而是虚拟。分隔条包括水平分隔条,也包括垂直分隔条。每一个分隔条都具有一定的宽度和高度。
δ=(ζ1,ζ=,…,ζM)则描述了Ω集合中两个语义块之间的关系,这种关系可以用下面的式子描述:δ =Ο×O→Φ∪{NULL}。其中的每个ζ都是一个形如(Ωi,Ωj)二元组,其表示块Ωi和Ωj之间存在一个分割条。
上图演示了Yahoo页面的基于视觉的Web页面内容结构。它同时给出了页面的布局结构和基于视觉的内容结构。在第一层,整个原有的页面被分割为四个大的可视对象VB1-VB4,同时在这四个对象之间检测出了三个分隔条ϕ1 -ϕ3(原来有五个,最上面的和最下面的被舍弃)。检测出的四个可视对象并不是这轮分割的最终的局部。最终得到的语义块必须根据检测出的四个可视对象和三个分隔条进一步构建而成,其中可能需要合并一些语义块,舍弃一些分隔条等等。
比如,对于VB2,从它的内部又可以检测出三个子对象和两个分隔条,如图1所示。
对于每一个Block,VIPS算法都定义一个DoC(Degree of Coherence)与之对应。该值的大小反映了当前语义块内部内容联系的紧密程度。如果。它具有下面两个重要的特性:
1)、DoC的值越大,则语义块内部的内容之间的联系紧密程度就越大,它们之间就关系就越连续,反之越小。
2)、在层次数上,语义块的子块的DoC的值肯定要比父块的值大。
在VIPS算法中,DoC的值位于1到10之间。不过这个范围是可以更改的。在对Web页面进行语义分割之前,我们首先设定一个预定义DoC值PDoC(Permitted Degree of Coherence),通过该值来限定分割的语义块的粗糙程度。当语义块的DoC值达到PDoC之后,迭代分割就停止。PDoC越小,则分割的语义块就越粗糙,反之,分割的语义块就越精细。比如在图1中,如果给出一个适当的PDoC的值,VB2_1块将变的不再允许分割。不同的应用程序可以设置不同的PDoC值来达到自己的要求。
基于视觉的页面分割最主要的目的就是对给定的页面进行语义分割,因此分割后生成的基于视觉的内容结构中的结点通常总是一定的语义单位,包含一定的语义。比如在图1(a)中,我们可以看到VB2_1_1表示Yahoo宠物商店的目录链接,而VB2_2_1和VB2_2_2则表明了两种不同的comics。
4.VIPS算法描述
这部分我们将详细介绍VIPS算法。整体来说,页面的基于视觉的内容结构是结合DOM树以及一些视觉提示信息而得到的。整个分页过程可以用图2描述。它具有三个步骤:页面块提取、分隔条提取以及语义块重构。这三个步骤联合一起作为一次语义块检测的完整步骤。Web页面首先被分割为几次比较大的语义块,同时这几个语义块所组成的层次结构将被记录下来。对于检测出来的每一个大的语义块分页过程又可以继续进行,直到语义块的DoC值达到预先设定的PdoC为止。
在每次迭代循环中,当前逻辑块的DOM树结构以及它的视觉信息都将被获取。然后,从DOM树的根结点开始,逻辑块检测过程将基于视觉信息开始从DOM树中开始检测页面块。每一个DOM结点(图3b中的结点1,2,3,4,5,6,7)都会被检查它能够构成一个单独的页面块。如果不能,比如图3b中的1,3,4结点,那么它的子结点将被执行同样的检查。对于每一个提取出来的页面块,比如图3b中的2,5,6,7结点,我们都会根据当前页面块的内部可视属性赋予一个DoC值。当本次迭代过程中所有的页面块都被检测出来之后,它们将被保存到页面块池中。基于这些页面块,分隔条检测过程将开始工作。这些页面块之间的所有的水平分隔条和垂直分隔条最终将被识别出来并且赋予一定的宽度和高度。基于这些分隔条,页面的布局层次将被重新构建--一些页面块将被合并,形成语义块。最终,本次迭代过程中的所有语义块都被检测出来。
迭代过程是否需要继续进行取决于本层次的语义块中是否存在DoC值小于PdoC的语义块。对于那些DoC>=PdoC的语义块,分隔过程将停止,否则分隔过程将继续。比如再下图中,语义块C的DoC值小于PdoC,那么该语义块将被作为新的子Web页面,继续执行分割算法,最终又被分割为两部分:C1和C2,如图4a和4b所示:
当所有的语义块被提取出来后,最终整个Web页面的基于视觉的内容结构也就构建完成。在上面的例子中,我们最终获取的内容层次结构如图5所示。在下面的部分我们将详细的描述语义块的检测、分隔条的检测以及内容结构重建过程。
4.1语义块提取
在这步骤中,我们的目标是提取出当前子页面中所包含的所有的可视语义块。通常情况下,DOM树中的每一个结点都可以表示一个可视语义块。不过,在HTML中,一些标签比如和
孩子结点,但是它们中只有三个是有效结点。而且第一个孩子结点的背景颜色与父亲结点的颜色不同。根据规则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的值。最终的内容结构构建完毕。
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
宇宙之眼
宇宙中心
宇宙射线
宇宙探秘
宇宙年龄
我为宇宙
宇宙夫妇
宇宙探险队
宇宙星系
宇宙的奇迹
宇宙纪录片
宇宙的中心
黑暗宇宙
宇宙的资料
模拟宇宙
全宇宙
多重宇宙
无限宇宙
宇宙启示录
已知的宇宙
神秘宇宙
宇宙探测器
创造宇宙
意识的宇宙
浩瀚宇宙
宇宙的年龄
真实宇宙
宇宙的照片
宇宙大预言
宇宙创世神
解码宇宙
宇宙的命运
的宇宙
揭秘宇宙
第二宇宙
了解宇宙
无尽宇宙
宇宙的构造
宇宙 英文
宇宙怎么画
宇宙的力量
|