ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

VIPS: a Vision-based Page Segmentation Algorithm——一种基于视觉的页面分割算法

VIPS: a Vision-based Page Segmentation Algorithm——一种基于视觉的页面分割算法

这篇论文提出了一种名为VIPS(Vision-based Page Segmentation,基于视觉的页面分割)的算法,旨在解决传统Web信息检索中将整个网页视为不可分割单元所导致的语义混杂问题。以下是其主要研究内容的全面总结:

一、研究背景与问题

  • 网页通常包含导航、广告、交互信息等多种与主题无关的内容,且往往涉及多个不相关的主题。

  • 传统方法依赖HTML DOM树进行页面分割,但DOM树是为浏览器呈现而设计的,不能准确反映语义结构;HTML语法灵活,许多网页不符合W3C规范,导致DOM树结构错误。

  • 用户在浏览网页时,会基于空间和视觉线索(如布局、颜色、字体、分隔线等)无意识地将页面划分为若干语义部分。因此,利用视觉线索自动分割网页具有可行性。

二、核心贡献:VIPS算法
VIPS算法是一种自顶向下、独立于标签树的页面分割方法,模拟人类基于视觉感知理解页面布局的过程。其核心思想是:结合DOM结构与视觉线索,将网页递归分割为层次化的语义块(block),并为每个块赋予一致性程度(Degree of Coherence, DoC)值,以衡量块内内容的一致性。

三、基于视觉的内容结构定义

  • 网页表示为三元组 Ω = (O, Φ, δ):O为不重叠的块集合;Φ为水平/垂直分隔符集合(每个分隔符有权重表示可见性);δ表示块之间的相邻关系。

  • 每个块可递归视为子网页,具有相似的子结构。

  • DoC值范围为1~10,值越大内容越一致;子节点DoC不小于父节点。

  • 通过预定义允许的一致性程度(PDoC)控制分割粒度,适应不同应用需求。

四、VIPS算法的三个核心步骤(每轮迭代)

  1. 视觉块提取(Visual Block Extraction):

    • 从当前子页面对应的DOM树根节点开始,判断每个DOM节点是否应被划分。

    • 基于标签线索(如<HR>)、颜色线索(背景色差异)、文本线索(子节点多为文本则不划分)、大小线索(相对尺寸阈值)等启发式规则(共13条规则,按优先级排列),决定节点是否形成独立块。

    • 提取的块放入池中,并赋予DoC值。

  2. 视觉分隔符检测(Visual Separator Detection):

    • 分隔符是视觉上不穿过任何块的水平或垂直线,用起止像素表示。

    • 通过初始化分隔符列表,逐一评估块与分隔符的关系(包含、交叉、覆盖),动态分割、更新或移除分隔符。

    • 基于相邻块之间的距离、是否与<HR>等标签重叠、背景色差异、字体属性差异等规则为分隔符设置权重。

  3. 内容结构构建(Content Structure Construction):

    • 从权重最低的分隔符开始,合并其两侧的块形成新块,迭代至最大权重分隔符。

    • 新块的DoC基于区域内分隔符的最大权重设置。

    • 检查每个叶节点是否满足粒度要求(DoC > PDoC),不满足则作为子页面递归执行上述三步。

五、实验验证

  1. 分割效果示例:通过IEEE页面和Yahoo! E-Cards页面等示例,展示VIPS能正确识别图像与周围文本的语义关系,而DOM树结构无法做到。

  2. 人工评估:从Yahoo!目录14个类别选取600个网页,5名志愿者评判,93%(2791/3000)的页面语义内容结构被正确检测(完美+满意)。失败原因包括视觉线索不足、浏览器位置信息错误、细线图像分隔等。

  3. 信息检索应用:在TREC Web Track数据集(WT10g)上,将VIPS用于伪相关反馈中的查询扩展。VIPS在使用前20个块时平均精度达20.98%,相比基线16.55%提升26.77%,优于全文档方法(19.10%)和基于DOM的朴素分割方法(19.67%)。表明基于视觉的语义分割能有效过滤噪声和不相关信息,提取高质量扩展词。

VIPS算法通过利用视觉布局信息,成功弥合了DOM结构与语义结构之间的差距,生成的层次化内容结构更符合人类感知,对Web信息检索、信息抽取、页面适配等应用具有重要价值。该算法自顶向下、高效且独立于物理实现,在HTML结构与视觉呈现差异较大时仍能良好工作。这里是自己的论文阅读记录,感兴趣的话可以参考一下,如果需要阅读原文的话可以看这里,如下所示:

