SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
网页结构化数据的定制抽取

        季光
中科院计算所博士生(韩燕波老师指导)
       2011.1
问题背景
• 若网页中的无结构数据经过wrapper抽取成为结构
  化数据,能以服务的形式支持应用程序的构造
 – 本报告探讨实现网页数据抽取的wrapper的关键技术
• 同一张网页,不同的用户根据各自的需求,构造
  的wrapper可能会
 – 抽取出不同的数据部分
 – 组织为不同的数据结构
• 例如,右图所示的网页
 – 共3个category (A~C)
 – 每个category下有多个title
   (A1~C2)
同一张网页,不同的数据表
用户1的需求(ES-1)          用户2的需求(ES-2)                      用户3的需求(ES-3)
•   需要所有数据            • 只需要category A,B                 •    需要所有数据
•   以category-title组织 • 以category-title组织               •    将category A和BC分开组织
     category      title     category      title     categoryA    titleA     categoryBC   titleBC
                 title-A1                title-A1                 title-A1                title-B1
                 title-A2                title-A2                            category-B   title-B2
    category-A              category-A                            title-A2
                 title-A3                title-A3    category-A                           title-B3
                                                                  title-A3
                 title-A4                title-A4                                         title-C1
                                                                             category-C
                 title-B1                title-B1                 title-A4                title-C2

    category-B   title-B2   category-B   title-B2

                 title-B3                title-B3   数据表是对抽取结果的结构化表示
                 title-C1
                                                    每行代表一个记录(record)
    category-C                                      每列代表一个属性。其中:
                 title-C2
                                                    • 列名被称作属性名(property name)
                                                    • 列中的值被称作属性值(property
                                                      value)
用户定制需求的表达
• 用户如何表达定制需求?
  – 通过对网页的标注(labeling),即使用属性名标出网页中的属性值
• 例如对于ES-1,用户在样本页面(sample page)上的标注
  如下




         所有的category   所有的title

• 系统据此生成包装器(wrapper),用于从新鲜页面(fresh
  page)中抽取数据
问题定义
• 问题定义
 – 输入
  • 样本页面
  • 用户在样本页面上的标注
 – 输出
  • 可以在新鲜页面上实现定制抽取的包装器
• 评价方法
 – 包装器在新鲜页面上的数据抽取性能
问题求解
• 将该问题分解为三个小问题
 – 问题一:先不考虑抽取结果的结构化,而是首
   先考虑:如何提取各属性的属性值?
 – 问题二:然后,如何利用样本页面的属性值,
   归纳出属性模式(即数据表的表头)?
 – 问题三:最后,为了完成结构化,如何将属性
   值填充到数据表中?
问题一:提取属性值
        特征打分法
• 对某个属性,已知用户标注的少量样本值,如何
  提取其他相似的值
• 一种高效的属性值提取方法:特征打分法
 – 用样本值的XPath选出候选元素集合
 – 用户标注的每个样本值,作为DOM元素,都有其多个
   特征(features);把样本值的公共特征作为打分特征集
   合(scoring feature set)
 – 检查候选元素是否符合打分特征集合中的各项特征,
   并按符合数量打分
 – 取得最高分的候选作为结果
提取属性值:一个例子
                                                    候选:title-A1~title-A4
/HTML
├/HEAD
│└/TITLE
                                                    title-A1的特征
