知识抽取总论

Views: --

对应 PPT:第3讲 回答:知识抽取做什么?数据源有几种?典型任务是什么?行业评测体系?结构化数据怎么抽?


1. 知识抽取是什么

1.1 定义

知识抽取是自动化构建大规模知识图谱的重要技术,从不同来源、不同结构的数据中提取知识并存入知识图谱。

数据源:结构化(数据库、链接数据)、半结构化(网页表格、列表、HTML)、非结构化(纯文本)

简单类比:数据是矿山,知识抽取是采矿+冶炼,最后浇铸成 KG。

1.2 起源

  • 20 世纪 70 年代后期出现于 NLP 研究领域
  • 把多个文本碎片的信息合并,将非结构化数据 → 结构化数据(模式、实体关系或 RDF 三元组)

1.3 在技术架构中的位置

应用层    语义搜索 / 智能问答 / 辅助决策
服务层    知识存储 / 知识检索 / 知识推理
支撑层    NLP / 知识抽取 / 知识表示 / ML / DL / 图数据库
         知识融合 / 知识众包 / 知识建模 / 大模型
数据层    非结构化 / 半结构 / 结构化 / 多媒体结构 / 众包
   ↑                                    ↑
   └──── 知识抽取就在这里(数据→知识) ──┘

知识抽取 = 连接数据层和知识层的桥梁


2. 三类数据源

数据类型定义例子难度方法
结构化严格 schema,二维表关系数据库、链接数据D2R(DM/R2RML)
半结构化自描述,结构+内容混杂HTML、JSON、XML、NoSQL⭐⭐包装器、模板
非结构化无预定义模型文本、PDF、Word、音视频⭐⭐⭐NLP:NER/RE/EE

3. 知识抽取的 3 大子任务(必考)

3.1 实体识别(NER)

  • 从文本检测命名实体,分类到预定义类别
  • 类别:人物、组织、地点、时间、日期、字符值、金额值
  • 例:「王思聪是万达集团董事长王健林的独子」→ 王思聪(人)万达集团(组织)王健林(人)

3.2 关系抽取(RE)

  • 在 NER 基础上判断实体间关系
  • 两步:
    1. 判断实体对是否有关系(二分类)
    2. 判断属于哪种关系(多分类)
  • 也可一步:把”无关系”当特殊类别
  • 例:王思聪 -父子关系→ 王健林

3.3 事件抽取(EE)

  • 识别事件信息,结构化呈现
  • 例:恐怖袭击新闻 → 时间、地点、目标、受害人

事件抽取相关术语(期末必背)

术语含义例子
事件描述(Event Mention)描述事件的词组或句子”昨天 Apple 发布了 iPhone 16”
事件触发(Event Trigger)表明事件出现的主要词汇”发布”(触发”产品发布”事件)
事件元素(Event Argument)事件的重要信息发布者=Apple、发布时间=昨天、产品=iPhone 16
语义角色(Argument Role)元素在句子中的语义角色施事者、受事者、时间、地点

辨析:触发词 ≠ 实体。触发词是动词/名词,标志事件;实体是具体人/事/物。

3.4 三者关系

事件抽取
  └── 触发词识别 + 事件元素识别
关系抽取
  └── 实体识别 + 关系分类
实体识别
  └── 最底层任务

工业 pipeline:NER → RE → EE;学术:联合抽取(joint extraction)


4. 行业评测(3 大比赛,期末爱考名字)

4.1 MUC(Message Understanding Conference)

维度内容
主办美国 DARPA
时间1987~1998
推动NER、共指消解
成就F1 ~90%,定下知识抽取评价体系

4.2 ACE(Automatic Content Extraction)

维度内容
时间1999~2008
关系融合 MUC、细化分类
任务 1实体检测与跟踪(5 类:人/组织/设施/地缘/位置)
任务 2关系检测与表征(5 大类 24 小类:角色/部分整体/位于/邻近/社会)
任务 3事件检测与表征(5 类:交互/移动/转移/创建/销毁)

4.3 KBP(Knowledge Base Population)

维度内容
时间2009~(TAC 评测)
关系ACE 升级,目标”填充知识库”
任务 1实体发现与链接(EL:link 到 KG 节点)
任务 2槽填充(Slot Filling)(填实体属性)
任务 3事件跟踪

4.4 三者关系

MUC (1987~1998) → ACE (1999~2008) → KBP/TAC (2009~至今)
   基础定义            细化任务           知识库填充

速记:MUC 起家,ACE 拓展,KBP 填库


5. 网页数据采集基础(爬虫)

5.1 流程(4 步)

① 取得目标 URL
② 提交 HTTP 请求
③ 解析 HTTP 响应
④ 存储解析结果

5.2 HTTP 请求/响应

请求

字段内容
请求方式GET(取资源)、POST(提交)
请求 URL资源唯一地址
请求头User-Agent、Host、Cookies
请求体额外数据(表单)

响应

字段内容
响应状态200 成功、301 跳转、404 找不到、502 服务器错误
响应头Content-Type、Content-Length、Set-Cookies
响应体HTML、图片二进制等

