Skip to content

Releases: yongzhuo/macro-correct

v0.0.1

17 Jan 11:12
Compare
Choose a tag to compare

CSC测评(macro-correct)

一、测评(Test)

1.1 测评数据来源

1.gen_de3.json(5545): '的地得'纠错, 由人民日报/学习强国/chinese-poetry等高质量数据人工生成;
2.lemon_v2.tet.json(1053): relm论文提出的数据, 多领域拼写纠错数据集(7个领域), ; 包括game(GAM), encyclopedia (ENC), contract (COT), medical care(MEC), car (CAR), novel (NOV), and news (NEW)等领域;
3.acc_rmrb.tet.json(4636): 来自NER-199801(人民日报高质量语料);
4.acc_xxqg.tet.json(5000): 来自学习强国网站的高质量语料;
5.gen_passage.tet.json(10000): 源数据为qwen生成的好词好句, 由几乎所有的开源数据汇总的混淆词典生成;
6.textproof.tet.json(1447): NLP竞赛数据, TextProofreadingCompetition;
7.gen_xxqg.tet.json(5000): 源数据为学习强国网站的高质量语料, 由几乎所有的开源数据汇总的混淆词典生成;
8.faspell.dev.json(1000): 视频字幕通过OCR后获取的数据集; 来自爱奇艺的论文faspell;
9.lomo_tet.json(5000): 主要为音似中文拼写纠错数据集; 来自腾讯; 人工标注的数据集CSCD-NS;
10.mcsc_tet.5000.json(5000): 医学拼写纠错; 来自腾讯医典APP的真实历史日志; 注意论文说该数据集只关注医学实体的纠错, 常用字等的纠错并不关注;
11.ecspell.dev.json(1500): 来自ECSpell论文, 包括(law/med/gov)等三个领域;
12.sighan2013.dev.json(1000): 来自sighan13会议;
13.sighan2014.dev.json(1062): 来自sighan14会议;
14.sighan2015.dev.json(1100): 来自sighan15会议;

1.2 测评数据预处理

测评数据都经过 全角转半角,繁简转化,标点符号标准化等操作;

1.3 其他说明

1.指标带common的极为宽松指标, 同开源项目pycorrector的评估指标;
2.指标带strict的极为严格指标, 同开源项目[wangwang110/CSC](https://github.com/wangwang110/CSC);
3.macbert4mdcspell_v1模型为训练使用mdcspell架构+bert的mlm-loss, 但是推理的时候只用bert-mlm;
4.acc_rmrb/acc_xxqg数据集没有错误, 用于评估模型的误纠率(过度纠错);
5.qwen25_1-5b_pycorrector的模型为shibing624/chinese-text-correction-1.5b, 其训练数据包括了lemon_v2/mcsc_tet/ecspell的验证集和测试集, 其他的bert类模型的训练不包括验证集和测试集;

二、重要指标

2.1 F1(common_cor_f1)

model/common_cor_f1 avg gen_de3 lemon_v2 gen_passage text_proof gen_xxqg faspell lomo_tet mcsc_tet ecspell sighan2013 sighan2014 sighan2015
macbert4csc_pycorrector 45.8 42.44 42.89 31.49 46.31 26.06 32.7 44.83 27.93 55.51 70.89 61.72 66.81
bert4csc_v1 62.28 93.73 61.99 44.79 68.0 35.03 48.28 61.8 64.41 79.11 77.66 51.01 61.54
macbert4csc_v1 68.55 96.67 65.63 48.4 75.65 38.43 51.76 70.11 80.63 85.55 81.38 57.63 70.7
macbert4csc_v2 68.6 96.74 66.02 48.26 75.78 38.84 51.91 70.17 80.71 85.61 80.97 58.22 69.95
macbert4mdcspell_v1 71.1 96.42 70.06 52.55 79.61 43.37 53.85 70.9 82.38 87.46 84.2 61.08 71.32
qwen25_1-5b_pycorrector 45.11 27.29 89.48 14.61 83.9 13.84 18.2 36.71 96.29 88.2 36.41 15.64 20.73

2.2 acc(common_cor_acc)

model/common_cor_acc avg gen_de3 lemon_v2 gen_passage text_proof gen_xxqg faspell lomo_tet mcsc_tet ecspell sighan2013 sighan2014 sighan2015
macbert4csc_pycorrector 48.26 26.96 28.68 34.16 55.29 28.38 22.2 60.96 57.16 67.73 55.9 68.93 72.73
bert4csc_v1 60.76 88.21 45.96 43.13 68.97 35.0 34.0 65.86 73.26 81.8 64.5 61.11 67.27
macbert4csc_v1 65.34 93.56 49.76 44.98 74.64 36.1 37.0 73.0 83.6 86.87 69.2 62.62 72.73
macbert4csc_v2 65.22 93.69 50.14 44.92 74.64 36.26 37.0 72.72 83.66 86.93 68.5 62.43 71.73
macbert4mdcspell_v1 67.15 93.09 54.8 47.71 78.09 39.52 38.8 71.92 84.78 88.27 73.2 63.28 72.36
qwen25_1-5b_pycorrector 46.09 15.82 81.29 22.96 82.17 19.04 12.8 50.2 96.4 89.13 22.8 27.87 32.55

2.3 acc(acc_true, thr=0.75)

model/acc avg acc_rmrb acc_xxqg
macbert4csc_pycorrector 99.24 99.22 99.26
bert4csc_v1 98.71 98.36 99.06
macbert4csc_v1 97.72 96.72 98.72
macbert4csc_v2 97.89 96.98 98.8
macbert4mdcspell_v1 97.75 96.51 98.98
qwen25_1-5b_pycorrector 82.0 77.14 86.86

二、结论(Conclusion)

1.macbert4csc_v1/macbert4csc_v2/macbert4mdcspell_v1等模型使用多种领域数据训练, 比较均衡, 也适合作为第一步的预训练模型, 可用于专有领域数据的继续微调;
2.比较macbert4csc_pycorrector/bertbase4csc_v1/macbert4csc_v2/macbert4mdcspell_v1, 观察表2.3, 可以发现训练数据越多, 准确率提升的同时, 误纠率也会稍微高一些;
3.MFT(Mask-Correct)依旧有效, 不过对于数据量足够的情形提升不明显, 可能也是误纠率升高的一个重要原因;
4.训练数据中也存在文言文数据, 训练好的模型也支持文言文纠错;
5.训练好的模型对"地得的"等高频错误具有较高的识别率和纠错率;