Releases: yongzhuo/macro-correct
Releases · yongzhuo/macro-correct
v0.0.1
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.训练好的模型对"地得的"等高频错误具有较高的识别率和纠错率;