摘要

本文提出了一种新的基于视觉表示的Web内容结构分析方法。许多Web应用,如信息检索、信息抽取和自动页面适配,都可以从这种结构中受益。本文提出了一种自动的自顶向下、独立于标签树的Web内容结构检测方法。它模拟了用户基于视觉感知理解Web布局结构的过程。与现有其他技术相比,我们的方法独立于底层文档表示(如HTML),即使在HTML结构与布局结构差异很大的情况下也能良好工作。实验显示了令人满意的结果。

1 引言

如今,Web已成为人们最大的信息源。Web上的大多数信息检索系统将网页视为最小且不可分割的单元,但整个网页可能并不适合表示单一语义。一个网页通常包含各种内容,如导航、装饰、交互和联系信息,这些内容与网页主题无关。此外,一个网页通常包含多个彼此不一定相关的主题。因此,检测网页的语义内容结构有可能提高Web信息检索的性能。

许多Web应用可以利用网页的语义内容结构。例如,在Web信息访问中,为克服浏览和关键词搜索的局限性,一些研究者一直尝试使用数据库技术并构建包装器来结构化Web数据[1-3, 18]。在构建包装器时,有必要将Web文档划分为不同的信息块[2, 17]。以往的工作使用特定方法来处理不同类型的网页。如果我们能获得网页的语义内容结构,包装器就可以更容易地构建,信息也可以更容易地抽取。此外,链接分析近年来受到了很多关注。传统上,页面中的不同链接被同等对待。链接分析的基本假设是,如果两个页面之间存在链接,则这两个整个页面之间存在某种关系。但在大多数情况下,从页面A到页面B的链接仅仅表明页面A的某个特定部分与页面B的某个特定部分之间可能存在某种关系。此外,大量噪声链接的存在会导致HITS算法中的主题漂移问题[7, 20]。近期关于主题蒸馏[11, 12]和聚焦爬取[13]的工作加强了我们的观察。然而,这些工作基于网页的DOM(文档对象模型)树,而正如我们在实验部分所展示的,DOM树没有足够的能力对网页进行语义分割。此外,在小型手持设备上高效浏览大型网页也需要对网页进行语义分割[19]。

近期许多工作[11, 13, 14, 17]试图从HTML DOM树中提取结构信息。然而,由于HTML语法的灵活性,许多网页不遵守W3C HTML规范,这可能导致DOM树结构出错。此外,DOM树最初是为浏览器中的呈现而引入的,而非用于描述网页的语义结构。例如,即使DOM树中的两个节点具有相同的父节点,这两个节点在语义上也不一定比与其他节点更相关。实验部分展示了两个例子。为了提供对网页内容语义结构的更好描述,引入了XML。然而,正如我们可以观察到的,大多数网页是用HTML而非XML编写的。

在人类感知的意义上,人们总是将网页视为不同的语义对象而非单一对象。一些研究表明,用户总是期望网页的某些功能部分(例如导航链接、广告栏)出现在该页面的特定位置[6]。实际上,当网页呈现给用户时,空间和视觉线索可以帮助用户无意识地将网页划分为若干语义部分。因此,利用空间和视觉线索自动分割网页是可能的。在本文中,我们使用"块"(block)来表示网页的语义部分。

在本文中,我们提出了VIPS(基于视觉的页面分割)算法来提取网页的语义结构。这种语义结构是一种层次结构,其中每个节点对应一个块。每个节点将被赋予一个值(一致性程度,Degree of Coherence),以指示基于视觉感知的块内容的一致性程度。VIPS算法充分利用了页面布局特征:它首先从HTML DOM树中提取所有合适的块,然后尝试在这些提取的块之间找到分隔符。这里,分隔符表示网页中视觉上不穿过任何块的水平或垂直线。最后,基于这些分隔符,构建网页的语义结构。VIPS算法采用自顶向下的方法,非常有效。

本文的其余部分组织如下。第2节概述相关工作。第3节定义基于视觉的网页内容结构。第4节介绍VIPS算法。第5节展示实验结果。最后,第6节给出结论。

2 相关工作

