上周收到LDC的订阅邮件,由布兰迪斯大学和南京师范大学联合标注的中文抽象意义表示语料库2.0(CAMR 2.0)发布了。于是第一时间下单购买,做一期开箱评测。
抽象意义表示(Abstract Meaning Representation,AMR)是一种将句子的意义(时间地点谁对谁怎样地做了什么)表示为以概念为节点的单源有向无环图的语言学框架。AMR正在引起学术界越来越广泛的关注,已经涌现了许多利用AMR进行机器翻译、QA、关系提取等应用的工作。
虽说AMR中的节点表示概念,但具体说来有两种节点:叶节点为具体概念,内部节点为变量。变量的作用其实是为了标注时方便。比如对于句子“The boy wants the girl to believe him”,对应如下AMR图:
其中,w、b、g等内部节点为变量,叶节点为概念,边上的标签为语义标签。特别地,instance专用于实例化变量。变量的作用仅仅在标注时体现,比如上图对应下列标注:
(w / want-01
:ARG0 (b / boy)
:ARG1 (b2 / believe-01
:ARG0 (g / girl)
:ARG1 b))
其中boy被引用了两次,为了书写方便引入了b变量,变量名后面的“/”是“instance”的简写;believe后面的01表示义项(sense)。这个AMR图去掉变量后,表达的意思是一致的,对应下图:
抽象意义表示最令人称道的一个特点是,不管一个句子在句式词法上如何变化,只要表达的意义不变,就对应唯一的一个AMR图。比如上图对应下列所有句子中的任意一个:
The boy wants the girl to believe him
The boy desires the girl to believe him.
The boy desires to be believed by the girl.
The boy has a desire to be believed by the girl.
The boy’s desire is for the girl to believe him.
The boy is desirous of the girl believing him.
对于这个句子,中文与英文的AMR恰好相同:
抽象意义表示可谓是目前最先进的语义框架,是包括命名实体识别、语义角色标注、实体链接和指代消解等任务的集大成之作。与依存句法树相比,抽象意义表示图中的节点不再是单词而是概念,并且跳出了树的限制。与语义依存图相比,抽象意义表示图不但跳出了单词的限制,而且还可以自由引入句子表面不存在的概念。也就是说,与单词颗粒度的句法语义表示形式相比,抽象意义表示既可以将多个单词抽象为一个概念(命名实体),也可以引入句子表面原本不存在的概念(比如省略成分、维基链接等)。与语义角色标注相比,抽象意义表示保留了谓词和论元的概念,但不再依赖短语结构树,并且能够刻画多个谓词之间的层级关系,而语义角色标注只能提供扁平的结构。
比如,对于上述例子,读者可以结合HanLP2.1的分析结果进行比较:
Dep Tre To Relat Po To SRL PA1 To SRL PA2 To Po 3 4 5 6 7 ─────── ── ───── ── ── ──────── ── ──────── ── ──────────────────────────────────────── ┌─► 男孩 nsubj NN 男孩 ───►ARG0 男孩 男孩 NN───────────────────────────►NP ───┐ ┌┬──┴── 希望 root VV 希望 ╟──►PRED 希望 希望 VV──────────────────────────┐ │ ││ ┌─► 女孩 nsubj NN 女孩 ◄─┐ 女孩 ───►ARG0 女孩 NN───────────►NP ───┐ ├►VP────┤ │└─►├── 相信 ccomp VV 相信 ├►ARG1 相信 ╟──►PRED 相信 VV──────────┐ ├►IP ───┘ ├►IP │ └─► 他 dobj PN 他 ◄─┘ 他 ───►ARG1 他 PN───►NP ───┴►VP ───┘ │ └─────► 。 punct PU 。 。 。 PU──────────────────────────────────┘
目前,英文AMR经过3个版本迭代,标注规模达到60千个句子。此次发布的CAMR2.0在1.0的10千个句子的基础上新增了10千个句子,领域主要覆盖CTB8定义的微博、论坛和新闻领域。
我比较了一下中英文AMR的标注规范,虽然两者的标注规范都是百十来页的文档,但粗略看过去,CAMR做了如下本地化:
-
虽然关系依然是英文,但概念尽量用中文表示。具体说来,句子中可以对齐的概念一律是中文,需要标注者抽象的部分使用英文。
-
针对中文句法引入了大量用于补全省略或隐含部分的概念和关系,比如“卖菜的走了”其实表示“卖菜的人走了”。这一点,对于parser的copy mechanism是个挑战。
-
针对中文词法与句法修订AMR规范,具体包括不考虑形态变化(单复数)、不考虑冠词、增加复句关系(因果、条件、转折)等等。这其实将text entailment也纳入了AMR框架中,所以说AMR是集大成之作。
-
标注文本上的细节,英文的变量名一般是首字母+序号,CAMR改为xn形式,其中n为单词的下标。
本来蝴蝶效应上有用户询问HanLP什么时候可以支持AMR,当时给出的答复是中文语料库体积过小只能用英文翻译数据,没想到这么快就发布了增大的数据集,真是太感谢大家的辛勤工作了。中文语义分析一直偏向于语义依存树/图,但其实在国际上已经是AMR的天下了。希望这个语料库和这篇简介能够加速一下AMR在中文上的应用吧。
最后,HanLP已经发布中文AMR模型,敬请关注GitHub主页或蝴蝶效应。
注1:CAMR项目组翻译为抽象语义表示,但我认为Meaning和Semantic还是有微妙的区别的,Meaning含有“意图”的成分,这切合AMR的根源之一——根据意图生成自然语言。并且“意图”也更贴合AMR的下游应用——QA、NLG之类。
References
CAMR标注规范:https://www.cs.brandeis.edu/~clp/camr/res/CAMR_GL_v1.2.pdf