HillZhang1999 / SynGEC

Code & data for our EMNLP2022 paper "SynGEC: Syntax-Enhanced Grammatical Error Correction with a Tailored GEC-Oriented Parser"
https://arxiv.org/abs/2210.12484
MIT License
79 stars 14 forks source link

适配 GEC 的句法树与 src 不对应 #33

Closed ymliucs closed 8 months ago

ymliucs commented 8 months ago

convert_gec_data_to_parsing_data_chinese.py src

我 毕 业 以 前 , 一 定 要 取 得 h ##sk 高 级 证 书 。

tgt

我 毕 业 以 前 , 一 定 考 过 h ##sk 高 级 。

conll_chunk

[[1, '我', '_', '_', '_', '_', 9, 'nsubj', '_', '_'], [2, '毕', '_', '_', '_', '_', 3, 'app', '_', '_'], [3, '业', '_', '_', '_', '_', 5, 'lccomp', '_', '_'], [4, '以', '_', '_', '_', '_', 5, 'app', '_', '_'], [5, '前', '_', '_', '_', '_', 9, 'loc', '_', '_'], [6, ',', '_', '_', '_', '_', 9, 'punct', '_', '_'], [7, '一', '_', '_', '_', '_', 8, 'app', '_', '_'], [8, '定', '_', '_', '_', '_', 9, 'advmod', '_', '_'], [9, '要', '_', '_', '_', '_', 0, 'S', '_', '_'], [10, '取', '_', '_', '_', '_', 9, 'S', '_', '_'], [12, 'h', '_', '_', '_', '_', 13, 'app', '_', '_'], [13, '##sk', '_', '_', '_', '_', 15, 'punct', '_', '_'], [14, '高', '_', '_', '_', '_', 15, 'app', '_', '_'], [15, '级', '_', '_', '_', '_', 9, 'dobj', '_', '_'], [16, '。', '_', '_', '_', '_', 9, 'punct', '_', '_']]

m2_chunk

['S 我 毕 业 以 前 , 一 定 考 过 h ##sk 高 级 。', 'T0-A0 我 毕 业 以 前 , 一 定 要 取 得 h ##sk 高 级 证 书 。', 'A 8 10|||S|||要 取 得|||REQUIRED|||-NONE-|||0', 'A 14 14|||M|||证 书|||REQUIRED|||-NONE-|||0']

我期望得到如下句法树

1       我      _       _       _       _       9       nsubj   _       _
2       毕      _       _       _       _       3       app     _       _
3       业      _       _       _       _       5       lccomp  _       _
4       以      _       _       _       _       5       app     _       _
5       前      _       _       _       _       9       loc     _       _
6       ,      _       _       _       _       9       punct   _       _
7       一      _       _       _       _       8       app     _       _
8       定      _       _       _       _       9       advmod  _       _
9       要      _       _       _       _       0       S       _       _
10      取      _       _       _       _       9       S       _       _
11      得      _       _       _       _       12      R       _       _
12      h       _       _       _       _       13      app     _       _
13      ##sk    _       _       _       _       15      punct   _       _
14      高      _       _       _       _       15      app     _       _
15      级      _       _       _       _       9       dobj    _       _
16      证      _       _       _       _       18      R       _       _
17      书      _       _       _       _       18      R       _       _
18      。      _       _       _       _       9       punct   _       _

但是我得到了如下句法树

1       我      _       _       _       _       9       nsubj   _       _
2       毕      _       _       _       _       3       app     _       _
3       业      _       _       _       _       5       lccomp  _       _
4       以      _       _       _       _       5       app     _       _
5       前      _       _       _       _       9       loc     _       _
6       ,      _       _       _       _       9       punct   _       _
7       一      _       _       _       _       8       app     _       _
8       定      _       _       _       _       9       advmod  _       _
9       要      _       _       _       _       0       S       _       _
10      取      _       _       _       _       9       S       _       _
11      得      _       _       _       _       12      R       _       _
12      h       _       _       _       _       13      app     _       _
13      ##sk    _       _       _       _       15      punct   _       _
14      高      _       _       _       _       15      app     _       _
15      级      _       _       _       _       9       dobj    _       _
16      。      _       _       _       _       9       punct   _       _

第二个编辑没有被转换为对应的错误标签,这样的话没有办法训练句法树 我尝试把130行或137或行改为

if pos_id + 2 > len(self.conllx)  + offset:

但是在其他句子上又出现了错误。 请问这种情况如何解决呀