全网首讲最详细AMR系统介绍(1):Abstract Meaning Representation(AMR) 的基础表示逻辑;附英文版原 pdf 资料

写在前头

  • 最关键的部分,我都会使用英语单词来表示,为了大家在看原文档的时候能够将概念对齐。
  • 大家可以去看原版的英文资料,这个资料是我从数据集中拷出来的,目前没发现比这个更好的资料,大家如果觉得我的分析和原版有什么出入,以原版为准,我已经上传了,可以免费下载
  • 我会把 AMR 相关的所有内容写成一个系列,大家可以等后面的内容更新,也可以自己去看原版,我相信吸收会更好
  • 我的描述很多时候并不 100% 准确,但是会帮助你更好的理解,因为原版中很多晦涩的表示可能让你摸不着头脑,我尝试写的更详细、生动一些,希望能帮助理解。

AMR 定义

  • AMR 全称 abstract meaning representation,是对语言的一种表示方法,他并不表示单个的句子,而是着重表示句子中的逻辑,也就是说他不存在 语法单词 的概念,只有 semantic relationconcept 的概念,多个 concept 之间被 semantic relation 连接起来,当然为了方便理解,你也可以认为 concept 就充当了单词的角色,而 semantic relation 充当了语法的角色,但是不要仅限于这种想法,否则不利于后面的理解。
  • AMR在句子中捕捉“谁在对谁做什么”。每个句子都表示为一个有根、有向、无环的图(graph),在边(每条边代表一个语义关系 semantic relation) 和叶(每个叶子节点代表一个 concept) 都有标签。
  • AMR 是一个叫做 “OntoNote” 项目的产物,AMR 中的所有的 predicate sense(谓词词义), semantic roles(语义角色) 都继承自 OntoNote

Example

  • graph 表示
    在这里插入图片描述

    1. 首先弄清楚两个重要的概念:predicate-argument (述词论元结构),所谓的 predicate 可以叫做谓词/述词, argument 叫论元,也可以叫参数。然后看 graph 中的每个节点(node) 都是有 instance 和 若干个 ARGx 构成的,你可以粗暴地认为 ARGx 是围绕 instance 展开的。
    2. 比如根节点(root)你可以看到:扮演 instance 角色的是 want,而 ARG0, ARG1 分别又产生了两个子图subgraph,他们一直这样发展下去直到 叶子节点 结束
    3. 对待任何一级的节点,我们都把 instance 作为主要部分,ARG0, ARG1 分别看作是 instance施事方受事方,具体一点,如果只看 root 结点涉及的内容(instance, ARG0, ARG1),这里面蕴含的逻辑关系就可以表示为 ARG0 -> want -> ARG1 这么一个简单的逻辑。
    4. 如果我们关注 整个 graph 中所有的节点(在每个节点中先找出 instance,然后再把 ARG0, ARG1 的逻辑连起来) 就会发现,呈现的其实是这样一种逻辑:boy -> want -> believe, girl -> believe -> boy,又因为这个逻辑链中两次出现的 boy 是同一个(没有进行区分)因此这句话的逻辑如果变成英语就是:the boy wants the girl to believe himself,但是能表示这个逻辑的句子有很多,每一句包含相同含义的话都可以作为这个 AMR 的 文字表示。
  • AMR 表示
    在这里插入图片描述

    • 这个表示方法与上面的图完全一致,只是将其用 AMR 的方式(一堆括号和符号表示)了,你不需要再去对着图找每一个叶子节点,你可以在这个 AMR 的表示中得到任何你想要的关系。你自己读一下看看

      • boy -> want -> believe, girl -> believe -> boy
      • 还有一点需要很注意,就是每一级的表示中的 ARG0, ARG1 都是对应 当前级别 的内容的(want 下面有 ARG0, ARG1 这是属于 want 这个级别的, beileve 下面也有 ARG0, ARG1 这是属于 believe 这个级别的),比如 :ARG1 b:ARG1 (b2 / believe-01) 虽然都是 ARG1 但没有任何关系。
    • 相信你还有如下疑问:

      • want-01 为啥后面跟个后缀 01
      • (w / want-01) 这个 w / 又是什么
      • 为什么 :ARG1 b 不写成 :ARG1 (b / boy)
  • want-01 代表我们采用的是 want 的第一个含义,want 的所有含义都被预先定义好了
  • (w / want-01) 相当于: instance(w, want-01) 其中 wvariablewant 这个谓词的一个实例(instance),因为 AMR 是一种抽象表示,每个成分都需要进行实例化(这有点像面向对象编程中每个类在进行实例化之后才能进行操作)
  • :ARG1 b 中的 b 因为是 boy 的实例化 variable 而这个variable 在之前已经实例化过了,所以直接引用之前那个 b 即可,必须要再实例化一遍了
  • want-01 表示的意义是 “想要” 因此,当一个 AMR 对应到一个确定的文本的时候,可以是动词的 want 表示,也可以是名词 desire表示的意义,也可以是形容词 desirous 表示的意义,在这个位置的词的形式并不被局限,
  • 在 AMR 中,不会直接标注某个叶子节点说:“这是一个动词,或者这是一个名词”,相反,会说这是一个 obejct, 那是一个 event,都是这种抽象概念
  • 三元组表示法(一般用在对 AMR 解析任务评估的时候,通过比较生成的 AMR 的三元组是否符合标准来评估 AMR 的解析算法的效果)
    在这里插入图片描述

  • AMR 的表示是将代词之类的全部抛弃(不出现在 AMR 的 graph 中)
    在这里插入图片描述

    • 按照我们上述的知识,我们知道这个想表示的逻辑是:girl -> adjust -> machine 所以生成的句子可以是:
      在这里插入图片描述
    • 首先这些 made, to 这些词全部不表示在 AMR 中,当然你在 对齐 的时候可以加上这些内容来构成符合 AMR 逻辑的完整的句子
    • 我们上面也说了,虽然在 AMR 中我们表示的是 adjust 这个词,但是真正在 对齐 的时候,我们可以给他不同的形式:ajust, adjustment, be ajusted by 只要符合 AMR 描述的逻辑即可

对齐 Alignment

  • 你会在 AMR 相关的很多文献和数据集中发现 alignment 这个词汇,那么什么是对齐呢?
  • 很简单,就是我们刚才说的,每个 AMR 表示的逻辑是一句话中最重要的部分,但是其他的部分并没有一个标准答案。
  • 在深度学习训练 AMR 解析任务的时候(就是给定一个 text,让 seq2seq 模型把这个 text 转化成一个 AMR 结构的输出)或者进行 AMR-to-text 的任务(训练一个 seq2seq 模型让其输入是一个 AMR 结构的数据,输出是一个对应的文本)的时候,由于进行的是 supervised 训练,所以肯定一个 AMR 要给他一个固定的 text 作为 label。
  • 比如还是上面的例子:
    在这里插入图片描述
    • 我们可以选择下面的其中一句话作为 groundtruth label 进行对齐:
      在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖仔会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值