语义角色标注

简介

语义角色是指论元在动词所指事件中担任的角色。主要有施事agent、受事patient、客体theme、经验者experiencer、受益者beneficiary、工具instrument、处所location、目标goal和来源source。

这篇论文主要处理在PropBank中的语义角色标注问题,其中的语义角色包括以下:
  • ARG0、ARG1、ARG2、ARG3、ARG4
  • ARGM-LOC(地点)、ARGM-TMP(时间)、ARGM-CND(条件)、ARGM-PRD(修饰)、ARGM-BNF(受益)、ARGM-MNR(方式)、ARGM-DIR(来自)、ARGM-ADV(其他的)、ARGM-DIS、ARGM-FRQ、ARGM-EXT、ARGM-TPC
  • REL(谓语动词)
数据集 数据集是不公开,这里仅说明一下数据集中的标注情况:
  • train.txt 训练数据集
  • dev.txt 开发数据集
  • test.txt 测试数据集(无正确答案)
数据集格式为每行一个句子,每个句子都有且仅有一个命题标签“rel”,并且句子已经完成中文分词。对于每一个词块“A/B/C”,A是该词;B是词性信息;C是论元标记。论元标记信息在测试数据集中没有给出,在训练和开发集中给出。
论元标记由两部分组成:位置标签和标记内容。位置标签共有四种,分别是S-(单词论元词), B-(论元的首词语),E-(论元的尾词) 以及 I-(论元首尾词之间的词)。
对于含有多个词的论元,我们需要正确识别出它的论元标签以及左右边界。比如:
《/PU/B-ARG1 国家/NN/I-ARG1高新/JJ/I-ARG1 技术/NN/I-ARG1\产业/NN/I-ARG1 开发区/NN/I-ARG1管理/NN/I-ARG1 暂行/JJ/I-ARG1\办法/NN/I-ARG1》/PU/E-ARG1
在B-标签和E-标签之间的所有位置标签都是I-标签,在输出cbptest.txt的语义角色标注答案时也应该按照此项原则。
语义角色标注的设计框架 语义角色标注在语义生成树的基础之上进行。语义角色标注的设计框架一共对数据进行四个阶段的处理:生成语义生成树、剪枝、角色识别、角色分类。
生成语义生成树
使用了standford开源的parser工具,生成句子对应的语义生成树(API使用)。例如:
他 同时 希望 台湾 当局 顺应 历史 发展 潮流 , 把握 时机 , 就 两 岸 政治 谈判 作出 积极 回应 和 明智 选择 。

生成的语义生成树为:
语义角色标注
文章图片

剪枝
如果朴素的思路去便利所有的节点,从上面的生成树中可以看出,这样需要处理的节点个数时非常多的。而事实上其中的节点是有冗余的,我们并不需要处理所有的节点。于是,为了如果去掉那些明显不可能是语义角色的节点呢?答案便是剪枝,仅仅处理可能是语义角色的候选节点。
采用 [Xue and Palmer (2004)] 提出的启发式的剪枝方法。
  1. 将位于动词作为当前节点,将当前节点的兄弟节点全部收录到候选节点中
  2. 将当前节点的父节点作为当前节点重复第一步,直至最顶层的节点结束
角色识别
利用一个二分器将收录的候选节点进行分类,是语义角色的节点单标注为1,否则标注为0。
角色分类
利用角色识别的结果,对标注为语义角色的节点进行分类,并标注。这里的分类就是前面的ARG0~4、REL、ARGM-*。
当然,到这里可能会有一个疑问:为什么不把角色识别和角色分类合并到一起,添加非语义角色类不就好了吗?这个思路本身没有任何问题,但是实际的情况是合并的效果并不好。可能的解释是:在最开始的时候先将是不是语义角色这两个大类区分出来后,可以让后后续的角色分类更加高效地进行分类。
特征选择 有了语义角色标注的设计框架之后,其中的角色识别和角色分类都需要为节点设计特征。
这里,本文的标注使用了12中特征:
  • 谓语动词
  • 谓语动词词性
  • 主被动
  • 位置(谓语动词前、后)
  • 关键词
  • 关键词词性
  • 分析类型
  • 上升路径
  • 下降路径
  • 动词的子结构(动词的父节点和该父节点的类型组成)
  • 短语第一个词
  • 短语最后一个词
其中“路径”是指该节点在语义生成树中到谓语动词所在节点的最短路径。
分类器的选择 使用了快速梯度下降法,决策树,k近邻,朴素贝叶斯,支持向量机,最大熵等。以及一些集成方法:bagging和adaboost。
我们使用每个方法训练得到各自的二分类和多分类器,然后二分类器和多分类器组合,看结果选择结果最好的两个组合。
实验结果分析 使用了sklearn包中10种机器学习的方法:SGD(快速梯度下降法),DT(决策树),KNN(k近邻),GNB(高斯),SVM(支持向量机),BAG(Bagging),RF(随机森林),AB(AdaBoost),CD(KNN簇中心),ME(最大熵)。在开发数据集上实验结果的F值如表1中所示:纵向分类器用于二分类器,横向分类器分类用于多分类器。
语义角色标注
文章图片

表中仅红色标出每行中F值超过0.5的最高的三个,红粗体标出每行中高出0.5的F值中最高的F值。
实验结果显示,二分类器和多分类器均使用随机森林在cpbdev.txt的数据集上可以得到最高F值:0.5940(召回率为0.7121,准确率为0.5094)。
参考文献 丁伟伟, 常宝宝. 基于最大熵原则的汉语语义角色分类[J].中文信息学报, 2007, 21(1): 79-84.
刘挺, 车万翔, 李生. 基于最大熵分类器的语义角色标注[J].软件学报, 2007, 18(3): 565-573.
刘怀军, 车万翔, 刘挺. 中文语义角色标注的特征工程[J].中文信息学报, 2007, 21(1): 79-84.
【语义角色标注】Nianwen Xue and Martha Palmer. 2004. Calibrating features for semantic role labeling. In Proceedings of the Conference on Empirical Methods in Natural Language Processing, Barcelona, Spain.

    推荐阅读