└/BODY
  ├/STYLE
                     用户标注                           • 含class属性
  ├/DIV[1] #1
  │├/<DIV class="category">category‐A</DIV>[1]
  │└/DIV[2]
                                                    • class=“blueTitle”
  │ ├/<DIV class="bluTitle">title‐A1</DIV>[1]
  │ ├/<DIV class="bluTitle">title‐A2</DIV>[2]       • XPath序号为1
  │ ├/<DIV class="redTitle">title‐A3</DIV>[3]
  │ └/<DIV class="bluTitle">title‐A4</DIV>[4]
  └/DIV[2] #2                                       • 祖先节点的其他特征
    ├/DIV[1] #2‐1
    │├/<DIV class="category">category‐B</DIV>[1]
    │└/DIV[2]
                                                    title-A1与title-A3的共同特征
    │ ├/<DIV class="bluTitle">title‐B1</DIV>[1]
    │ ├/<DIV class="redTitle">title‐B2</DIV>[2]     • 含class属性
    │ └/<DIV class="bluTitle">title‐B3</DIV>[3]
    └/DIV[2] #2‐2
      ├/<DIV class="category">category‐C</DIV>[1]
                                                    • XPath序号为1
      └/DIV[2]
       ├/<DIV class="redTitle">title‐C1</DIV>[1]    • 祖先节点的其他特征
       └/<DIV class="bluTitle">title‐C2</DIV>[2]
                                                    打分结果:A1~A4均被选中
提取属性值:关于特征打分法的讨
       论
• 特征打分法的优点
 – 避免使用难以确定的单一阈值,使用离散、可
   清晰区分的分数作为筛选依据
  • 相关工作Grubber选取了类似的特征集,但是又将
    特征集转换为阈值,实验表明其效果不太理想
 – 用户可以边标注边查看提取结果,并且
  • 用户标注的值一定会在结果中选中,避免用户困惑
  • 对选中的值进行多余标注不会改变结果。因此,一
    旦符合需要,用户可以立即停止标注
  • 用户标注的次序不影响结果
问题二:归纳属性模式
• 属性模式是指属性值的组                 category-A title-A1 title-A2 title-A3 title-A4
                              category-B title-B1 title-B2 title-B3
  织结构模式,可以用正则                 category-C title-C1 title-C2
  表达式予以表达                           category[1]title[4]
 – 例如,ES-1的属性模式为                    category[1]title[3]
                                    category[1]title[2]
   (category[1]title[+])[3]
 – 复杂情况下,属性模式难以                   (category[1]title[+])[3]
   用简单的归约方法获得
• 网页上的属性模式具有“模
  式隔离”性质
 – 独立的子树的属性模式可以
   通过简单归约得到
 – 通过进一步归纳,可以得到
   更高级子树,直到整棵树上
   的属性模式
归纳属性模式的难点问题
• 属性归纳中的两难问题
 – DOM树并不完全适合直接用于属性归纳,需要进行变
   换。原因在于:
   • 含有大量的无用节点
   • 含有冗余的层次结构
 – 如果将所有属性值从DOM树中提取出来,化为无层次
   结构的线性序列,则破坏了模式隔离特性
• 因此,需要一种既能去除DOM树中的无用节点和
  冗余层次结构,又能保持模式隔离特性的中间结
  构:属性树(Property Tree, 简称PT)
归纳属性模式:构建PT




(构建RPT/PT的算法细节见论文3.1节)
PT集中体现了用户的定制结果
• 通过用户定制,从同一个
  DOM树可以得到不同的属
  性树(PT)
通过类型树(TT)归纳属性模式(1/2)
• 属性树集中体现了经过用户定制的DOM树
  的属性结构
• 通过对各个子树自下而上的归纳,即可得
  到整棵树的模式
 – 在属性树之上进行归纳,得到的树称为类型树
   (type tree, 简称TT)
 – 每个节点上的标注都表示该节点下的子树类型
通过类型树(TT)归纳属性模式(2/2)
•   归纳过程中的两个基本操作
    – 合并(merging):将兼容的正则表达式合并为更通用的正则表达式
      • 例如:title title --merge--> (title[2])
    – 编组(grouping):将不兼容的正则表达式编为一组
      • 例如:category (title[2]) --group--> (category[1], (title[2])[1])
