中文拼写纠错
本项目只关注Chinese Spelling Check (CSC),不考虑多字少字的语法纠错。
关于语法纠错可参考 https://github.com/HillZhang1999/MuCGEC
常用数据来源:
SIGHAN Bake-off 2013: http://ir.itc.ntnu.edu.tw/lre/sighan7csc.html
SIGHAN Bake-off 2014: http://ir.itc.ntnu.edu.tw/lre/clp14csc.html
SIGHAN Bake-off 2015: http://ir.itc.ntnu.edu.tw/lre/sighan8csc.html
Wang271K: https://github.com/wdimmy/Automatic-Corpus-Generation/tree/master/corpus
sighan13,sighan14,sighan15 包含对应的训练集和测试集,Wang271K是论文利用OCR以及语音识别的方法生成的数据构,仅仅用来训练
使用句子级纠正F1值。
关于句子级别纠正P值,有两种计算方式
- 分母不考虑修改了原句但是与正确句子不同的情况
- 分母考虑修改了原句但是与正确句子不同的情况
使用第一种计算方式得到的结果偏高,这里采用第2种
该指标更为严格(所有修正过的句子都算作P值的分母),论文大都使用该评价指标
各论文指标(不同的论文使用bert取得的结果不一样,可能是使用的预训练数据不一样或者超参数的设置不同)
sighan13结果:
sighan14结果:
sighan15结果:
ChineseBert repo[https://github.com/ShannonAI/ChineseBert]
- 训练:
-
下载ChineseBert放出的预训练模型,放置在本地文件夹(chinese_bert_path 参数)
-
拷贝ChineseBert代码,置于ChineseBert文件夹,并安装ChineseBert所需依赖
-
运行train.sh
- 测试:
运行eval.sh
- 纠正文本:
填入模型路径,运行csc_eval.py 即可
运行结果:
布告栏转眼之间从不起眼的丑小鸭变成了高贵优雅的天鹅!仅管这大改造没有得名,但过程也是很可贵的。
布告栏转眼之间从不起眼的丑小鸭变成了高贵优雅的天鹅!尽管这大改造没有得名,但过程也是很可贵的。
仅->尽
我爱北进天安门
我爱北进天安门
我爱北京天按门
我爱北京天安门
按->安
没过几分钟,救护车来了,发出响亮而清翠的声音
没过几分钟,救护车来了,发出响亮而清翠的声音
我见过一望无际、波澜壮阔的大海;玩赏过水平如镜、诗情画意的西湖;游览过翡翠般的漓江;让我难以忘怀的要数那荷叶飘香、群山坏绕的普者黑。
我见过一望无际、波澜壮阔的大海;玩赏过水平如镜、诗情画意的西湖;游览过翡翠般的漓江;让我难以忘怀的要数那荷叶飘香、群山环绕的普者黑。
坏->环
- 已经训练好的模型:
链接: https://pan.baidu.com/s/1mi0r2Uvv9rd_bfDONNDVYA?pwd=cvak
- 指标:
数据集 | Detection Level | Correction Level |
---|---|---|
sighan13 | p:0.84,r:0.792,F1:0.815 | p:0.823,recall:0.775,F1:0.799 |
new_data | p:0.491,r:0.398,F1:0.44 | p:0.442,recall:0.358,F1:0.396 |
- 注意
- 先用wang2018数据预训练,再用同分布的sighan13微调
- 使用词表的分词方式容易造成拼音和数字错误修正,因此直接使用一个字作为token,不使用基于词表的分词(csc_train_mlm_tok.py)