本文描述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)
解析步骤
- 检查
FILLPRED
列,若为Y
,则该行词语为谓词(predicate)。 - 遍历每个谓词,对第
i
个谓词,寻找它的论元(argument):- 遍历每行的第
14+i
列(即APREDs
),若不为空,创建空白新论元。以该空白新论元为head,执行下述递归:- 将head对应的词语加入argument
- 递归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对训练数据经过了某些进一步的处理。例如,对“解析步骤”做如下修改,即可得到一致的解析结果:
- 遍历子树的ID必须大于谓词的ID,以此过滤谓词“欠缴”的A0“纳税人”的子树(“欠缴”)
- 若子树为空(“出境”没有子树),则以谓词到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,可能导致训练程序崩溃。