引言中提到的应用表明需要提取网页内容结构的技术。许多研究者考虑使用标签信息并基于标签类型划分页面。有用的标签包括<P>(段落)、<TABLE>(表格)、<UL>(列表)、<H1>~<H6>(标题)等。Diao[15]在学习型Web查询处理系统中将网页片段作为处理对象,处理这些主要类型的标签。Lin[21]仅将<TABLE>标签及其后代视为内容块,并使用基于熵的方法发现信息性内容。对于自适应内容分发,Kaasinen[19]和Buyukkokten[10]通过一些简单的标签如<P>、<TABLE>和<UL>分割网页,以便进一步转换或摘要。Wong[26]定义了页面分割的标签类型,并为网页的每个部分赋予标签以进行分类。

除了标签树之外,一些其他算法也利用内容或链接信息。Embley[17]和Buttler[9]使用一些启发式规则来发现页面内的记录边界,这有助于从网页中抽取数据。Chakrabarti[11][12]解决了细粒度主题蒸馏问题,通过分析链接结构以及页面内文本分布将枢纽页面分解为区域。最近,Bar-Yossef[5]提出了模板检测问题,并提出了一个仅基于链接信息的简单算法。此外,Rahman在[22]中对页面分解给出了一些评论,但没有展示技术细节。

Chen[14]提出了一种基于功能的网页对象模型(FOM),用于内容理解和适配。标签树中每个不可分割的元素称为基本对象,可以分组为复合对象。可以为每个对象定义功能类型,帮助构建页面的层次结构。然而,分组规则和功能难以准确定义,从而使整个树构建过程非常不灵活。

上述所有方法都未能考虑网页的视觉结构。在本文中,我们提出了一种新算法,称为VIPS(基于视觉的页面分割),用于对网页进行语义分割。在下一节中,我们首先描述我们定义的基于视觉的网页内容结构。

3 基于视觉的网页内容结构

与[14]类似,我们将基本对象定义为DOM树中不能再分解的叶节点。在本文中,我们提出基于视觉的内容结构,其中每个节点(称为块)是一个基本对象或一组基本对象。需要注意的是,基于视觉的内容结构中的节点不一定对应于DOM树中的节点。

与[25]中文档表示的描述类似,基于视觉的网页内容结构的基本模型描述如下。

一个网页Ω表示为三元组Ω = (O, Φ, δ)。O = {Ω¹, Ω², ..., Ω^N}是块的有限集合。所有这些块不重叠。每个块可以递归地视为一个子网页,具有从整个页面结构导出的子结构。Φ = {φ¹, φ², ..., φ^T}是分隔符的有限集合,包括水平分隔符和垂直分隔符。每个分隔符有一个权重表示其可见性,同一Φ中的所有分隔符具有相同的权重。δ是O中每两个块之间的关系,可以表示为:δ = O×O → Φ ∪ {NULL}。例如,假设Ω_i和Ω_j是O中的两个对象,δ(Ω_i, Ω_j) ≠ NULL表示Ω_i和Ω_j恰好被分隔符δ(Ω_i, Ω_j)分开,或者我们可以说这两个对象相邻,否则块Ω_i和Ω_j之间还有其他对象。

由于每个Ω_i是原始页面的子网页,它具有与Ω相似的内容结构。递归地,我们有Ω'_s = (O'_s, Φ'_s, δ'_s),O'_s = {Ω¹_st, Ω²_st, ..., Ω^{N_st}_st},Φ'_s = {φ¹_st, φ²_st, ..., φ^{T_st}_st}和δ'_s = O'_s×O'_s → Φ'_s ∪ {NULL},其中Ω^t_s是子网页层级s中的第t个对象,N_st和T_st分别是O'_s中对象的数量和Φ'_s中分隔符的数量。

图1展示了一个Yahoo! Auctions网页的基于视觉内容结构的示例。它说明了页面的布局结构和基于视觉的内容结构。在第一层,原始网页有四个对象或视觉块VB1~VB4和三个分隔符φ¹~φ³,如图1(d)所指定。然后我们可以进一步为每个子网页构建子内容结构。例如,VB2有三个子对象和两个分隔符。它可以进一步分析,如图1(e)所示。

对于每个视觉块,定义一致性程度(Degree of Coherence, DoC)来衡量其一致性程度。DoC具有以下性质:

  • DoC值越大,块内内容越一致;

  • 在层次树中,子节点的DoC不小于其父节点的DoC。

