中文文本纠错模型_卓寿杰SoulJoy的博客-CSDN博客

标签: | 发表时间:2022-03-30 07:28 | 作者:
出处:https://blog.csdn.net

中文文本纠错任务是一项NLP基础任务,其输入是一个可能含有语法错误的中文句子,输出是一个正确的中文句子。语法错误类型很多,有多字、少字、错别字等,目前最常见的错误类型是错别字。

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

ErnieCSC PaddleNLP模型库实现了百度在ACL 2021上提出结合拼音特征的Softmask策略的中文错别字纠错的下游任务网络,并提供预训练模型,模型结构如下:

在这里插入图片描述
PyTorch实现版本:https://github.com/orangetwo/ernie-csc

相关 [中文 文本 模型] 推荐:

中文文本纠错模型_卓寿杰SoulJoy的博客-CSDN博客

- -
中文文本纠错任务是一项NLP基础任务,其输入是一个可能含有语法错误的中文句子,输出是一个正确的中文句子. 语法错误类型很多,有多字、少字、错别字等,目前最常见的错误类型是错别字. 论文 【ACL 2020】《Spelling Error Correction with Soft-Masked BERT》https://arxiv.org/abs/2005.07421.

[Python] [不分词版]Chinese-Text-Classification: Tensorflow CNN 模型实现的中文文本分类器

- - V2EX
从现在的结果来看,分词的版本( https://www.v2ex.com/t/404977#reply6 )准确率稍微高一点. 项目地址: https://github.com/fendouai/Chinese-Text-Classification. jieba 分词的版本在 master 分支,不分词的版本在 dev 分支.

如何用Python和机器学习训练中文文本情感分类模型?

- - 神刀安全网
利用Python机器学习框架scikit-learn,我们自己做一个分类模型,对中文评论信息做情感分析. 其中还会介绍中文停用词的处理方法. 前些日子,我在微信后台收到了一则读者的留言. 我一下子有些懵——这怎么还带点播了呢. 但是旋即我醒悟过来,好像是我自己之前挖了个坑. 如何用Python从海量文本抽取主题.

SQuAD文本理解挑战赛十大模型解读

- - 机器之心
在斯坦福大学发起的 SQuAD(Stanford Question Answering Dataset)文本理解挑战赛中,微软亚洲研究院和阿里巴巴的 R-NET 模型和 SLQA 模型在 EM 值(表示预测答案和真实答案完全匹配)上分别以 82.650 和 82.440 的成绩率先超过人类(82.304).

中文文本处理简要介绍

- - 统计之都
本文作者李绳,博客地址 http://acepor.github.io/. 一位文科生曾励志成为语言学家. 出国后阴差阳错成了博士候选人. 三年后交完论文对学术彻底失望. 回国后误打误撞成了数据科学家. 作为一个处理自然语言数据的团队,我们在日常工作中要用到不同的工具来预处理中文文本,比如 Jieba 和 Stanford NLP software.

python 中文文本分类 - CSDN博客

- -
3,结构化表示--构建词向量空间. 即已经分好类的文本资料(例如:语料库里是一系列txt文章,这些文章按照主题归入到不同分类的目录中,如 .\art\21.txt). 推荐语料库:复旦中文文本分类语料库,下载链接:http://download.csdn.net/detail/github_36326955/9747927.

一大批中文(BERT等)预训练模型等你认领!

- - 机器之心
预训练模型已经成为了 NLP 领域最重要的资源之一. 当我们拿到一个 NLP 数据集时,首要任务是寻找一个预训练模型. 当然,目前大家会趋同的选择 Google 发布的 BERT 模型 [1]. 不过本文将为大家提供更多的中文预训练模型的选择. 本文将介绍如何利用一个预训练模型框架 UER(Universal Encoder Representations)去使用性质各异的中文预训练模型,从而在下游任务上取得比 Google BERT 更好的效果.

一种利用ngram模型来消除歧义的中文分词方法

- - 杨尚川的个人页面
这里的 歧义是指:同样的一句话,可能有两种或者更多的切分方法,这些切分结果,有的正确,有的不正确. 消除歧义的目的就是从切分结果中挑选切分正确的. 假设我们要切分句子:结婚的和尚未结婚的,使用 逆向最大匹配和 正向最大匹配算法的结果如下:. 逆向最大匹配:[结婚, 的, 和, 尚未, 结婚, 的] 正向最大匹配:[结婚, 的, 和尚, 未结, 婚, 的].

实测超轻量中文OCR开源项目,总模型仅17M

- - IT瘾-tuicool
光学字符识别(OCR)现在已经有很广泛的应用了,很多开源项目都会嵌入已有的 OCR 项目来扩展能力,例如 12306 开源抢票软件,它就会调用其它开源 OCR 服务来识别验证码. 很多流行的开源项目,其背后或多或少都会出现 OCR 的身影. 如果要说到中文 OCR,像身份证识别、火车票识别都是常规操作,它也可以实现更炫酷的功能,例如翻译笔在书本上滑动一行,自动获取完整的图像,并识别与翻译中文.

EmEditor简体中文便携版:强大文本编辑器

- - 精品绿色便携软件
EmEditor Professional以运行轻巧、敏捷而又功能强大、丰富著称,作为简单好用的文本编辑器, EmEditor支持多种配置,可自定义颜色、字体、工具栏、快捷键、行距等,支持文本列块选择、无限撤消/重做等,是 替代记事本的最佳编辑器. 我最近一直在用EmEditor,其便携性很适合影子系统, 标签窗口也是极方便操作,现提供 EmEditor 11.0.3中文便携版,分别为EmEditor 32位和64位版.