[NLP]中文拼写检纠错
一.基于统计语言模型的中文拼写纠错
1.流程图
2.实验结果
局部方法的实验结果:
全局方法的实验结果:
3.初步结论
缺点:
a.SLM对训练语料的规模和质量敏感。
b.错词检测策略灵活,变化较多。单纯的局部⽅法和全局方法都应该不是一个⾮常合理的方案。
c.检错准确率较低,全局⽅法的评估受错词阈值影响大。
优点:
a.训练速度和推断速度快,模型部署容易。
思考:
a.虽然在测试集上的准确率较低,但是从附录的测试来看,检测效果还不错。原因正在考虑。
b.检错的策略需要深入思考。
c.基于SLM的⽅案检错和纠错分两步走,纠错时目前想到的⽅案有两种,⼀种是基于词语搭配的⽅式,找出错词的前⼀个词作为Key,用Value替换检测出的错词,算句子的PPL或者n-gram得分,其中句子搭配可以基于依存句法分析或者搜狗语料库中给出了一个基于统计的搜索词搭配数据集,或者第三⽅构建的混淆集。
另⼀种⽅案是按照构建训练数据集的方式,基于百度输⼊入法的API,按照错词拼音的全拼和简拼方式 构建K-V字典作为混淆集。
但是无论上述哪一种,检错都是最关键,最重要的一步。
d.考虑到部署,基于SLM的方案尚不成熟,故可能Transformer的方案会OK⼀一些。
e.End-2-End的DL⽅法的确是很棒的,省去了很多细节上的考察和思考,SLM还有很多细节值得去思考。
4.一些测试例子(列表中的词表示检测出的错词)
[‘化夏’] 化夏 ⼦孙 团结一心 。
[‘形像’] 形像 代⾔⼈人 。
[‘影像’] 此事 不 会 影像 中国 关系 ⼤局 。
[‘计画’] 我们 会 优先 推动 五 大 创新 研发 计画 。
[‘惊吁声’] ⼈群 中 发出 一阵 惊吁声 。
二.基于Sequence Tagging的思路
1. 输入输出和模型选择
2.结果评估
三.基于Sequence2Sequence的思路
1.模型选择
模型上选择Transformer,使用Tensor2Tensor作为训练框架。
2.结果评估
四.基于百度文本纠错的API的思路
该思路在单独一篇博客中讲到,参看这篇文章。
总结:从自己构建的数据集测试结果来看,基于生成的思路效果最好,同时可以完成检错和纠错;基于传统统计的方法,检错和纠错需要分开做,需要考虑的细节问题较多,该问题值得继续深入研究。
参考文献:
列举上述三篇参考资料,重在讨论检错策略。在不同的文件中,提出了不同的检错策略。
英语流利说的模型,应用在英文场景下,模型比较简单,但是效果很不错。