在我们的算法中,DoC值是1到10的整数,尽管也可以使用不同的范围(例如实数等)。

我们可以预定义允许的一致性程度(Permitted Degree of Coherence, PDoC),以实现不同应用的不同内容结构粒度。PDoC越小,内容结构越粗糙。例如,在图1(a)中,视觉块VB2_1在适当的PDoC下可能不会被进一步划分。不同的应用可以使用VIPS以适当的PDoC将网页分割为不同的粒度。

基于视觉的内容结构更有可能提供页面的语义划分。结构的每个节点都可能传达一定的语义。例如,在图1(a)中我们可以看到VB2_1_1表示Yahoo! Shopping auctions的类别链接,而VB2_2_1和VB2_2_2_2展示了两个不同漫画的详细信息。

4 VIPS算法

在本节中,我们介绍VIPS算法。基本上,页面的基于视觉的内容结构是通过结合DOM结构和视觉线索获得的。分割过程如图2所示。它包括三个步骤:块提取、分隔符检测和内容结构构建。这三个步骤作为一个整体被视为一轮。该算法是自顶向下的。网页首先被分割为几个大块,并记录该层次的层次结构。对于每个大块,递归地执行相同的分割过程,直到获得DoC值大于预定义PDoC的足够小的块。

对于每一轮,从Web浏览器获取与当前块(第一轮为页面)对应的带有视觉信息的DOM树,如图3所示。然后,从DOM树的根节点(例如图3b中的DOM节点1)开始,基于视觉线索启动块提取过程以从DOM树中提取块。检查每个DOM节点(如图3b中所示的节点1、2、3、4、5、6、7)以判断它是否形成单个块。如果不是(图3b中的节点1、3、4),则其子节点将以相同方式处理。我们将基于块的视觉属性为每个提取的块(图3b中的节点2、5、6、7)分配一个DoC值。当当前页面或子页面中当前轮次的所有块都被提取后,它们被放入一个池中。识别这些块之间的分隔符,并基于其相邻块的属性设置分隔符的权重。基于这些分隔符构建布局层次。在构建当前轮次的布局层次后,检查内容结构的每个叶节点是否满足粒度要求。如果不满足,该叶节点将被视为子页面并进一步类似地分割。例如,如果图3中的块C不满足要求,我们将该块视为子页面,它将被进一步分割为两部分C1和C2,如图4a、4b所示。

在所有块处理完毕后,输出网页最终的基于视觉的内容结构。在上述示例中,我们最终获得如图5所示的基于视觉的内容结构树。在以下三个小节中,我们将分别描述块提取、分隔符检测和内容结构构建。

4.1 视觉块提取

在这一步中,我们旨在找到当前子页面中包含的所有合适的视觉块。一般来说,DOM树中的每个节点都可以表示一个视觉块。然而,一些"巨大"的节点如<TABLE>和<P>仅用于组织目的,不适合表示单个视觉块。在这些情况下,当前节点应进一步划分并被其子节点替换。由于HTML语法的灵活性,许多网页不完全遵守W3C HTML规范,因此DOM树不能总是反映不同DOM节点的真实关系。

对于每个表示视觉块的提取节点,其DoC值根据其内部视觉差异设置。此过程迭代进行,直到找到所有合适的节点来表示当前子页面中的视觉块。

我们基于以下考虑判断一个DOM节点是否可以被划分:

  • DOM节点本身的属性。例如,该节点的HTML标签、该节点的背景颜色、该DOM节点对应块的大小和形状。

  • DOM节点子节点的属性。例如,子节点的HTML标签、子节点的背景颜色和子节点的大小。不同种类子节点的数量也是一个考虑因素。

基于WWW HTML规范4.01,我们将DOM节点分为两类:内联节点和换行节点:

内联节点:具有内联文本HTML标签的DOM节点,影响文本外观,可以应用于字符串而不引入换行。此类标签包括<B>、<BIG>、<EM>、<FONT>、<I>、<STRONG>、<U>等。

换行节点:具有除内联文本标签之外的其他标签的节点。

基于节点在浏览器上的外观和节点的子节点属性,我们给出一些定义:

有效节点:可以通过浏览器看到的节点。节点的宽度和高度不等于零。(例如图7中<TR>的第二个和第四个孩子不是有效节点)

文本节点:对应自由文本的DOM节点,没有HTML标签。

虚拟文本节点(递归定义):

  • 仅有文本节点孩子的内联节点是虚拟文本节点。

  • 仅有文本节点和虚拟文本节点孩子的内联节点是虚拟文本节点。

视觉块提取算法DivideDomtree如图6所示。算法中用于产生启发式规则的一些重要线索包括:

标签线索:

  1. 诸如<HR>之类的标签通常用于从视觉角度分隔不同主题。因此,如果DOM节点包含这些标签,我们倾向于划分它。

  2. 如果内联节点有一个换行节点孩子,我们划分这个内联节点。

颜色线索:如果DOM节点的背景颜色与其某个孩子的背景颜色不同,我们倾向于划分该DOM节点。同时,具有不同背景颜色的孩子节点在这一轮中不会被划分。

文本线索:如果DOM节点的大多数孩子是文本节点或虚拟文本节点,我们倾向于不划分它。

大小线索:我们为不同标签预定义相对大小阈值(节点大小与整个页面或子页面大小的比较)(阈值随具有不同HTML标签的DOM节点而变化)。如果节点的相对大小小于阈值,我们倾向于不划分该节点。

基于这些线索,我们可以产生启发式规则来判断节点是否应该被划分。如果节点不应被划分,则提取一个块,我们将为该块设置DoC值。我们按优先级在表1中列出启发式规则。

表1. 块提取阶段的启发式规则

规则描述
规则1如果DOM节点不是文本节点且没有有效孩子,则该节点不能被划分,将被切割。
规则2如果DOM节点只有一个有效孩子且该孩子不是文本节点,则划分该节点。
规则3如果DOM节点是子DOM树的根节点(对应于该块),且只有一个子DOM树对应于该块,则划分该节点。
规则4如果DOM节点的所有孩子节点都是文本节点或虚拟文本节点,则不划分该节点。如果所有这些孩子节点的字体大小和字体权重相同,将提取块的DoC设为10。否则,将此提取块的DoC设为9。
规则5如果DOM节点的某个孩子节点是换行节点,则划分该DOM节点。
规则6如果DOM节点的某个孩子节点具有HTML标签<HR>,则划分该DOM节点。
规则7如果所有孩子节点的大小之和大于该DOM节点的大小,则划分该节点。
规则8如果该节点的背景颜色与其某个孩子的背景颜色不同,则划分该节点,同时具有不同背景颜色的孩子节点在这一轮中不会被划分。基于孩子节点的HTML标签和孩子节点的大小设置孩子节点的DoC值(6-8)。
规则9如果该节点至少有一个文本节点孩子或至少有一个虚拟文本节点孩子,且该节点的相对大小小于阈值,则该节点不能被划分。基于节点的HTML标签设置DoC值(5-8)。
规则10如果节点中最大孩子的尺寸小于阈值(相对大小),则不划分该节点。基于节点的HTML标签和大小设置DoC。
规则11如果前一个兄弟节点未被划分,则不划分该节点。
规则12划分该节点。
规则13不划分该节点。基于节点的HTML标签和大小设置DoC值。

对于具有不同HTML标签的不同DOM节点,我们将应用不同的规则。我们在表2中列出它们。

表2. 不同DOM节点的不同规则

规则内联文本节点<table><tr><td>...
R1√√√√
R2√√√√
R3√√√√
R4√√
R5√√√√
R6√√√√
R7√√√
R8√√
R9√√√
R10√√
R11√
R12√√√
R13√√√

让我们考虑图1所示的一个例子。在块提取的第一轮中,VB1、VB2_1、VB2_2、VB2_3、VB3和VB4将被提取并放入池中。下面我们详细解释VB2_1、VB2_2和VB2_3是如何被提取的。图7(b)是一个表格,是整个网页的一部分。其DOM树结构显示在左侧。在块提取过程中,当遇到<TABLE>节点时,它只有一个有效孩子<TR>。我们根据规则2追踪进入<TR>节点。<TR>节点有五个<TD>孩子,只有三个是有效的。第一个孩子的背景颜色与其父节点的背景颜色不同。根据规则8,<TR>节点被分割,第一个<TD>节点在这一轮中不会被进一步划分,并作为块放入池中。<TR>节点的第二个和第四个孩子无效,将被切割。根据规则11,<TR>的第三个和第五个孩子在这一轮中不会被划分。最后,我们获得三个块:VB2_1、VB2_2和VB2_3。

