CoNLL 2009 语义角色标注语料库格式解析

本文描述CoNLL 2009 SRL格式。

原始格式(raw format)

ID FORM LEMMA PLEMMA POS PPOS FEATS PFEAT HEAD PHEAD DEPREL PDEPREL FILLPRED PRED APRED1 APRED2 APRED3
1 同时 同时 同时 AD AD _ _ 3 3 ADV ADV _ _ ADV _ _
2 AD AD _ _ 3 3 ADV ADV _ _ ADV _ _
3 阻止 阻止 阻止 VV VV _ _ 0 0 ROOT ROOT Y 阻止.02 _ _ _
4 欠缴 欠缴 欠缴 VV VV _ _ 6 6 COMP COMP Y 欠缴.01 _ _ _
5 税款 税款 税款 NN NN _ _ 4 4 COMP COMP _ _ _ A1 _
6 DEC DEC _ _ 7 7 RELC RELC _ _ _ _ _
7 纳税人 纳税人 纳税人 NN NN _ _ 3 3 COMP COMP _ _ A1 A0 _
8 出境 出境 出境 VV VV _ _ 3 3 COMP COMP Y 出境.01 A2 _ _
9 PU PU _ _ 3 3 UNK UNK _ _ _ _ _

以P开头的是自动标注的域,将其省略,只保留与SRL相关的域,得到简化的数据:

ID FORM HEAD FILLPRED PRED APRED1 APRED2 APRED3
1 同时 3 _ _ ADV _ _
2 3 _ _ ADV _ _
3 阻止 0 Y 阻止.02 _ _ _
4 欠缴 6 Y 欠缴.01 _ _ _
5 税款 4 _ _ _ A1 _
6 7 _ _ _ _ _
7 纳税人 3 _ _ A1 A0 _
8 出境 3 Y 出境.01 A2 _ _
9 3 _ _ _ _ _

这其实是dependency based的SRL,因为annotation发生在单个token上。除此之外,还存在一种SRL是span based的,亦即论元为一个span。这些语料应该都是基于树库标注的,虽然我不太清楚细节,但我猜span based SRL是直接从短语结构树上转换来的。

其实dependency based SRL是可以转换为span based的,具体做法是将head的子树作为span。在实用性上,我更倾向于span based SRL。

当然,学术界还存在一种简化的setting叫做Pre-identified Predicates,也就是提前给定了golden 谓词,这样就比较无趣了。

可视化(LTP)

download

解析步骤

  1. 检查FILLPRED列,若为Y,则该行词语为谓词(predicate)。
  2. 遍历每个谓词,对第i个谓词,寻找它的论元(argument):
    1. 遍历每行的第14+i列(即APREDs),若不为空,创建空白新论元。以该空白新论元为head,执行下述递归:
      1. 将head对应的词语加入argument
      2. 递归head的dependents。这里递归的目的是将head的子树作为argument。

解析结果

Pred:阻止
Arguments:
Type: ADV | Form: 同时 
Type: ADV | Form: 将 
Type: A1 | Form: 欠缴 税款 的 纳税人 
Type: A2 | Form: 出境 

Pred:欠缴
Arguments:
Type: A1 | Form: 税款 
Type: A0 | Form: 欠缴 税款 的 纳税人 

Pred:出境
Arguments:

这里的解析结果与CPB的标注是一致的:

	  <arg n="0">
	  *pro* 
	  </arg>
	  <arg n="M" f="ADV">
	  同时 
	  </arg>
	  <arg n="M" f="ADV">
	  将 
	  </arg>
	  <V/>
	  <arg n="1">
	  *OP* (*T*-3)->(纳税人) 欠缴 税款 的 纳税人 
	  </arg>
	  <arg n="2">
	  *PRO* 出境 
	  </arg>

疑问

上述方法的结果与LTP不同:

同时 []
将 []
阻止 [('ARGM-ADV', 1, 1), ('ARGM-ADV', 2, 2), ('A1', 4, 7), ('A2', 8, 8)]
欠缴 [('A1', 5, 5), ('A0', 7, 7)]
税款 []
的 []
纳税人 []
出境 [('A0', 4, 7)]
。 []

找不到出境的论元(APRED3为空),推测LTP对训练数据经过了某些进一步的处理。例如,对“解析步骤”做如下修改,即可得到一致的解析结果:

  1. 遍历子树的ID必须大于谓词的ID,以此过滤谓词“欠缴”的A0“纳税人”的子树(“欠缴”)
  2. 若子树为空(“出境”没有子树),则以谓词到head之间的区域作为论元。

