前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASR文本纠错模型

ASR文本纠错模型

作者头像
小爷毛毛_卓寿杰
发布2022-11-30 11:05:10
2.4K0
发布2022-11-30 11:05:10
举报
文章被收录于专栏:Soul Joy Hub

重磅推荐专栏 《Transformers自然语言处理系列教程》 手把手带你深入实践Transformers,轻松构建属于自己的NLP智能应用!

文本纠错任务是一项NLP基础任务,其输入是一个可能含有错误字词的句子,输出是一个正确的中文句子。ASR(语音识别)文本的错误类型很多,有多字、少字、错别字、同音近音字等等。

1. SoftMaskedBert4CSC

  • 论文 【ACL 2020】《Spelling Error Correction with Soft-Masked BERT》https://arxiv.org/abs/2005.07421
  • Detection 首先,模型的输入是n个中文字符X=(x1,x2,… ,xn)经过embeddings得到的E = (e1,e2,…,en),该embeding是word embeding+position embeding+segment embeding,经过Bi-GRU得到各个字符错误的概率G = (g1,g2,…,gn),其中g在0-1之间,越靠近1表示该字符错误的概率越大,其损失函数为:
  • soft-masked 作者认为只hard-mask了15%字符的Bert不完全具备纠错的能力(至于为啥不具备,作者也没讲清楚,我觉得这里有些牵强),所以作者提出了soft-mask,大致的思路就是利用Detection输出的得分来引导Bert输入的mask,使得得分高(错误概率高)的地方更大概率被mask,公式如下:
  • Correction Correction的输入是经过soft-masked的embeding,输出的是生成的字符,损失函数是:
  • Loss 模型没有分阶段训练,而是直接end-to-end,使用Bert的per-trained模型,损失函数由Detection和Correction线性组合,如下:

2. MacBert4CSC

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 的输入权重。

3. ErnieCSC

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

4. FastCorrect

上述模型都是在自编码模型上进行检错与纠错。也就是说,文本的输入输出序列长度是不变的,且输出纠错结果的token位置必须是与输入位置对齐的。 这就使得模型无法很好的纠正文本中多字、少字的错误。

微软亚洲研究院的研究员们提出了一种基于编辑对齐(Edit Alignment)的非自回归纠错模型——FastCorrect( NeurIPS 2021)

论文地址:https://arxiv.org/abs/2105.03842 github:https://github.com/microsoft/NeuralSpeech/tree/master/FastCorrect

模型包含了三个主要部分——编码器、长度预测器和解码器

  1. 编码器可以学习输入文本的特征,这些特征会被长度预测器和解码器利用。
  2. 长度预测器基于编码器的输出,预测每个输入单词有多少个输出单词与之对应,即 Duration。如果输入单词 Duration 为0,那么没有输出单词与之对应,它也将被删除,如果 Duration 大于1,那么有多个输出单词与之对应,意味着解码器需要插入数个单词
  3. 解码器除了利用编码器的输出之外,还会基于长度预测器的结果,调整输入文本的长度,使之和输出文本长度一致。将长度调整一致后,解码器可以并行地同时解码出所有单词。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. SoftMaskedBert4CSC
  • 2. MacBert4CSC
  • 3. ErnieCSC
  • 4. FastCorrect
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档