重磅推荐专栏 《Transformers自然语言处理系列教程》 手把手带你深入实践Transformers,轻松构建属于自己的NLP智能应用!
文本纠错任务是一项NLP基础任务,其输入是一个可能含有错误字词的句子,输出是一个正确的中文句子。ASR(语音识别)文本的错误类型很多,有多字、少字、错别字、同音近音字等等。
MacBert 可以参阅 :https://blog.csdn.net/u011239443/article/details/121820752?spm=1001.2014.3001.5502
MacBert4CSC:https://github.com/shibing624/pycorrector/blob/master/pycorrector/macbert/README.md
本项目是 MacBERT 改变网络结构的中文文本纠错模型,可支持 BERT 类模型为 backbone。 在通常 BERT 模型上进行了魔改,追加了一个全连接层作为错误检测即 detection, 与 SoftMaskedBERT 模型不同点在于,本项目中的 MacBERT 中,只是利用 detection 层和 correction 层的 loss 加权得到最终的 loss。不像 SoftmaskedBERT 中需要利用 detection 层的置信概率来作为 correction 的输入权重。
Ernie参阅:https://blog.csdn.net/u011239443/article/details/121820752?spm=1001.2014.3001.5502
上述模型考虑到了文本错字进行纠错,但在中文ASR的场景下,很多情况是由于中文拼音读音相同或相近导致的识别错误。
ErnieCSC PaddleNLP模型库实现了百度在ACL 2021上提出结合拼音特征的Softmask策略的中文错别字纠错的下游任务网络,并提供预训练模型,模型结构如下:
PyTorch实现版本:https://github.com/orangetwo/ernie-csc
上述模型都是在自编码模型上进行检错与纠错。也就是说,文本的输入输出序列长度是不变的,且输出纠错结果的token位置必须是与输入位置对齐的。 这就使得模型无法很好的纠正文本中多字、少字的错误。
微软亚洲研究院的研究员们提出了一种基于编辑对齐(Edit Alignment)的非自回归纠错模型——FastCorrect( NeurIPS 2021)。
论文地址:https://arxiv.org/abs/2105.03842 github:https://github.com/microsoft/NeuralSpeech/tree/master/FastCorrect
模型包含了三个主要部分——编码器、长度预测器和解码器: