语义角色标注视为依存句法分析任务:探索论元内部的隐式树结构
©作者 | 张宇
单位 | 苏州大学博士生
研究方向 | 句法分析/语义分析
语义角色标注(SRL)是 NLP 中一个基础且重要的任务,主要涉及谓词和论元的识别,以及相应的角色标签标注等等。
最近主流的 SRL 方法主要分为 BIO-based 和 span-based。前者将 SRL 视为序列标注,而后者则是将 SRL 视为对于 <谓词,论元头,论元尾> 这样三元组的预测。然而这两种方法都有一些共有的缺陷,忽视了对于论元内部结构建模。
这种内部结构在直觉上对于 SRL 很有效,例如在上面的图中,谓词 take 对应的论元「out of the market」的标签为 A2,这种关系可以反映在 take 到论元中心词 out 的弧中,此外,该论元的边界也和相应的子树边界完美对应。如果捕捉到内部结构信息,可以有效引导角色标签分类以及论元识别这两个子任务。然而由于 SRL 是一个 shallow parsing task,缺乏层次化的结构标注,这种内部结构还很少被前人工作利用。
基于这些观察,我们提出将平坦论元结构建模为隐式(latent)依存子树。通过这种方式,我们可以方便地将 SRL 归纳成一个依存句法分析任务。基于这种归纳,我们可以无缝利用已有的一些成熟的依存句法分析技术,例如 TreeCRF、高阶建模等等,来进行全局概率推断。我们的方法不需要预先指定谓词以及依存句法树,因此是 end-to-end 的。我们的代码将于近期开源。
论文标题:
Semantic Role Labeling as Dependency Parsing: Exploring Latent Tree Structures Inside Arguments
论文链接:
https://arxiv.org/pdf/2110.06865.pdf
代码链接:
https://github.com/yzhangcs/crfsrl
Methodology
我们的方法主要分为两个阶段:1)通过一定的规则将 SRL 结构转化为依存句法树;2)基于给定的依存句法树学习一个 parser,然后通过后处理过程将预测出的 dependency trees 恢复为 SRL 结构。
上图给出了我们方法的主要步骤。
SRL->Tree
首先是将 SRL 转化成树结构,图 2b 给了一个例子,对于谓词 take,首先我们构建一条根到谓词的弧 0->take,弧标签设为 PRD,接着构建谓词到论元/非论元的子树. 对于一个像「to do more」这样的论元 span,我们连接一条谓词 take 到该论元的弧,将论元标签 A1 设为这条弧的标签,剩下的内部的弧「to do more」我们不做任何假设,将这个部分视为未被 realize 的 latent tree,允许任何连接,并且不分配标签。对于非论元span,操作类似,除了我们将谓词到 span 的标签设为 O(例如 want->.)。
通过上面这种方式,我们将一个 SRL 图转化为了若干个以谓词为根的 partially-observed trees。
Dependency parsing with span-constrained (second-order) TreeCRF
我们使用类似于经典 Biaffine Parser 的架构来学习上面转化得到的树,在打分器后面我们后接了一个 TreeCRF 来进行全局推断,最大化树概率,并进一步提出了一个带兄弟(siblings)信息的二阶拓展。最终训练的目标函数如下:
训练时我们将最大化 SRL 图 g 的概率近似为最大化上述转化得到的依存树概率,并对此按谓词分解,每个谓词对应的依存树概率为:
上面的公式我们通过复杂度为 的 TreeCRF 来计算,得到相应的树概率,其中 latent subtree 在训练过程中会被 marginalize 掉。一个主要的问题是经典的 TreeCRF 考虑的是所有候选树,然而在我们的场景中引入了许多 span 的约束,要求转化出来的依存树应当满足 SRL 的图结构,而这些 span constraints 没法被典型 TreeCRF 达成。
有鉴于此,在本文中我们提出了一个 span-constrained 的 TreeCRF,并将之推广到了二阶的场景,下图给出了相应的 deduction rules。
Recovery
通过上面的方法得到一个句法分析器之后,我们剩下需要做的是利用该分析器预测句法树,并恢复为 SRL 图结构。恢复过程非常简单:
1. 由于弧标签的概率分布和树结构独立,因此我们首先对 0->i 的弧进行分类,对于标签为 PRD 的弧,我们认为 i 是谓词,并解码出剩下的树结构。
2. 从谓词 i 到其他词,我们认为他们是论元 span 的中心词,并以他们为起始,自底向下做遍历,将子树坍缩成一个平坦的谓词。
3. 最终我们收集所有形成的谓词及其论元,得到最终的 SRL 预测 g'。
Experiments
我们在 CoNLL05 和 CoNLL12 两个基准数据集上做实验,下表给出了实验结果:
在不给定谓词的场景下,我们的一阶方法 CRF 以及二阶方法 CRF2o 显著的超越了前人的结构,并且优势在 CoNLL05 out-of-domain Brown 数据上尤为显著. 在给定谓词场景下,CRF2o 使用 BERT 之后在 CoNLL05 Test 上和现有最好的结果 88.8 相近,并在 CoNLL12 上达到 87.57,显著超过了他们的 86.5。使用 RoBERTa 之后,CRF2o 在三个数据上达到了 89.63,83.72 以及 88.32 的 F1 值,达到了新的 state-of-the-art。
特别鸣谢
感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
语义角色标注视为依存句法分析任务:探索论元内部的隐式树结构相关推荐
- 生成句法分析树以及从一个小例子来看词义消歧及语义角色标注
一.生成句法分析树 把一句话按照句法逻辑组织成一棵树,由人来做这件事是可行的,但是由机器来实现是不可思议的,然而算法世界就是这么神奇,把一个十分复杂的过程抽象成仅仅几步操作,甚至不足10行代码,就能让 ...
- 自然语言处理(NLP)之pyltp的介绍与使用(中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注)
pyltp的简介 语言技术平台(LTP)经过哈工大社会计算与信息检索研究中心 11 年的持续研发和推广, 是国内外最具影响力的中文处理基础平台.它提供的功能包括中文分词.词性标注.命名实体识别.依 ...
- 基于依存句法与语义角色标注的事件抽取项目
EventTriplesExtraction 项目地址:https://github.com/liuhuanyong/EventTriplesExtraction EventTriplesExtrac ...
- PaddlePaddle︱开发文档中学习情感分类(CNN、LSTM、双向LSTM)、语义角色标注
PaddlePaddle出教程啦,教程一部分写的很详细,值得学习. 一期涉及新手入门.识别数字.图像分类.词向量.情感分析.语义角色标注.机器翻译.个性化推荐. 二期会有更多的图像内容. 随便,帮国产 ...
- 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 语义角色标注
语义角色标注 本教程源代码目录在book/label_semantic_roles,初次使用请您参考Book文档使用说明. 说明¶ 本教程可支持在 CPU/GPU 环境下运行 Docker镜像支持的C ...
- 自然语言处理基础技术之语义角色标注
今天是总结nlp基础技术的最后一篇,后面开始工具实战篇,我觉得实践对新手小白入门是相当有帮助的~~ #语义角色标注定义: 维基百科定义:Semantic role labeling, sometime ...
- 语义角色标注 Semantic Role Labeling(SRL) 初探(整理英文tutorial)
语义角色标注 本文链接 最近调研了一下语义角色标注,记录如下 将语言信息结构化,方便计算机理解句子中蕴含的语义信息. 语义角色标注 (Semantic Role Labeling, SRL) 是一种浅 ...
- 语音助手——QU——语义角色标注及其应用
这一章我们来讲一下语义角色标注(Semantic Role Labeling (SRL))以及其在语音助手中的应用,主要分为4部分:什么是语义角色标注.为什么需要语义角色标注.如何实现.语音助手中的应 ...
- 什么是语义角色标注?
01 定义 先来看看语义角色标注在维基百科上的定义:Semantic role labeling, sometimes also called shallow semantic parsing, is ...
最新文章
- centos配置-java-php-mysql【转载参考】
- python 吧-做为IT人的你 趁年轻学点Python吧
- ROS 总结(二):创建URDF模型
- Python网络_TCP/IP简介
- Python机器学习---2.聚类分析代码部分
- 【渝粤题库】广东开放大学 学前教育学 形成性考核
- 计算机网络的含义是什么意思,互联网的基本含义是什么
- Android之自定义checkbox样式
- qt连接mysql创建表_用Qt访问数据库写一个 表格
- 开源 CMS Drupal 修复 XSS 和开放重定向漏洞
- 011—MySQL 事务
- 计算机网络领悟摩尔定,计算机网络等133信息技术展望P15-P17.PPT
- Linux 常用操作命令大全(最后更新时间:2022年1月)
- 计算电磁学基础知识及数值方法汇总
- CCF CSP 归一化处理
- 智能指针的标准之争:Boost vs. Loki [转]
- H3C设备查看信息命令
- android选择相册图片并显示
- 【作业2.0】HansBug的5-7次OO作业分析与小结,以及一些个人体会
- 图形学笔记(二)——线画图元
热门文章
- centos7 mysql安装教程_centos7环境下MySQL安装教程
- ASP.NET Compilation and Deployment
- Nodejs实现WebSocket通信demo
- 路飞学城Python-Day9
- [Python web开发] Web框架开发基础 (一)
- Linux 下的dd命令使用详解(摘录)
- 为什么做Web开发要选择PHP
- 【JavaScript 1—基础知识点】:宏观概述
- js+php聊天程序
- 服务器配置文档查服务器名称,服务器配置答案资料.doc