4.2 视觉分隔符检测

在所有块被提取后,它们被放入池中进行视觉分隔符检测。分隔符是网页中视觉上不穿过池中任何块的水平或垂直线。从视觉角度来看,分隔符是区分页面内不同语义的良好指标。视觉分隔符由二元组(P_s, P_e)表示,其中P_s是起始像素,P_e是结束像素。分隔符的宽度由这两个值之差计算。

4.2.1 分隔符检测

视觉分隔符检测算法描述如下:

  1. 初始化分隔符列表。列表开始时只有一个分隔符(P_be, P_ee),其起始像素和结束像素对应于池的边界。

  2. 对于池中的每个块,评估块与每个分隔符的关系:
    a) 如果块包含在分隔符中,分割分隔符;
    b) 如果块与分隔符交叉,更新分隔符的参数;
    c) 如果块覆盖分隔符,移除分隔符。

  3. 移除位于池边界的四个分隔符(例如图8中的S1和S3)。

以图8(a)为例,其中黑色块表示页面中的视觉块。为简单起见,我们只展示检测水平分隔符的过程。首先我们只有一个分隔符即整个池。如图8(b)所示,当我们将第一个块放入池中时,它将分隔符分割为S1和S2。第二个和第三个块也是如此。当第四个块被放入池中时,它与分隔符S2交叉并覆盖分隔符S3,S2的参数被更新,S3被移除。在此过程结束时,位于池边界的两个分隔符S1和S3被移除。

4.2.2 为分隔符设置权重

分隔符用于区分具有不同语义的块,因此分隔符的权重可以基于其相邻块之间的视觉差异来分配。以下规则用于为每个分隔符设置权重:

  • 分隔符两侧块之间的距离越大,权重越高。

  • 如果视觉分隔符与某些特定HTML标签(例如<HR> HTML标签)重叠,其权重设置得更高。

  • 如果分隔符两侧块的背景颜色不同,权重将增加。

  • 对于水平分隔符,如果分隔符两侧的字体属性(如字体大小和字体权重)差异较大,权重将增加。此外,如果分隔符上方块的字体大小小于下方块的字体大小,权重将增加。

  • 对于水平分隔符,当分隔符两侧的块结构非常相似(例如都是文本)时,分隔符的权重将降低。

以图7中的第三个<TD>节点为例。对应于该节点的子页面如图9(b)所示,DOM树结构如图9(a)所示。我们可以看到DOM树中的许多节点在我们的定义中是无效的,在浏览器中看不到。它们在块提取过程中被忽略。在块提取步骤之后,六个块被放入池中,检测到五个水平分隔符。然后基于上述五条规则设置这些分隔符的权重。在此示例中,由于字体权重不同,块2和块3之间的分隔符将获得比块1和块2之间的分隔符更高的权重。出于同样的原因,块4和块5之间的分隔符也将获得高权重。最终的分隔符和权重如图9(c)所示,其中较粗的线表示较高的权重。

4.3 内容结构构建

当分隔符被检测到且分隔符权重被设置后,可以相应地构建内容结构。构建过程从权重最低的分隔符开始,这些分隔符旁边的块被合并形成新块。此合并过程迭代进行,直到遇到最大权重的分隔符。每个新块的DoC基于该块区域内分隔符的最大权重设置。

之后,检查每个叶节点是否满足粒度要求。对于每个不满足的节点,我们再次进入视觉块提取步骤,进一步构建该节点内的子内容结构。如果所有节点都满足要求,则迭代过程停止,获得整个页面的基于视觉的内容结构。DoC的常见要求是DoC > PDoC(如果预定义了PDoC)。

以图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的划分。每个叶节点,如VB2_2_2_1_1、VB2_2_2_1_2和VB2_2_2_2_1,将被检查是否满足粒度要求。经过多次迭代后,构建了页面最终的基于视觉的内容结构。

总之,所提出的VIPS算法利用视觉线索获得网页的基于视觉的内容结构,从而成功弥合了DOM结构与语义结构之间的差距。页面基于视觉分隔符进行划分,并结构化为层次结构。这种语义层次在一定程度上与人类感知一致。VIPS也非常高效。由于我们沿DOM结构向下追踪进行视觉块提取,而不分析每个基本DOM节点,该算法完全是自顶向下的。

5 实验