•   树根上的类型即属性模式
问题三:填充数据表
• 根据属性模式,可以生成数据表的
  表头(即数据schema)                                      (category[1], title[+])[+]
 – 将属性模式进行正规化,消除连续的数
   量限定符(quantifier)                                                     title[+]
                                                      category
   • 例如,(((category[1], (title[+])[1])[+])[2])                              title
     可化为((category[1], title[+])[+])
 – 对于带有重复数据限定符([+]和[*])的类                                           1        #2
                                                 1       #1
   型,生成嵌套列;否则生成简单列                                                  *        #3
   • 例如, ((category[1], title[+])[+])对应的
     表头如右表所示                                                        1        #5
                                                 *       #4
 – 将属性值按从左向右的逐行次序填充到                                                *        #6
   数据表中,并保证属性名与列名的对应
   关系
   • 例如,右表的填充次序已用蓝色序号标
     明
最后一步:从新鲜页面抽取数据
•   综上,对于样本页面,生成数据表包含3个步骤
    – 1. 提取属性值
    – 2. 归纳属性模式
    – 3. 填充数据表
•   如果新鲜页面和样本页面具有同一结构,则两者具有相同的属性模式
    和属性特征集合
•   因此,对于新鲜页面,只需要步骤1和3
    – 免去了步骤2;沿用样本页面的属性模式
    – 提取属性值时,沿用样本页面的属性特征集合
•   对于新鲜页面,只要属性值得到了正确提取,则数据表就能得到正确
    提取。这使得算法健壮而高效
        Sample Page                    Sample              Sample
          (DOM)                    Property Values    Structured Result

                        Sample         Sample
        User Labeling
                        Features   Property Pattern

         Fresh Page                     Fresh               Fresh
          (DOM)                    Property Values    Structured Result
实验与评价(1/2)
•   由于现有的测试集较为陈旧,本实验建立了新的测试集,共55个网站
    – 从网页类型上,覆盖了列表页和详细页
    – 从网页内容上,覆盖了搜索、新闻、购物、娱乐、论坛、公司等日常浏
      览的网站
    – 从网页开发技术上,覆盖了使用JavaEE,.NET和PHP等技术开发的网站
•   每个网站取5张网页,1张作为样本页,其余4张作为新鲜页;评估新
    鲜页上的提取性能
    – 通过两次定制化标注,每个网站生成两个包装器
      • 第一次(scheme1)只标注页面中的同构数据,难度较小
      • 第二次(scheme2)标注页面中的异构数据和具有特征的数据,难度较大
    – 与相关工作Grubber进行对比实验
      • 通过Grubber对网页进行相同的标注
    – 评价度量
      • 准确率(Precision):正确提取的属性值数量/提取的属性值数量
      • 召回率(Recall):正确提取的属性值数量/页面的属性值数量
      • 结构化准确率(Structural Precision, SP):正确提取的记录数量/提取的记录数
        量
实验与评价(2/2)
                                                                Precision            Recall      SP
• 实验结果                                           Webclips        95.29%              97.83%   93.95%
                                      Scheme 1
    – Scheme1两者的效果                               Grubber         92.02%              80.45%   75.58%

      均较好,但Grubber                    Scheme 2
                                                 Webclips        96.84%              93.32%   92.60%
                                                 Grubber         69.59%              67.17%   51.93%
      的召回率稍低
                                                      100.00%

    – 有难度的Scheme2                                      90.00%
                                                       80.00%
                                                       70.00%

      中,Grubber准确率                                     60.00%
                                                       50.00%
                                                                                              Webclips
                                                                                              Grubber
                                      Scheme1          40.00%

      和召回率较差;而                                         30.00%
                                                       20.00%
                                                       10.00%
      Webclips仍保持良好                                     0.00%
                                                                Precision   Recall      SP


      效果
                                                      100.00%
                                                       90.00%
                                                       80.00%
                                                       70.00%
                                                       60.00%
                                                                                              Webclips
                                      Scheme2          50.00%
                                                       40.00%
                                                                                              Grubber

                                                       30.00%

