关系抽取方法
一、关系抽取任务定义
关系抽取(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 若需挂到已有知识库,则交给实体链接(下一章)。
二、基于模式与依存的方法
基于模式(Pattern-based):用正则或模板描述「包含两个实体 slot 与关系关键词」的句式。例如模板「X 创立了 Y」可匹配「爱因斯坦 创立了 相对论」,抽得 (爱因斯坦, 创立, 相对论)。模式可由人工编写或从少量标注中归纳;优点是可解释、无需大量标注,缺点是模式覆盖有限、对新表述敏感。
基于依存(Dependency-based):先对句子做依存句法分析,得到词之间的依存边(主谓、动宾等);再在依存树上找连接实体 e1 与 e2 的路径,路径上的谓词或边类型往往对应关系。例如「Einstein created the theory of relativity」中,Einstein 与 relativity 之间的路径经过 created、theory 等,可归纳出「created」或「created_theory_of」作为关系。依存方法能利用句法结构,对句式变化有一定泛化,但依赖句法分析质量与路径到关系的映射设计。
三、监督、远程监督与零样本关系抽取
用机器学习做关系分类时,按标注从哪来分为三种范式。
监督(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 属性;便于入库与推理。需维护关系列表与标注。
开放关系抽取
关系为自由文本或开放类别;可发现新关系;需后续归一化、聚类或对齐到本体。
一句话: 关系抽取从文本中识别 (e1, relation, e2)。基于模式用模板匹配,基于依存用句法路径上的谓词。监督用人工标注,远程监督用 KB 与语料对齐自动打标,零/少样本用描述或示例泛化。关系分类在预定义关系集中选一;开放关系用自由文本,需后续归一化与对齐。
五、小结
关系抽取输入句子与实体对,输出关系类型或 (e1, r, e2)。基于模式用正则/模板,基于依存用句法路径。监督 / 远程监督 / 零样本对应不同标注来源;远程监督需应对噪声。关系分类在固定关系集中预测;开放关系抽取自由文本关系,需归一化与对齐。下一章讲实体链接与消歧:把文本中的指称映射到知识库实体。