从短语结构树的观点出发,仔细观察下图:

“阻止A0出境”恰好是VV-OBJ-VV结构,为fix2提供了依据。

这个句子在OntoNotes中也有收录,见ontonotes-release-5.0/data/files/data/chinese/annotations/nw/xinhua/00/chtb_0083.prop

nw/xinhua/00/chtb_0083@0083@xinhua@nw@ch@on 4 3 gold 阻止-v 阻止.02 ----- 3:0-rel 0:1-ARG0 1:1-ARGM-ADV 2:1-ARGM-ADV 4:3-ARG1 10:2-ARG2
nw/xinhua/00/chtb_0083@0083@xinhua@nw@ch@on 4 6 gold 欠缴-v 欠缴.01 ----- 6:0-rel 7:1-ARG1 4:0*5:0*9:1-ARG0
nw/xinhua/00/chtb_0083@0083@xinhua@nw@ch@on 4 11 gold 出境-v 出境.01 ----- 11:0-rel 10:1-ARG0

这种格式是Propbank的私有格式,用短语结构树的terminal下标和height标注argument的span,详见这个文档。利用CoNLL 2012的标注骨架,可以找到对应的标注conll-2012/v4/data/train/data/chinese/annotations/nw/xinhua/00/chtb_0083.v4_gold_conll

nw/xinhua/00/chtb_0083   0   0     同时    AD   (TOP(IP(VP(ADVP*)  -    -   -   -   *    (ARGM-ADV*)        *      *          -
nw/xinhua/00/chtb_0083   0   1      将    AD             (ADVP*)  -    -   -   -   *    (ARGM-ADV*)        *      *          -
nw/xinhua/00/chtb_0083   0   2     阻止    VV               (VP*   -   02   2   -   *           (V*)        *      *          -
nw/xinhua/00/chtb_0083   0   3     欠缴    VV   (NP(CP(CP(IP(VP*   -   01   -   -   *        (ARG1*       (V*)     *        (37
nw/xinhua/00/chtb_0083   0   4     税款    NN             (NP*)))  -    -   -   -   *             *    (ARG1*)     *        (18)
nw/xinhua/00/chtb_0083   0   5      的   DEC                 *))  -    -   -   -   *             *         *      *          -
nw/xinhua/00/chtb_0083   0   6    纳税人    NN              (NP*))  -    -   -   -   *             *)   (ARG0*)     *    (37)|37)
nw/xinhua/00/chtb_0083   0   7     出境    VV         (IP(VP*))))  -   01   -   -   *        (ARG2*)        *    (V*)         -
nw/xinhua/00/chtb_0083   0   8      。    PU                 *))  -    -   -   -   *             *         *      *          -

CoNLL 2012的SRL也显示“出境”没有论元。至此,我倾向于认为LTP在这个样本上输出的是错误的预测。

另外,LTP声称SRL模块训练自CTB,然而CTB并没有SRL标注,只有CPB、OntoNotes和一些shared task有。是否是LTP文档的笔误呢?

这些语料的预处理工序目前没有找到开源的,并且也没有从论文中读到相关细节描述,令我感到惊讶。

CoNLL 2005、2009、CTB与CPB的关系

  • CoNLL2005没有中文数据。
  • CoNLL2009有中文数据。
  • CoNLL2009的中文数据来源是CTB 6.0 和 CPB 2.0。CPB在CTB的基础上标注了一层SRL layer。

语料错误

值得注意的是,CoNLL12中有不少标注错误。比如重复的PAS:

