文章目录
- 0. Introduction
- 1. SRL定义
- 2. 语料、语义角色
- 3. 传统的SRL方法
- 4. 基于神经网络的SRL
0. Introduction
在自然语言处理中,从分析技术上可以分为下面三种
- 词法分析 lexical analysis
- 句法分析 syntactic parsing
- 语义分析 semantic parsing
1. SRL定义
Semantic Role Labeling (SRL) is defined as the task to recognize arguments for a given predicate and assign semantic role labels to them.
语义角色标注(Semantic Role Labeling,SRL)以句子的谓词
为中心,不对句子所包含的语义信息
进行深入分析,只分析句子中各成分与谓词之间的关系,即句子的谓词(Predicate)
- 论元(Argument)
结构,并用语义角色
来描述这些结构关系。
2. 语料、语义角色
语料:
- 英文的SRL数据集:FrameNet, PropBank
- 中文的SRL数据集:Chinese Proposition Bank(CPB)
语义角色:
- 谓词(predicate): 是整个句子的核心词,一般是动词或者形容词。
- 核心论元(core arguement):表示跟这个谓词直接相关的论元,用来表示,。
- 语义修饰语(semantic adjunct): 表示不与谓词直接相关的论元,可独立存在,用来表示,例如时间、地点、目的、程度、范围等等。
SRL语义角色标签及其含义:
SRL实例:
例子1:
- 谓词:遇到
- 施事:小明
- 受事:小红
- 时间:昨天
- 地点:公园
语义角色标注就是要针对句子中的(核心)谓词来确定其他论元以及其他论元的角色。
3. 传统的SRL方法
传统的SRL系统大多建立在句法分析基础之上,通常包括6个流程:
- 构建一棵句法分析树。例如:图1是对上面例子进行依存句法分析得到的一棵句法树。
- 从句法树上识别出给定谓词的候选论元。
- 候选论元剪除:指从句子中剪除掉不可能成为论元的词。通常采用基于规则的方法,例如遍历语法树、句法依存树等方法。
- 论元识别:指从候选论元中识别出所有属于该谓词的论元。一般看作二值分类问题,采用SVM或者最大熵分类等方法。
- 论元标注:指对识别出的论元赋予语义角色。一般看作多值分类问题,通过多分类得到论元的语义角色标签。
- 后处理:指对标注结果进行进一步处理。例如删除语义重复的论元等。
可以看到,句法分析是基础,并且后续步骤常常会构造的一些人工特征,这些特征往往也来自句法分析。
然而,完全句法分析需要确定句子所包含的全部句法信息,并确定句子各成分之间的关系,是一个非常困难的任务,目前技术下的句法分析准确率并不高,句法分析的细微错误都会导致SRL的错误。为了降低问题的复杂度,同时获得一定的句法结构信息,“浅层句法分析”的思想应运而生。浅层句法分析也称为部分句法分析(partial parsing)或语块划分(chunking)。和完全句法分析得到一颗完整的句法树不同,浅层句法分析只需要识别句子中某些结构相对简单的独立成分,例如:动词短语,这些被识别出来的结构称为语块。为了回避 “无法获得准确率较高的句法树” 所带来的困难,一些研究[1]也提出了基于语块(chunk)的SRL方法。
基于语块的SRL方法将SRL作为一个序列标注问题来解决。
序列标注任务一般都会采用BIO表示方式来定义序列标注的标签集,我们先来介绍这种表示方法。在BIO表示法中,B代表语块的开始,I代表语块的中间,O代表语块结束。通过B、I、O 三种标记将不同的语块赋予不同的标签,例如:对于一个角色为A的论元,将它所包含的第一个语块赋予标签B-A,将它所包含的其它语块赋予标签I-A,不属于任何论元的语块赋予标签O。
我们继续以上面的这句话为例,图2展示了BIO表示方法
从上面的例子可以看到,根据序列标注结果可以直接得到论元的语义角色标注结果,是一个相对简单的过程。这种简单性体现在:
(1)依赖浅层句法分析,降低了句法分析的要求和难度;
(2)没有了候选论元剪除这一步骤;
(3)论元的识别和论元标注是同时实现的。这种一体化处理论元识别和论元标注的方法,简化了流程,降低了错误累积的风险,往往能够取得更好的结果。
4. 基于神经网络的SRL
基于RNN基于Bert(更多详情点击这篇论文-Appendix A.1)