关系抽取方法

实体识别把「谁」从文本里找出来了,接下来要回答: 谁和谁、什么关系? 爱因斯坦 与 相对论 之间是「创立」,北京 与 中国 之间是「首都」。这就是关系抽取(Relation Extraction, RE):从句子或文档中识别出(头实体, 关系类型, 尾实体)三元组。方法既有基于模式依存句法的(可解释、少标注),也有基于监督 / 远程监督 / 零样本学习的(泛化强、可扩展);还要区分关系分类(在固定关系集中选一)与开放关系(关系用自由文本表示)。本章把任务定义、模式与依存方法、三种学习范式、以及关系分类与开放关系讲清楚。

一、关系抽取任务定义

关系抽取(Relation Extraction, RE)的输入通常是:一段文本(句子或段落)+ 一对实体(或由上游 NER 给出所有实体后枚举实体对)。输出是:该实体对在文本中表达的关系类型,或「无关系」。若关系类型来自预定义集合,任务常称为关系分类(Relation Classification);若关系可为自由文本或开放类别,则称为开放关系抽取(Open RE)

形式化:给定句子 S 与实体对 (e1, e2),求关系 r(或 NULL)。输出可写为三元组 (e1, r, e2),即知识图谱中的一条候选事实。RE 与 NER 衔接:先 NER 得到实体及边界,再对实体对做 RE;得到的 (e1, r, e2) 中的 e1、e2 若需挂到已有知识库,则交给实体链接(下一章)。

关系抽取:输入句子与实体对,输出关系类型或三元组
(Einstein, created, relativity)

二、基于模式与依存的方法

基于模式(Pattern-based):用正则或模板描述「包含两个实体 slot 与关系关键词」的句式。例如模板「X 创立了 Y」可匹配「爱因斯坦 创立了 相对论」,抽得 (爱因斯坦, 创立, 相对论)。模式可由人工编写或从少量标注中归纳;优点是可解释、无需大量标注,缺点是模式覆盖有限、对新表述敏感。

基于依存(Dependency-based):先对句子做依存句法分析,得到词之间的依存边(主谓、动宾等);再在依存树上找连接实体 e1 与 e2 的路径,路径上的谓词或边类型往往对应关系。例如「Einstein created the theory of relativity」中,Einstein 与 relativity 之间的路径经过 created、theory 等,可归纳出「created」或「created_theory_of」作为关系。依存方法能利用句法结构,对句式变化有一定泛化,但依赖句法分析质量与路径到关系的映射设计。

X 创立了 Y" → 匹配句子得 (X, 创立, Y) 可解释 · 少标注 · 覆盖有限 依存 依存树路径 E1↔E2 路径上谓词 → 关系 利用句法 · 依赖解析质量 两种传统方法:模式匹配 vs 依存路径
基于模式:模板匹配;基于依存:句法路径上的谓词即关系

三、监督、远程监督与零样本关系抽取

用机器学习做关系分类时,按标注从哪来分为三种范式。

监督(Supervised)

训练数据为人工标注的 (句子, e1, e2, 关系)。质量高但规模有限;模型通常对句子(或实体间上下文)编码后做关系分类。常用数据集:SemEval、TACRED、FewRel 等。

远程监督(Distant Supervision)

用知识库中已有三元组 (e1, r, e2) 去语料里找「同时包含 e1、e2 的句子」,自动打上关系 r。假设:含该实体对的句子多半表达该关系。噪声大但数据量大,常配合多实例学习或去噪。

零样本 / 少样本(Zero / Few-shot)

新关系无标注或极少:用关系描述、少量示例或 prompt 让模型泛化。大模型 in-context、原型网络、或「关系描述 → 分类」的语义匹配常用。

监督 / 远程监督 / 零样本:标注来源不同,最终都训练或驱动关系分类

四、关系分类与开放关系

关系分类(Relation Classification):关系来自预定义集合(如 created, capitalOf, worksFor),模型在给定 (句子, e1, e2) 下做多分类。适合与知识图谱 Schema 对齐、便于入库与推理。常用编码方式:把 e1、e2 在句中的位置或 span 编码进向量,再与关系嵌入做匹配或过分类头。

开放关系抽取(Open RE):不限定关系集合,关系用自由文本表示(如「创立」「是…的首都」)。可从句子中直接抽取「关系短语」作为标签,或先用模板/依存得到关系表述再聚类归一化。开放 RE 能发现 Schema 外的新关系,但后续需要归一化、对齐到本体或人工审核后才能入图谱。

关系分类(封闭集)

关系来自预定义集合;输出可直接对应 Schema 属性;便于入库与推理。需维护关系列表与标注。

开放关系抽取

关系为自由文本或开放类别;可发现新关系;需后续归一化、聚类或对齐到本体。

关系分类 vs 开放关系:封闭集与开放集的取舍
关系分类流程:句子+实体对 → 编码 → 分类 → 关系标签

一句话: 关系抽取从文本中识别 (e1, relation, e2)。基于模式用模板匹配,基于依存用句法路径上的谓词。监督用人工标注,远程监督用 KB 与语料对齐自动打标,零/少样本用描述或示例泛化。关系分类在预定义关系集中选一;开放关系用自由文本,需后续归一化与对齐。

实践: 用 RE 工具或预训练模型(如 OpenNRE、Hugging Face 的 RE 模型)对「Einstein created the theory of relativity」做 (Einstein, relativity) 的关系分类;再写一条简单模式「X 创立了 Y」在同一句上匹配,体会模式与学习的差异。

五、小结

关系抽取输入句子与实体对,输出关系类型或 (e1, r, e2)。基于模式用正则/模板,基于依存用句法路径。监督 / 远程监督 / 零样本对应不同标注来源;远程监督需应对噪声。关系分类在固定关系集中预测;开放关系抽取自由文本关系,需归一化与对齐。下一章讲实体链接与消歧:把文本中的指称映射到知识库实体。