xlxwalex / FCGEC

The Corpus & Code for EMNLP 2022 paper "FCGEC: Fine-Grained Corpus for Chinese Grammatical Error Correction" | FCGEC中文语法纠错语料及STG模型
https://aclanthology.org/2022.findings-emnlp.137
Apache License 2.0
104 stars 12 forks source link

如何获取codaLab 需要的输出格式? #29

Closed canghaiyunfan closed 10 months ago

canghaiyunfan commented 10 months ago

通过inference_singleline.py 获得的输出只包含纠正后的句子,不包含error_flag 和 error_type, 请问如何获取这两个输出? 另外,能否提供下在验证集上模型最终的指标? 非常感谢!

xlxwalex commented 10 months ago

你好,

我们这个仓库仅给出了Correction部分的代码,所以没有error_flagerror_type。如果你只需要Correction部分的指标,由于我们计算指标是独立的,所以你可以在提交的json文件中随便设一个值,比如分别设为0IWO即可。而如果你同时也需要这两个部分的性能指标。由于在我们论文中这两个任务只是Baseline,所以实现结构很简单,都是直接用PLM+全连接层做的,你可以直接写一个模型训练一下就可以了。其中错误类型检测部分可以参考我们的TTI部分,如SwitchModelTTI

验证集上的指标可以参考论文最后的附录的Table11

canghaiyunfan commented 10 months ago

@xlxwalex 感谢解答,测试集上在codalab 提交结果和论文结果保持一致,请问codalab 上计算correction f0.5 是否和ChERRANT 保持一致,我用ChERRANT 在验证集上的指标如下: image

xlxwalex commented 10 months ago

是一致的,你的计算是对所有样本做的吗?还是只对错误样本的?我们在correction任务上是会排除掉正确样本计算指标的

canghaiyunfan commented 10 months ago

上面的结果是对所有样本做的,验证集2000条数据有错误的是1102条,我在1102条数据上重新计算了f 0.5, 跟论文的差别还是比较大 image

xlxwalex commented 10 months ago

可能还会有一些细节处理,比如我们线上的计算会去掉所有的标点符号,这块可能也会导致指标上的差距,你可以试试,如果还有差异,我再检查一下评判脚本的细节

canghaiyunfan commented 10 months ago

去除标点符号确实可以提升指标,但还是差5个点 image

xlxwalex commented 10 months ago

好的,等我晚些时间确定一下细节再回复你

canghaiyunfan commented 10 months ago

@xlxwalex 非常感谢!

xlxwalex commented 10 months ago

你好,

我看了一下线上的脚本,认为没有会造成上面明显性能差异的操作。所以回去翻了一下记录,发现问题出在Table 11中的结果是我们Rebuttal前的结果,在Rebuttal后我们由于又新增了一批数据且修正了一些相同句子在不同数据集出现的问题,重新划分了数据集的很小部分的数据,因此验证集的错误样本数量和现在存在不同的情况,所以指标上会有差异。

而我们在Rebuttal中只对正文结果(也就是论文所有测试集上的指标)进行了重测,没有重测并修改附录部分,所以造成了不一致的情况。Table 11中的结果是在之前数据(Rebuttal前)上训练出的最优模型的预测结果指标,感谢指出这个问题。

如下图所示是原来验证集上的指标情况: B($DO_3L)~E~V}3G% E1DU

因此你在上面测出的结果应该是实际的目前版本的验证集结果

image

再次感谢反馈!

canghaiyunfan commented 10 months ago

@xlxwalex 了解,感谢作者耐心的回答!