语义角色标注(Semantic Role Labeling,SRL)是一种以句子为单位的浅层语义分析技术。SRL 以句子的谓词为中心,不对句子所包含的语义信息进行深入分析,只分析句子中各成分与谓词之间的关系,即:句子的谓词(Predicate)- 论元(Argument)结构,并用语义角色来描述这些结构关系。在研究中一般都假定谓词是给定的,所要做的就是找出给定谓词的各个论元,并得到它们的语义角色。
语义角色标注(Semantic Role Labeling,SRL)以句子的谓词为中心,不对句子所包含的语义信息进行深入分析,只分析句子中各成分与谓词之间的关系,即:句子的谓词(Predicate)- 论元(Argument)结构,并用语义角色来描述这些结构关系。在研究中一般都假定谓词是给定的,所要做的就是找出给定谓词的各个论元,并得到它们的语义角色。SRL任务的目标是分析出句子描述的事件、事件的参与者(包括施事者、受事者)、事件发生的时间、地点和原因等,是许多自然语言理解任务(如:信息抽取,篇章分析,深度问答等)的一个重要中间步骤。
序列标注任务一般都会采用 BIO 表示方式来定义序列标注的标签集,B 代表句子的开始,I 代表句子中间,O 代表句子结束。通过B、I、O 三种标记将不同的语块赋予不同的标签,例如:对于一个角色为 A 的论元,将它所包含的第一个语块赋予标签 B-A,将它所包含的其它语块赋予标签 I-A,不属于任何论元的语块赋予标签 O。我们继续以上面的这句话为例,图1展示了 BIO 表示方法的执行过程。
与基于语块的SRL方法类似,在本教程中,我们也将SRL看作一个序列标注问题,不同的是,我们只依赖输入文本序列,不依赖任何额外的语法解析结果或是复杂的人造特征,利用深度神经网络构建一个端到端学习的SRL系统。下面,我们以[CoNLL-2004 and CoNLL-2005 Shared Tasks](http://www.cs.upc.edu/~srlconll/)任务中SRL任务的公开数据集为例,实践下面的任务:给定一句话和这句话里的一个谓词,通过序列标注的方式,从句子中找到谓词对应的论元,同时标注它们的语义角色。
序列标注任务只需要考虑输入和输出都是一个序列,而序列形成的图是一个简单的线性链,并且由于我们只是将输入序列作为条件并不做任何条件独立假设,因此输入序列的元素之间并不存在图结构。综上,在序列标注任务中使用的是如图5所示的定义在链式图上的CRF,称之为线性链条件随机场(Linear Chain Conditional Random Field)。
1. Sun W, Sui Z, Wang M, et al. [Chinese semantic role labeling with shallow parsing](http://www.aclweb.org/anthology/D09-1#page=1513)[C]//Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing: Volume 3-Volume 3. Association for Computational Linguistics, 2009: 1475-1483.