mz/sinorama/10/ectb_1030   1    0             A     DT     (TOP(S(NP(NP*            -    -   -   -            *            *       (ARG1*       (ARG0*   (ARG0(ARG0*            *      -
mz/sinorama/10/ectb_1030   1    1         crowd     NN                 *)        crowd   -   -   -            *            *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1    2            of     IN              (PP*            -    -   -   -            *            *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1    3          500      CD        (NP(NP(QP*            -    -   -   -    (CARDINAL)      (ARG0*            *            *             *            *      -
mz/sinorama/10/ectb_1030   1    4            to     IN                 *            -    -   -   -            *            *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1    5          600      CD                 *)           -    -   -   -    (CARDINAL)           *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1    6     Taiwanese     JJ                 *)           -    -   -   -        (NORP)           *)           *            *             *            *      -
mz/sinorama/10/ectb_1030   1    7        living    VBG              (VP*          live  01   2   -            *          (V*)           *            *             *            *      -
mz/sinorama/10/ectb_1030   1    8            in     IN              (PP*            -    -   -   -            *   (ARGM-LOC*            *            *             *            *      -
mz/sinorama/10/ectb_1030   1    9           the     DT              (NP*            -    -   -   -        (GPE*            *            *            *             *            *    (22
mz/sinorama/10/ectb_1030   1   10        United    NNP                 *            -    -   -   -            *            *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1   11        States    NNP            *))))))           -    -   -   -            *)           *)           *)           *)           *))           *     22)
mz/sinorama/10/ectb_1030   1   12        showed    VBD              (VP*          show  02   2   -            *            *          (V*)           *             *            *      -
mz/sinorama/10/ectb_1030   1   13            up     RP             (PRT*)           -    -   -   -            *            *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1   14            to     TO            (S(VP*            -    -   -   -            *            *   (ARGM-PRP*            *             *            *      -
mz/sinorama/10/ectb_1030   1   15         greet     VB           (VP(VP*         greet  01   1   -            *            *            *          (V*)            *            *      -
mz/sinorama/10/ectb_1030   1   16           the     DT              (NP*            -    -   -   -            *            *            *       (ARG1*             *            *    (39
mz/sinorama/10/ectb_1030   1   17     president     NN                 *)    president   -   2   -            *            *            *            *)            *            *     39)
mz/sinorama/10/ectb_1030   1   18            at     IN              (PP*            -    -   -   -            *            *            *   (ARGM-LOC*             *            *      -
mz/sinorama/10/ectb_1030   1   19           his   PRP$              (NP*            -    -   -   -            *            *            *            *             *            *    (39)
mz/sinorama/10/ectb_1030   1   20         hotel     NN               *)))           -    -   -   -            *            *            *            *)            *            *      -
mz/sinorama/10/ectb_1030   1   21           and     CC                 *            -    -   -   -            *            *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1   22       protest     VB              (VP*       protest  01   1   -            *            *            *            *           (V*)           *      -
mz/sinorama/10/ectb_1030   1   23       against     IN              (PP*            -    -   -   -            *            *            *            *        (ARG1*            *      -
mz/sinorama/10/ectb_1030   1   24           the     DT            (S(NP*            -    -   -   -        (ORG*            *            *            *             *       (ARG1*    (22
mz/sinorama/10/ectb_1030   1   25            US    NNP                 *            -    -   -   -            *            *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1   26    government     NN                 *    government   -   1   -            *            *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1   27            's    POS                 *)           -    -   -   -            *)           *            *            *             *            *)    22)
mz/sinorama/10/ectb_1030   1   28             "     ``                 *            -    -   -   -            *            *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1   29        caving    VBG              (VP*          cave  02   4   -            *            *            *            *             *          (V*)     -
mz/sinorama/10/ectb_1030   1   30            in     RP             (PRT*)           -    -   -   -            *            *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1   31            to     IN              (PP*            -    -   -   -            *            *            *            *             *   (ARGM-GOL*      -
mz/sinorama/10/ectb_1030   1   32       Beijing    NNP             (NP*))           -    -   -   -         (GPE)           *            *            *             *            *)   (12)
mz/sinorama/10/ectb_1030   1   33            at     IN              (PP*            -    -   -   -            *            *            *            *             *   (ARGM-MNR*      -
mz/sinorama/10/ectb_1030   1   34           the     DT           (NP(NP*            -    -   -   -            *            *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1   35       expense     NN                 *)      expense   -   2   -            *            *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1   36            of     IN              (PP*            -    -   -   -            *            *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1   37        Taiwan    NNP   (NP*))))))))))))           -    -   -   -         (GPE)           *            *)           *             *)           *)    (0)
mz/sinorama/10/ectb_1030   1   38             .      .                 *            -    -   -   -            *            *            *            *             *            *      -
mz/sinorama/10/ectb_1030   1   39             "     ''                *))           -    -   -   -            *            *            *            *             *            *      -

倒数第三列 (ARG0(ARG0* 引入了两个相同的PAS,可能导致训练程序崩溃。

3 Likes

新版准备提供 “语义角色标注” 了?

对,正在调研SOTA模型。

期待新版本的SRL。