文章目录

  • 0. Introduction
  • 1. SRL定义
  • 2. 语料、语义角色
  • 3. 传统的SRL方法
  • 4. 基于神经网络的SRL


0. Introduction

在自然语言处理中,从分析技术上可以分为下面三种

  1. 词法分析 lexical analysis
  2. 句法分析 syntactic parsing
  3. 语义分析 semantic parsing

hanlp 语义角色标记_hanlp 语义角色标记


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):表示跟这个谓词直接相关的论元,用hanlp 语义角色标记_自然语言处理_02来表示,hanlp 语义角色标记_知识图谱_03
  • 语义修饰语(semantic adjunct): 表示不与谓词直接相关的论元,可独立存在,用hanlp 语义角色标记_自然语言处理_04来表示,例如时间、地点、目的、程度、范围等等。

SRL语义角色标签及其含义:

hanlp 语义角色标记_hanlp 语义角色标记_05


SRL实例:

例子1:

hanlp 语义角色标记_知识图谱_06

  • 谓词:遇到
  • 施事:小明
  • 受事:小红
  • 时间:昨天
  • 地点:公园

语义角色标注就是要针对句子中的(核心)谓词来确定其他论元以及其他论元的角色。

3. 传统的SRL方法

传统的SRL系统大多建立在句法分析基础之上,通常包括6个流程:

hanlp 语义角色标记_句法树_07

  1. 构建一棵句法分析树。例如:图1是对上面例子进行依存句法分析得到的一棵句法树。
  2. hanlp 语义角色标记_句法分析_08

  3. hanlp 语义角色标记_自然语言处理_09
  4. hanlp 语义角色标记_句法分析_10

  5. 从句法树上识别出给定谓词的候选论元。
  6. 候选论元剪除:指从句子中剪除掉不可能成为论元的词。通常采用基于规则的方法,例如遍历语法树、句法依存树等方法。
  7. 论元识别:指从候选论元中识别出所有属于该谓词的论元。一般看作二值分类问题,采用SVM或者最大熵分类等方法。
  8. 论元标注:指对识别出的论元赋予语义角色。一般看作多值分类问题,通过多分类得到论元的语义角色标签。
  9. 后处理:指对标注结果进行进一步处理。例如删除语义重复的论元等。

可以看到,句法分析是基础,并且后续步骤常常会构造的一些人工特征,这些特征往往也来自句法分析。

然而,完全句法分析需要确定句子所包含的全部句法信息,并确定句子各成分之间的关系,是一个非常困难的任务,目前技术下的句法分析准确率并不高,句法分析的细微错误都会导致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表示方法

hanlp 语义角色标记_自然语言处理_11


hanlp 语义角色标记_句法分析_12

从上面的例子可以看到,根据序列标注结果可以直接得到论元的语义角色标注结果,是一个相对简单的过程。这种简单性体现在:

(1)依赖浅层句法分析,降低了句法分析的要求和难度;

(2)没有了候选论元剪除这一步骤;

(3)论元的识别和论元标注是同时实现的。这种一体化处理论元识别和论元标注的方法,简化了流程,降低了错误累积的风险,往往能够取得更好的结果。

4. 基于神经网络的SRL

基于RNN基于Bert更多详情点击这篇论文-Appendix A.1