5.3 解析工具对比

工具性能易用性功能选型
XPath⭐⭐⭐ 强(C 写)⭐ 麻烦⭐⭐⭐ 多(按文本定位)性能优先
BeautifulSoup⭐⭐ 弱(Python)⭐⭐⭐ 简单⭐⭐ 中快速开发
PyQuery⭐⭐ 弱⭐⭐⭐ 简单(jQuery 语法)⭐⭐ 中前端转 Python

速记:性能选 XPath,简便选 BS4 / PyQuery

5.4 数据存储

  • 文本:JSON、XML、CSV
  • 关系型数据库:MySQL、PostgreSQL
  • 二进制:图片、视频、音频直接存

6. 面向结构化数据的知识抽取(D2R)

核心问题:关系数据库怎么变成 RDF / OWL 本体?

6.1 抽取原理(5 个对应,必背)

关系数据库RDF / OWL
表(Table)类(Class)
列(Column)属性(Property)
行(Row)资源/实例(Resource/Instance)
单元(Cell)属性值(Property Value)
外键(Foreign Key)指代(Reference / ObjectProperty)

6.2 W3C RDB2RDF 标准(2012)

标准全称特点
DMDirect Mapping自动、规则固定、不灵活
R2RMLRDB to RDF Mapping Language可定制、支持 SQL 视图、灵活

6.3 DM 直接映射规则

数据库元素映射为
RDF 类
表的列RDF 属性
每一行一个资源(创建 IRI)
单元格的值Literal 值
外键新三元组,宾语为被引用行的 IRI

IRI 生成规则(必背)

  • 主语 IRI = 前缀 + 表名 + 主键列名 + 主键值
    • 例:<.../People/ID/7>
  • 谓词 IRI = 前缀 + 表名 + 列名
    • 例:<.../People/fname>
  • 外键 IRI = 前缀 + 引用表名 + 引用列名
    • 例:<.../Addresses/ID/18>

注意:DM 不为 NULL 值生成三元组

6.4 R2RML 映射

  • 逻辑表(Logic Table) = 数据库中的表、视图或 SQL 查询
  • 三元组映射(Triples Map) = 一个逻辑表 → 一组 RDF 三元组
  • 包含:
    1. 主语映射(主语模板 = IRI)
    2. 谓语-宾语映射(谓词模板 + 宾语模板/引用)

优点:可自定义类名、属性名、URI 前缀;支持多表 join;支持 SQL 视图。

6.5 D2R 工具对比(期末爱考)

工具能导出 RDF支持推理开源备注
D2RQ✅(DERI+惠普)最老牌,部分支持 R2RML
Mastro✅(带推理机)❌ 商业多数据库支持
Ultrawrap❌ 商业编译器+服务器,SPARQL 速度 = SQL
Ontop❌(虚拟 RDF 图✅(GitHub)主流,SPARQL 翻译为 SQL

速记:

  • D2RQ = 老牌、轻量、无推理
  • Mastro = 商业 + 推理
  • Ultrawrap = 商业 + 高性能
  • Ontop = 开源主流、不导出真实 RDF,只在查询时动态生成

6.6 OBDA 范式(新概念)

OBDA = Ontology-Based Data Access,基于本体的数据访问。

  • 企业已有大规模关系数据库
  • 不重建知识图谱,用 SPARQL 直接查询关系数据库
  • 底层:R2RML + 推理机
  • 工具:Mastro、Ontop 都属于 OBDA 系统

关键意义:OBDA 让传统企业数据库”享受”知识图谱的好处,但不迁移数据


7. 本章脑图

知识抽取总论
├── 知识抽取定义
│   └── 连接数据层和知识层的桥梁

├── 三类数据源
│   ├── 结构化(数据库)→ D2R
│   ├── 半结构化(HTML/JSON)→ 包装器
│   └── 非结构化(文本)→ NLP

├── 3 大子任务(必考)
│   ├── NER(人/组织/地点/时间…)
│   ├── RE(实体对 + 关系)
│   └── EE
│       ├── Event Mention
│       ├── Trigger("发布")
│       ├── Argument
│       └── Argument Role

├── 3 大评测(必背)
│   ├── MUC (1987~1998)
│   ├── ACE (1999~2008):5 实体/24 关系/5 事件
│   └── KBP (2009~):EL + 槽填充 + 事件跟踪

├── 爬虫(前置)
│   ├── 流程:URL→请求→解析→存储
│   ├── 请求方式:GET/POST
│   ├── 响应状态:200/301/404/502
│   └── 解析工具:XPath / BS4 / PyQuery

└── 结构化数据抽取(必背)
    ├── 5 个对应:表/列/行/单元/外键 → 类/属性/实例/值/指代
    ├── W3C 标准:DM(自动)vs R2RML(可定制)
    ├── DM 规则:主语=前缀+表+主键+值,谓词=前缀+表+列
    ├── R2RML:逻辑表+三元组映射
    ├── 工具:D2RQ / Mastro / Ultrawrap / Ontop
    └── OBDA:不迁移数据,SPARQL 查 DB