在本节中,我们将首先展示两个示例页面,比较我们的VIPS结果和DOM树结构。然后基于来自Yahoo的大量网页集合,对我们提出的VIPS算法进行性能评估。我们还进行实验以评估该算法如何用于增强Web上的信息检索。

5.1 网页分割的简单示例

在本小节中,展示几个网页分割的简单示例,以让人们直观了解我们的VIPS算法如何工作。同时,我们展示这些页面的DOM树。我们可以清楚地发现,仅基于简单的DOM树无法获得正确的块结构。此外,我们很难确定哪个节点传达语义含义以及在不同应用中应该在哪里停止。

图10展示了我们对一个示例页面的VIPS结果。左侧部分显示了用矩形标记不同区域(VIPS算法中的不同视觉块)的页面。用红色矩形标记的块是块VB1-2-2-1。右上部分显示了该页面的基于视觉的内容结构,而下方部分显示了所选视觉块的一些统计信息。

从右侧的VIPS树中,我们可以了解不同块的层次结构。在不同应用中,我们可以通过设置PDoC来控制分割粒度,如东北角所示。每个块的DoC值显示在右侧VIPS树中节点名称后面的括号中。

尽管从页面布局我们看到VB1-2-1、VB1-2-2-1和VB1-2-3-1是平行的,但在我们的启发式规则中,由于背景颜色不同,VB1-2-1和VB1-2-2-1之间的分隔符将获得比VB1-2-2-1和VB1-2-3-1之间的分隔符更高的权重。因此VB1-2-2-1和VB1-2-3-2将合并为VB1-2-2,与VB1-2-1平行。

为比较起见,我们在图11中展示了DOM树及其对应的块。我们可以看到用红线标记的区域是一个<TR>节点(有三个<TD>孩子)。从视觉角度来看,这些<TD>节点不应被分组在一起,但我们无法从DOM树结构中获得此信息,而在VIPS中,这个问题可以通过这些块的空间和视觉信息来解决。我们使用VIPS算法获得了正确的内容结构。

再举一个示例网页。我们在图12中展示DOM树结构,在图13中展示VIPS分割结果。

在DOM树结构中,图像和文本属于不同的<TR>节点。很难确定图像的确切描述文本。VIPS结果清楚地揭示了图像及其周围文本的语义关系。我们可以使用这些周围文本表示图像,并在Web图像搜索系统中使用这种文本表示。

从这些示例中我们可以看到,我们的VIPS算法能够成功识别网页中不同块之间的关系,而DOM结构则失败。此外,VIPS算法为基于视觉内容结构中的每个节点分配DoC值,这对于确定在不同应用中在哪里停止至关重要。

5.2 VIPS算法的性能

为评估VIPS算法的性能,我们从Yahoo!目录的14个主要类别中列出的热门网站选择了600个网页。VIPS算法在所有页面上运行,结果由几个人评估。五名志愿者被要求评判结果。表3显示了结果。

表3. VIPS算法的评估

人工判断用户1用户2用户3用户4用户5合计
完美2993073743103771667
满意2312661932371971124
一般6423294820184
差6445625

可以看出,1667 + 1124 = 2791(93%)的页面其语义内容结构被正确检测。对于那些"一般"的页面,层次结构构建不正确是因为它们包含不足的视觉线索来分隔块,而人们通过理解块的语义含义来获得结构。对于"差"的情况,一个主要原因是浏览器(即我们实验中的Internet Explorer)提供了错误的位置信息,导致我们的算法无法获得正确的内容结构。另一个原因是,对于某些页面,图像(例如表示线条的非常细的图像)被用于划分不同的内容块。我们的算法目前无法处理这种情况。

5.3 Web信息检索实验

查询扩展是提高信息检索性能的有效方法[8, 16]。扩展词的质量在很大程度上受排名靠前文档的影响。噪声和多主题是Web环境中扩展词选择的两个主要负面因素。由于我们的VIPS算法可以将语义相关的内容分组到一个块中,段内的词相关性将远高于网页其他部分。通过改进的词相关性,可以从段中提取高质量的扩展词并用于提高信息检索性能。

我们选择Okapi[23]作为检索系统,选择TREC-9和TREC 2001 Web Tracks中的WT10g[4]作为数据集。WT10g包含169万个页面,约10G。使用TREC 2001 Web Track的50个查询作为查询集,仅使用TOPIC字段进行检索,使用Okapi的BM2500[24]作为权重函数,设置k₁ = 1.2,k₃ = 1000,b = 0.75,avdl = 61200。在我们的实验中基线为16.55%。