实验的详细结果,见:                                             20.00%
                                                       10.00%
                                                        0.00%
http://shinig365.homedns.org/webclips-paper                     Precision   Recall      SP
结论与展望
• 在定制抽取环境下,Webclips体现了良好的性能
• 主要创新点
  – 提出特征打分法,用于高效地提取属性值
  – 提出不同于DOM树的属性树(Property Tree)的构造方法,利用模
    式隔离性质降低了归纳属性模式的难度
• Webclips的不足与改进方法
  – 如果新鲜页面的结构较之样本页面发生变化,则难以成功抽取
    • 对若干网站的观察表明,即使新鲜页面的结构变化,属性模式一般不
      变
    • 改进方法:采用更精致的属性值提取方法
  – 样本页面必须足够“典型”,才能有良好的抽取效果
    • 从测试情况来看,这一问题虽然存在,但并不突出
    • 改进方法:用多张页面作为样本页面
谢谢

        欢迎交流
         季光
jiguang@software.ict.ac.cn

Contenu connexe

En vedette

Desarrollo de un sistema hipermedia para la enseñanza de
Desarrollo de un sistema hipermedia para la enseñanza deDesarrollo de un sistema hipermedia para la enseñanza de
Desarrollo de un sistema hipermedia para la enseñanza de
Jorge Luis Calderón Salcedo
 
Activity generator shireland entry
Activity generator  shireland entryActivity generator  shireland entry
Activity generator shireland entry
gfaux
 
Formal proposal
Formal proposal Formal proposal
Formal proposal
Landellr2
 
My preliminary task evaluation
My preliminary task evaluationMy preliminary task evaluation
My preliminary task evaluation
Landellr2
 
Proceedings A Method For Finding Complete Observables In Classical Mechanics
Proceedings A Method For Finding Complete Observables In Classical MechanicsProceedings A Method For Finding Complete Observables In Classical Mechanics
Proceedings A Method For Finding Complete Observables In Classical Mechanics
vcuesta
 

En vedette (17)

Desarrollo de un sistema hipermedia para la enseñanza de
Desarrollo de un sistema hipermedia para la enseñanza deDesarrollo de un sistema hipermedia para la enseñanza de
Desarrollo de un sistema hipermedia para la enseñanza de
 
Presentación1praxias 6
Presentación1praxias 6Presentación1praxias 6
Presentación1praxias 6
 
Memorias Grafos, Mapeos Y Cromosomas Sexuales
Memorias Grafos, Mapeos Y Cromosomas SexualesMemorias Grafos, Mapeos Y Cromosomas Sexuales
Memorias Grafos, Mapeos Y Cromosomas Sexuales
 
1st quarter 4th meeting- spreadsheet
1st quarter   4th meeting- spreadsheet1st quarter   4th meeting- spreadsheet
1st quarter 4th meeting- spreadsheet
 
Latihan struktur
Latihan strukturLatihan struktur
Latihan struktur
 
Activity generator shireland entry
Activity generator  shireland entryActivity generator  shireland entry
Activity generator shireland entry
 
Formal proposal
Formal proposal Formal proposal
Formal proposal
 
Produksi multimedia
Produksi multimediaProduksi multimedia
Produksi multimedia
 
My preliminary task evaluation
My preliminary task evaluationMy preliminary task evaluation
My preliminary task evaluation
 
Las vocales
Las vocalesLas vocales
Las vocales
 
Acaban de diagnosticarselo. No está solo.
Acaban de diagnosticarselo. No está solo.Acaban de diagnosticarselo. No está solo.
Acaban de diagnosticarselo. No está solo.
 
Bicentena..
Bicentena..Bicentena..
Bicentena..
 
3
33
3
 
Curso Lsa 2009 Class 1
Curso Lsa 2009 Class 1Curso Lsa 2009 Class 1
Curso Lsa 2009 Class 1
 
