半结构化知识抽取

Views: --

对应 PPT:第4讲 主要内容:百科类抽取(DBpedia)、Web 包装器、Web Table 抽取


1. 什么是半结构化数据

半结构化数据:用**标签(tag)**对数据进行结构划分或分离语义元素的数据。和结构化数据相比,没有严格的数据结构和关系定义

  • 包括:HTML、JSON、XML、NoSQL 数据库
  • 标签划分了页面元素的层次(<table>, <div>, <h1>
  • 优点:扩展性强、灵活性好
  • 缺点:结构可变,模板可能随时改

半结构化 vs 结构化 vs 非结构化

类型结构例子抽取方法
结构化严格 schema关系数据库D2R(DM/R2RML)
半结构化标签+自由HTML/JSON/XML包装器 / 模板 / 实体链接
非结构化无结构文本NER/RE/EE

2. 百科类知识抽取(重点:DBpedia 框架

2.1 背景

  • Wikipedia 是最大的半结构化知识源之一
  • DBpedia = Wikipedia 知识图谱化,从 Wikipedia 抽取结构化数据,发布为 RDF

2.2 DBpedia 总体框架

页面集合(Page Collections)         目标数据(RDF 三元组)
  ├─ 本地 Wiki 文章                       ↑
  └─ 远程 Wiki 文章                       │

        提取器(Extractors)→  解析器(Parsers)→ 三元组
        (特定类型 Wiki 标记)  (类型判断/转换)
  • 页面集合:本地 + 远程 Wikipedia 文章
  • 提取器(Extractors):把特定类型的 Wiki 标记转成三元组
  • 解析器(Parsers):判断数据类型、不同单元间转换值
  • 目标数据:存储或序列化为 RDF 三元组

2.3 DBpedia 抽取的 12 类信息(期末必背清单

#信息含义例子
1标签(Labels)词条标题 → 实体名”蒂姆·伯纳斯-李” → rdfs:label
2摘要(Abstract)词条第一段长文本描述
3跨语言链接不同语言版词条互链en:zh:
4图片(Image)词条中的图片链接File:Sir_Tim_Berners-Lee.jpg
5重定向(Redirects)同义词条关联”TimBL” → “蒂姆·伯纳斯-李”
6消歧(Disambiguation)同名歧义实体的内部链接”苹果”:公司/水果/报纸/电影/艺人
7外部链接词条 → 外网论文/官网
8页面链接(Pagelinks)词条 → 其他 Wiki 词条蕴含实体间关系
9主页(Homepage)公司/机构的官网北航词条中计算机学院主页
10分类(Categories)词条所属类别可用于构建本体
11地理坐标经纬度城市/地标
12信息框(Infobox)词条的结构化属性最重要:作为实体的属性

重要考点

  1. Infobox 是 Wikipedia 右侧的属性表,最重要的结构化知识源
  2. Pagelinks 蕴含实体间关系(链入 = 有关联)
  3. Categories 可用于构建本体(分类层级 = 本体的 subclass)
  4. Disambiguation 是消歧任务的关键数据源
  5. Redirects 是共指消解的关键数据源

3. 包装器(Wrapper)——Web 网页数据抽取的核心

3.1 什么是包装器

包装器(Wrapper)是一种将数据从 HTML 网页中抽取出来,并将其结构化的软件

  • 同一网站页面通常用少量模板编码
  • 包装器 = 一组”抽取规则”(XPath / CSS 选择器 / 正则),定位并抽取目标数据

3.2 包装器生成的 3 大方法(期末必背

方法类型核心思路优点缺点
手工方法人工人工查看 HTML,写 XPath/CSS 选择器准确率高慢、难维护、不能扩展
包装器归纳监督学习标注样本 → 学习 XPath 规则 → 泛化比手工快需标注、跨模板泛化差
自动抽取无监督学习聚类相似页面 → 自动学模板无需标注准确率低

速记:手工→监督→无监督,人工成本递减,自动化程度递增。

3.3 手工方法

  • 步骤:
    1. 打开 Chrome → F12(开发者工具)
    2. Elements 标签看 HTML
    3. 找到目标元素 → 右键 → Copy XPath
    4. 把 XPath 喂给爬虫,循环跑
  • 例子:“万维网”标题的 XPath://*[@id="mw-content-text"]/div[1]/p[1]/a[1]

3.4 包装器归纳(4 步)

① 网页清洗(Tidy 工具)→ 规范 HTML
② 网页标注 → 给目标数据加 Label
③ 包装器空间生成 → 生成 XPath 集合 + 归纳规则
④ 包装器评估 → 准确率 + 召回率

归纳示例

  • 标注两个相同类型元素的 XPath:
    • A: //*[@id="mw-content-text"]/div[1]/table[4]/tbody/tr[2]/td[2]
    • B: //*[@id="mw-content-text"]/div[1]/table[4]/tbody/tr[3]/td[2]
  • 归纳后://*[@id="mw-content-text"]/div[1]/table[4]/tbody/*/td[2]
  • tr[2]tr[3] 泛化为 *(任意行)——这是监督学习的归纳偏置

评估规则

  • 准确率更高的(包装器 A 优于 B)
  • 召回率相同时选准确率高的

3.5 自动抽取(无监督)

  • 思路:同一网站页面用少量模板,通过学习网页的重复模式找模板
  • 步骤:
    1. 包装器训练:聚类相似网页 → 一组相似网页 → 一个包装器;不需要先验知识和人工标注
    2. 包装器应用:把目标网页与训练样本比较 → 分类 → 选对应包装器

速记:手工靠人、监督靠标注、无监督靠聚类


4. 网络表(Web Table)抽取

4.1 什么是 Web Table

  • Web Table = 网络中内嵌的表格(HTML <table>
  • 特点:使用便利灵活
  • 应用:电商、百科、微博、腾讯文档、Wikipedia 等

4.2 数量和价值

  • 全球电子表格活跃用户 >40 亿
  • Wikipedia 52 万篇文章中可抽 323 万+ 表(Cafarella 2008)
  • 有价值信息占比小:141 亿 HTML 表中只有 1.54 亿(1.1%) 是高质量

4.3 网络表分类(必背 4+2 维度

维度类型描述
内容关系(relational)描述一系列实体和其属性
实体(entity)描述一个特定实体(学生表、老师表)
矩阵(matrix)三维数据集(标题+行+列)
其它日历、清单等
布局导航(navigational)用作网页内容导航
格式化(formatting)用作展示信息

实体表 vs 关系表(数据库类比):

  • 实体表:存一个对象的属性(Student 表:stuId、stuName、age)
  • 关系表:存对象间多对多关系(StudentCourse 表:stuId、courseId)

4.4 网络表的元素(7 个)

元素含义
Tp表网页题目
Tc表题注
TH表标题(列头)
TE表实体(行/单元)
T[:j]表列
T[i:]表行
T[i,j]表单元

4.5 网络表相关任务(6 大类

任务层级说明
网络表抽取底层从网页中识别、分类、存储表(表语料库构建
网络表阐释底层表内容 → RDF 三元组
网络表搜索上层找特定的表
网络表增广上层用表增强 NLP
知识库增广上层用表补充 KG
问答上层表上做 QA

速记:2 个底层任务(抽取+阐释)+ 4 个上层应用

4.6 网络表抽取的 3 个子任务

子任务目标特征方法
关系表分类预测表是否含关系数据表大小、标签规则 / 分类器(Cafarella 2008)
标题检测识别列头行类似表元数据复用关系表特征
表类别分类按预定义分类法分类语法+语义规则 / 深度神经网络

5. 网络表阐释

5.1 目标

把表的隐含语义显式表达成 RDF 三元组

5.2 过程(3 步)

① 候选实体生成:单元格字符串 → 知识库候选实体集合
② 实体链接:字符串 → 知识库中具体实体
③ 实体消歧:候选集合多于一 → 选唯一

5.3 实体链接的影响因子(2 个)

因子含义
提及重要性(mention importance)每个字符串本身的重要性
语义相关度(semantic relatedness)不同节点之间的语义相关度

5.4 实体消歧

  • PageRank 算法整合两个影响因子 → 选得分最高的实体作为链接
  • PageRank 完成后,删除其他候选实体和相关边,更新图中的边权值

6. PageRank 算法(重要基础

6.1 思想

重要性(importance)评价网页(实体)。这是一个递归过程:一个网页的重要性既和指向它的网页重要性相关,也影响指向它的网页的重要性。

6.2 物理意义

  • 想象用户在网上随机浏览
  • 一个网页的 rank = 随机浏览过程在该网页停止的可能性
  • 越多的网页指向一个网页,停下来看它的可能性越大

6.3 算法步骤

① 初始化:rank = 1/N(N 个实体,每个 rank = 1/N)
② 权重更新:每个实体的 rank = Σ 来自指向它的实体的 rank 贡献
   例:E 被 C 和 D 指向
     - C 有 3 个外链 → C 把 1/3 rank 贡献给 E
     - D 有 2 个外链 → D 把 1/2 rank 贡献给 E
③ 处理"死胡同":无外链的实体把 rank 平均分给图中所有其他实体
④ 迭代到收敛(实践中加衰减系数加速)

6.4 关键规则

  • 无外链(dangling node)的处理:该实体的 rank 平均分给图中所有其他实体
  • 物理直觉:用户”找不到目标”时会”随机跳到别处”
  • 实践中:用阻尼系数 d(通常 0.85)控制跳转概率: PR(p) = (1-d)/N + d * Σ PR(q)/L(q)

6.5 PageRank 在 KG 中的应用

  • 实体消歧:用 PageRank 整合 mention importance + semantic relatedness → 选唯一实体
  • 图节点重要性:评估哪个实体/概念”更重要”

7. 实战思考(作业原题,期末可能考

  1. 包装器归纳法中可以使用哪些有监督模型? 答:决策树、SVM、CRF、BiLSTM-CRF、序列标注模型等。
  2. 大模型能否实现包装器? 答:可以,LLM(如 GPT-4)能根据 HTML + 抽取需求直接生成结构化数据,但稳定性、成本、可控性不如传统包装器。

8. 本章脑图

半结构化知识抽取
├── 什么是半结构化数据
│   └── 标签划分+无严格 schema

├── 百科类抽取(DBpedia 框架)
│   ├── 页面集合 → 提取器 → 解析器 → RDF
│   └── 12 类抽取信息
│       ├── Labels(实体名)
│       ├── Abstract(摘要)
│       ├── 跨语言链接
│       ├── Image / Redirects
│       ├── Disambiguation(消歧关键)
│       ├── External / Pagelinks(蕴含关系)
│       ├── Homepage / Categories(可构本体)
│       ├── Geo / Infobox(属性表,最重要)

├── Web 网页数据抽取
│   ├── 包装器 = 抽取规则(XPath/CSS)
│   └── 3 大方法
│       ├── 手工(人工 XPath)
│       ├── 包装器归纳(监督)
│       └── 自动抽取(无监督聚类)

└── Web Table
    ├── 4 类内容(关系/实体/矩阵/其他)
    ├── 2 类布局(导航/格式化)
    ├── 6 大任务
    │   ├── 2 底层:抽取、阐释
    │   └── 4 上层:搜索、增广、KG 增广、问答
    ├── 抽取 3 子任务(关系表分类/标题检测/表类别)
    └── 阐释 = 实体链接 + 消歧(PageRank)