通过使用任何传统信息检索方法获得初始的排名网页列表。然后我们对前80个页面应用不同的页面分割算法(包括PDoC(6)的VIPS算法和基于DOM的朴素方法)并获得候选段集合。从该候选集中选择最相关的(例如前20个)段用于选择扩展词。这些选定的词用于构建新的扩展查询以检索最终结果。

我们将我们的方法与使用整个文档的传统伪相关反馈算法和基于DOM树的朴素分割方法进行了比较,简要描述如下:

我们的基于视觉的方法(记为VIPS):PDoC设为6。为减少微小块的影响,少于10个词的块被移除。初始检索阶段返回的前80个页面被分割以形成候选段集合。

简单的基于DOM的方法(记为DOMPS):我们遍历DOM树以寻找一些结构标签,如TITLE、P、TABLE、UL和H1-H6。如果当前结构标签内没有更多结构标签,则构建一个块并由该标签标识。两个标签之间的自由文本也被视为特殊块。与VIPS类似,少于10个词的微小块也被移除,候选段从初始检索阶段返回的前80个页面中选择。

传统的全文档方法(记为FULLDOC):实现基于整个网页的传统伪相关反馈以进行比较。

实验结果如表4和图14所示。

表4. 使用不同页面分割方法的查询扩展性能比较

段数基线(%)FULLDOC(%)DOMPS(%)VIPS(%)
316.5517.56 (+6.10)17.94 (+8.40)18.01 (+8.82)
517.46 (+5.50)18.15 (+9.67)19.39 (+17.16)
1019.10 (+15.41)18.05 (+9.06)19.92 (+20.36)
2017.89 (+8.10)19.24 (+16.25)20.98 (+26.77)
3017.40 (+5.14)19.32 (+16.74)19.68 (+18.91)
4015.50 (-6.34)19.57 (+18.25)17.24 (+4.17)
5013.82 (-16.50)19.67 (+18.85)16.63 (+0.48)
6014.40 (-12.99)18.58 (+12.27)16.37 (-1.09)

可以看出,无论使用哪种分割算法,将页面划分为块后平均检索精度都可以提高。在FULLDOC的情况下,使用前10个文档扩展查询时最大平均精度为19.10%。DOMPS在使用前50个块时获得19.67%,略好于FULLDOC。VIPS在使用前20个块时获得最佳结果20.98%,实现了26.77%的提升。

基于文档的查询扩展FULLDOC使用前文档中的所有词进行扩展。由于基线非常低,许多排名靠前的文档实际上是不相关的,有许多词来自不相关主题。这导致检索性能相对较低,尽管好于基线。出于同样的原因,平均精度快速下降。

基于DOM的方法DOMPS与FULLDOC相比没有获得显著改善,部分原因是分割过于细粒度。段通常太短,无法覆盖单个语义的完整信息。这是基于朴素DOM树分割的主要局限性,我们之前已经指出。在许多情况下,好的扩展词在前一个或后一个块中,但由于这些块排名不够高而未被选择在伪相关反馈中。

与DOMPS相比,我们的VIPS算法考虑了更多视觉信息,更有可能获得网页的语义划分。因此,可以提取更好的扩展词并实现更好的性能。在Web Track数据集上实现了约27%的性能提升。

实验清楚地表明,基于视觉的网页内容结构对于检测和过滤噪声及不相关信息非常有帮助。因此可以选择更好的扩展词来提高检索性能。

6 结论

本文提出了一种新的基于视觉表示提取Web内容结构的方法。所生成的Web内容结构对于Web适配、信息检索和信息抽取等应用非常有帮助。通过基于视觉布局信息识别Web内容的逻辑关系,Web内容结构可以有效地表示网页的语义结构。提出了一种自动的自顶向下、独立于标签树且可扩展的Web内容结构检测算法。它模拟了用户基于视觉表示理解网页布局结构的方式。与传统的基于DOM的分割方法相比,我们的方案利用有用的视觉线索在语义层面获得更好的页面划分。它也独立于物理实现,即使物理结构与视觉呈现差异很大也能良好工作。该算法在大型数据集上进行了人工评估,也用于在Web信息检索的伪相关反馈过程中选择好的扩展词,两者都取得了非常满意的性能。

返回列表