Proceedings A Method For Finding Complete Observables In Classical Mechanics
Proceedings A Method For Finding Complete Observables In Classical MechanicsProceedings A Method For Finding Complete Observables In Classical Mechanics
Proceedings A Method For Finding Complete Observables In Classical Mechanics
 
Paceño yo?
Paceño yo?Paceño yo?
Paceño yo?
 
Colgar el pantalon
Colgar el pantalonColgar el pantalon
Colgar el pantalon
 

Similaire à 网页结构化数据的定制抽取

浏览器工作原理浅析
浏览器工作原理浅析浏览器工作原理浅析
浏览器工作原理浅析
癸鑫 张
 
改善Programmer生活的sql技能
改善Programmer生活的sql技能改善Programmer生活的sql技能
改善Programmer生活的sql技能
Rack Lin
 
人人网技术架构的演进
人人网技术架构的演进人人网技术架构的演进
人人网技术架构的演进
Laobiao Li
 
分布式Key-value漫谈
分布式Key-value漫谈分布式Key-value漫谈
分布式Key-value漫谈
lovingprince58
 
Csdn Emag(Oracle)第二期
Csdn Emag(Oracle)第二期Csdn Emag(Oracle)第二期
Csdn Emag(Oracle)第二期
yiditushe
 
3. java basics
3. java basics3. java basics
3. java basics
netdbncku
 
百度分布式数据实践与进展
百度分布式数据实践与进展百度分布式数据实践与进展
百度分布式数据实践与进展
yp_fangdong
 
使用Dsl改善软件设计
使用Dsl改善软件设计使用Dsl改善软件设计
使用Dsl改善软件设计
mingjin
 
Free Marker中文文档
Free Marker中文文档Free Marker中文文档
Free Marker中文文档
yiditushe
 

Similaire à 网页结构化数据的定制抽取 (20)

MySQL查询优化浅析
MySQL查询优化浅析MySQL查询优化浅析
MySQL查询优化浅析
 
MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)
 
浏览器工作原理浅析
浏览器工作原理浅析浏览器工作原理浅析
浏览器工作原理浅析
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
 
N-layer design & development
N-layer design & developmentN-layer design & development
N-layer design & development
 
改善Programmer生活的sql技能
改善Programmer生活的sql技能改善Programmer生活的sql技能
改善Programmer生活的sql技能
 
Build 1 trillion warehouse based on carbon data
Build 1 trillion warehouse based on carbon dataBuild 1 trillion warehouse based on carbon data
Build 1 trillion warehouse based on carbon data
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统
 
MySQL入門介紹
MySQL入門介紹MySQL入門介紹
MySQL入門介紹
 
你一定不能不知道的 Markdown 寫作技巧
你一定不能不知道的 Markdown 寫作技巧你一定不能不知道的 Markdown 寫作技巧
你一定不能不知道的 Markdown 寫作技巧
 
人人网技术架构的演进
人人网技术架构的演进人人网技术架构的演进
人人网技术架构的演进
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈
 
分布式Key-value漫谈
分布式Key-value漫谈分布式Key-value漫谈
分布式Key-value漫谈
 
Csdn Emag(Oracle)第二期
Csdn Emag(Oracle)第二期Csdn Emag(Oracle)第二期
Csdn Emag(Oracle)第二期
 
3. java basics
3. java basics3. java basics
3. java basics
 
分布式系统缓存设计
分布式系统缓存设计分布式系统缓存设计
分布式系统缓存设计
 
百度分布式数据实践与进展
百度分布式数据实践与进展百度分布式数据实践与进展
百度分布式数据实践与进展
 
使用Dsl改善软件设计
使用Dsl改善软件设计使用Dsl改善软件设计
使用Dsl改善软件设计
 
Free Marker中文文档
Free Marker中文文档Free Marker中文文档
Free Marker中文文档
 
Single-Page App Development
Single-Page App DevelopmentSingle-Page App Development
Single-Page App Development
 

网页结构化数据的定制抽取

  • 1. 网页结构化数据的定制抽取 季光 中科院计算所博士生(韩燕波老师指导) 2011.1
  • 2. 问题背景 • 若网页中的无结构数据经过wrapper抽取成为结构 化数据,能以服务的形式支持应用程序的构造 – 本报告探讨实现网页数据抽取的wrapper的关键技术 • 同一张网页,不同的用户根据各自的需求,构造 的wrapper可能会 – 抽取出不同的数据部分 – 组织为不同的数据结构 • 例如,右图所示的网页 – 共3个category (A~C) – 每个category下有多个title (A1~C2)
  • 3. 同一张网页,不同的数据表 用户1的需求(ES-1) 用户2的需求(ES-2) 用户3的需求(ES-3) • 需要所有数据 • 只需要category A,B • 需要所有数据 • 以category-title组织 • 以category-title组织 • 将category A和BC分开组织 category title category title categoryA titleA categoryBC titleBC title-A1 title-A1 title-A1 title-B1 title-A2 title-A2 category-B title-B2 category-A category-A title-A2 title-A3 title-A3 category-A title-B3 title-A3 title-A4 title-A4 title-C1 category-C title-B1 title-B1 title-A4 title-C2 category-B title-B2 category-B title-B2 title-B3 title-B3 数据表是对抽取结果的结构化表示 title-C1 每行代表一个记录(record) category-C 每列代表一个属性。其中: title-C2 • 列名被称作属性名(property name) • 列中的值被称作属性值(property value)
  • 4. 用户定制需求的表达 • 用户如何表达定制需求? – 通过对网页的标注(labeling),即使用属性名标出网页中的属性值 • 例如对于ES-1,用户在样本页面(sample page)上的标注 如下 所有的category 所有的title • 系统据此生成包装器(wrapper),用于从新鲜页面(fresh page)中抽取数据
  • 5. 问题定义 • 问题定义 – 输入 • 样本页面 • 用户在样本页面上的标注 – 输出 • 可以在新鲜页面上实现定制抽取的包装器 • 评价方法 – 包装器在新鲜页面上的数据抽取性能
  • 6. 问题求解 • 将该问题分解为三个小问题 – 问题一:先不考虑抽取结果的结构化,而是首 先考虑:如何提取各属性的属性值? – 问题二:然后,如何利用样本页面的属性值, 归纳出属性模式(即数据表的表头)? – 问题三:最后,为了完成结构化,如何将属性 值填充到数据表中?
  • 7. 问题一:提取属性值 特征打分法 • 对某个属性,已知用户标注的少量样本值,如何 提取其他相似的值 • 一种高效的属性值提取方法:特征打分法 – 用样本值的XPath选出候选元素集合 – 用户标注的每个样本值,作为DOM元素,都有其多个 特征(features);把样本值的公共特征作为打分特征集 合(scoring feature set) – 检查候选元素是否符合打分特征集合中的各项特征, 并按符合数量打分 – 取得最高分的候选作为结果
  • 8. 提取属性值:一个例子 候选:title-A1~title-A4 /HTML ├/HEAD │└/TITLE title-A1的特征 └/BODY ├/STYLE 用户标注 • 含class属性 ├/DIV[1] #1 │├/<DIV class="category">category‐A</DIV>[1] │└/DIV[2] • class=“blueTitle” │ ├/<DIV class="bluTitle">title‐A1</DIV>[1] │ ├/<DIV class="bluTitle">title‐A2</DIV>[2] • XPath序号为1 │ ├/<DIV class="redTitle">title‐A3</DIV>[3] │ └/<DIV class="bluTitle">title‐A4</DIV>[4] └/DIV[2] #2 • 祖先节点的其他特征 ├/DIV[1] #2‐1 │├/<DIV class="category">category‐B</DIV>[1] │└/DIV[2] title-A1与title-A3的共同特征 │ ├/<DIV class="bluTitle">title‐B1</DIV>[1] │ ├/<DIV class="redTitle">title‐B2</DIV>[2] • 含class属性 │ └/<DIV class="bluTitle">title‐B3</DIV>[3] └/DIV[2] #2‐2 ├/<DIV class="category">category‐C</DIV>[1] • XPath序号为1 └/DIV[2] ├/<DIV class="redTitle">title‐C1</DIV>[1] • 祖先节点的其他特征 └/<DIV class="bluTitle">title‐C2</DIV>[2] 打分结果:A1~A4均被选中
  • 9. 提取属性值:关于特征打分法的讨 论 • 特征打分法的优点 – 避免使用难以确定的单一阈值,使用离散、可 清晰区分的分数作为筛选依据 • 相关工作Grubber选取了类似的特征集,但是又将 特征集转换为阈值,实验表明其效果不太理想 – 用户可以边标注边查看提取结果,并且 • 用户标注的值一定会在结果中选中,避免用户困惑 • 对选中的值进行多余标注不会改变结果。因此,一 旦符合需要,用户可以立即停止标注 • 用户标注的次序不影响结果
  • 10. 问题二:归纳属性模式 • 属性模式是指属性值的组 category-A title-A1 title-A2 title-A3 title-A4 category-B title-B1 title-B2 title-B3 织结构模式,可以用正则 category-C title-C1 title-C2 表达式予以表达 category[1]title[4] – 例如,ES-1的属性模式为 category[1]title[3] category[1]title[2] (category[1]title[+])[3] – 复杂情况下,属性模式难以 (category[1]title[+])[3] 用简单的归约方法获得 • 网页上的属性模式具有“模 式隔离”性质 – 独立的子树的属性模式可以 通过简单归约得到 – 通过进一步归纳,可以得到 更高级子树,直到整棵树上 的属性模式
  • 11. 归纳属性模式的难点问题 • 属性归纳中的两难问题 – DOM树并不完全适合直接用于属性归纳,需要进行变 换。原因在于: • 含有大量的无用节点 • 含有冗余的层次结构 – 如果将所有属性值从DOM树中提取出来,化为无层次 结构的线性序列,则破坏了模式隔离特性 • 因此,需要一种既能去除DOM树中的无用节点和 冗余层次结构,又能保持模式隔离特性的中间结 构:属性树(Property Tree, 简称PT)
  • 14. 通过类型树(TT)归纳属性模式(1/2) • 属性树集中体现了经过用户定制的DOM树 的属性结构 • 通过对各个子树自下而上的归纳,即可得 到整棵树的模式 – 在属性树之上进行归纳,得到的树称为类型树 (type tree, 简称TT) – 每个节点上的标注都表示该节点下的子树类型
  • 15. 通过类型树(TT)归纳属性模式(2/2) • 归纳过程中的两个基本操作 – 合并(merging):将兼容的正则表达式合并为更通用的正则表达式 • 例如:title title --merge--> (title[2]) – 编组(grouping):将不兼容的正则表达式编为一组 • 例如:category (title[2]) --group--> (category[1], (title[2])[1]) • 树根上的类型即属性模式
  • 16. 问题三:填充数据表 • 根据属性模式,可以生成数据表的 表头(即数据schema) (category[1], title[+])[+] – 将属性模式进行正规化,消除连续的数 量限定符(quantifier) title[+] category • 例如,(((category[1], (title[+])[1])[+])[2]) title 可化为((category[1], title[+])[+]) – 对于带有重复数据限定符([+]和[*])的类 1 #2 1 #1 型,生成嵌套列;否则生成简单列 * #3 • 例如, ((category[1], title[+])[+])对应的 表头如右表所示 1 #5 * #4 – 将属性值按从左向右的逐行次序填充到 * #6 数据表中,并保证属性名与列名的对应 关系 • 例如,右表的填充次序已用蓝色序号标 明
  • 17. 最后一步:从新鲜页面抽取数据 • 综上,对于样本页面,生成数据表包含3个步骤 – 1. 提取属性值 – 2. 归纳属性模式 – 3. 填充数据表 • 如果新鲜页面和样本页面具有同一结构,则两者具有相同的属性模式 和属性特征集合 • 因此,对于新鲜页面,只需要步骤1和3 – 免去了步骤2;沿用样本页面的属性模式 – 提取属性值时,沿用样本页面的属性特征集合 • 对于新鲜页面,只要属性值得到了正确提取,则数据表就能得到正确 提取。这使得算法健壮而高效 Sample Page Sample Sample (DOM) Property Values Structured Result Sample Sample User Labeling Features Property Pattern Fresh Page Fresh Fresh (DOM) Property Values Structured Result
  • 18. 实验与评价(1/2) • 由于现有的测试集较为陈旧,本实验建立了新的测试集,共55个网站 – 从网页类型上,覆盖了列表页和详细页 – 从网页内容上,覆盖了搜索、新闻、购物、娱乐、论坛、公司等日常浏 览的网站 – 从网页开发技术上,覆盖了使用JavaEE,.NET和PHP等技术开发的网站 • 每个网站取5张网页,1张作为样本页,其余4张作为新鲜页;评估新 鲜页上的提取性能 – 通过两次定制化标注,每个网站生成两个包装器 • 第一次(scheme1)只标注页面中的同构数据,难度较小 • 第二次(scheme2)标注页面中的异构数据和具有特征的数据,难度较大 – 与相关工作Grubber进行对比实验 • 通过Grubber对网页进行相同的标注 – 评价度量 • 准确率(Precision):正确提取的属性值数量/提取的属性值数量 • 召回率(Recall):正确提取的属性值数量/页面的属性值数量 • 结构化准确率(Structural Precision, SP):正确提取的记录数量/提取的记录数 量
  • 19. 实验与评价(2/2) Precision Recall SP • 实验结果 Webclips 95.29% 97.83% 93.95% Scheme 1 – Scheme1两者的效果 Grubber 92.02% 80.45% 75.58% 均较好,但Grubber Scheme 2 Webclips 96.84% 93.32% 92.60% Grubber 69.59% 67.17% 51.93% 的召回率稍低 100.00% – 有难度的Scheme2 90.00% 80.00% 70.00% 中,Grubber准确率 60.00% 50.00% Webclips Grubber Scheme1 40.00% 和召回率较差;而 30.00% 20.00% 10.00% Webclips仍保持良好 0.00% Precision Recall SP 效果 100.00% 90.00% 80.00% 70.00% 60.00% Webclips Scheme2 50.00% 40.00% Grubber 30.00% 实验的详细结果,见: 20.00% 10.00% 0.00% http://shinig365.homedns.org/webclips-paper Precision Recall SP
  • 20. 结论与展望 • 在定制抽取环境下,Webclips体现了良好的性能 • 主要创新点 – 提出特征打分法,用于高效地提取属性值 – 提出不同于DOM树的属性树(Property Tree)的构造方法,利用模 式隔离性质降低了归纳属性模式的难度 • Webclips的不足与改进方法 – 如果新鲜页面的结构较之样本页面发生变化,则难以成功抽取 • 对若干网站的观察表明,即使新鲜页面的结构变化,属性模式一般不 变 • 改进方法:采用更精致的属性值提取方法 – 样本页面必须足够“典型”,才能有良好的抽取效果 • 从测试情况来看,这一问题虽然存在,但并不突出 • 改进方法:用多张页面作为样本页面
  • 21. 谢谢 欢迎交流 季光 jiguang@software.ict.ac.cn