【NLP】基于“检测器-纠错器”中文文本纠错框架
前言
许多方法将中文拼写纠正(检测和纠正给定中文句子中的错误字符)视为序列标注任务,并在句子对上进行微调。一些方法使用错误检测器作为初步任务,然后将检测结果用于辅助后续的错误纠正过程。然而,现有方法在使用检测器时存在一些问题,如检测器性能不足或检测信息未能有效应用于纠正过程。
难点:中文拼写纠正的难点在于中文是由象形文字组成的,字符的形状和发音与其意义密切相关。此外,中文句子通常由连续的字符组成,没有分隔符,这使得CSC方法必须基于上下文信息来辨别错误,而不是直接从独立的词语中查找拼写错误。
本文介绍的文章提出了一种基于检测器-纠错器框架的方法,用于解决中文拼写纠正问题
方法

检测器

设计一个检测器生成高精度的检测结果和高召回率的检测结果。检测器基于ELECTRA模型,通过字符级别的二分类任务来识别错误字符。检测器的输出是一个概率值,表示每个字符是否为错误字符。
检测器通过设置两个阈值来获得高置信度的检测结果。高阈值用于保留高置信度的预测(高精确度),低阈值用于保留有一定置信度的预测(高召回率)。这么做有以下两个目的:
- 高精度检测结果用于特征融合,通过将检测结果直接加到源句子嵌入中,使错误字符的嵌入与其他字符区分开来。
- 高召回率检测结果用于选择性掩码策略,通过在原始句子中选择性掩码错误检测位置及其上下文,引导模型在纠正过程中考虑这些位置。
纠错器

纠正器**基于BERT模型(如:ELECTRA)**构建,使用预训练的中文BERT模型来初始化纠正器的权重。纠正器利用检测器产生的高精确度和高召回率的检测结果,分别采用错误位置信息融合策略(EP)和选择性掩蔽策略(SM)。
-
错误位置信息融合策略(EP):对于高精确度的检测结果,通过将错误检测结果直接添加到源句子嵌入中,只改变被识别为错误的标记的嵌入。为了更好地处理上下文中的错误,引入了模糊指示(Fuzzy Indication, FI)策略,将狄拉克δ分布映射到高斯分布,以适应离散情况。这种方法有助于模型在处理不精确的错误位置指示时,仍然能够正确地纠正错误。

计算方法:
- 对于每个字符,根据其在句子中的位置和预设的高斯分布参数(μ, δ, s),计算其高斯分布值。
- 如果一个字符被检测为错误,其高斯分布值将显著高于其他字符,从而在嵌入中突出显示这个位置。
-
选择性遮蔽策略(SM):对于高召回率的检测结果,通过掩蔽句子中相应位置的字符(将这些字符替换为特殊的掩蔽标记(如BERT中的[MASK]标记)),并在原始句子后拼接这个部分遮蔽的句子(这样,原始句子提供了完整的上下文信息,而掩蔽的句子部分则提供了需要纠正的明确位置。)。这种方法类似于在原始句子的末尾重写句子,但为不太确定的位置留下空白。这种策略不仅提示模型在预测时考虑错误的上下文,而且在检测结果偏离时,通过扩展掩蔽长度,增强了对检测不精确性的容忍度。

实验





消融实验表明高斯分布在模糊指示中表现最佳,遮蔽长度为5时效果最好。
结论
这篇文章提出了一种基于检测器-纠正器框架的中文拼写纠正方法,通过设计高精度的检测器和高召回率的检测器,并结合特征融合策略和选择性遮蔽策略,提高了错误纠正的效果。本文提出的纠错方法还是属于传统NLP领域的方法,供参考。
参考文献
- A Coin Has Two Sides: A Novel Detector-Corrector Framework for Chinese Spelling Correction,https://arxiv.org/abs/2409.04150v1
相关文章:
【NLP】基于“检测器-纠错器”中文文本纠错框架
前言 许多方法将中文拼写纠正(检测和纠正给定中文句子中的错误字符)视为序列标注任务,并在句子对上进行微调。一些方法使用错误检测器作为初步任务,然后将检测结果用于辅助后续的错误纠正过程。然而,现有方法在使用检…...
vue 中加载 Mapbox GL JS Examples
Mapbox GL JS 示例 1. Mapbox GL JS的基础使用2. style 的使用2.1. 切换 style2.2. 配置一个第三方 style (添加一个Layer)2.3. 配置一个带有 slot 的 style2.4. 创建一个自定义 style 的 layer 类实现 WebGL 内容2.5. 添加Marker2.6. 添加 geojson 格式…...
Vue3 中组件传递 + css 变量的组合
文章目录 需求效果如下图所示代码逻辑代码参考 需求 开发一个箭头组件,根据父组件传递的 props 来修改 css 的颜色 效果如下图所示 代码逻辑 代码 父组件: <Arrow color"red" />子组件: <template><div class&…...
秋分之际,又搭建了一款微信记账本小程序
在这个金色的季节里,每一粒粮食都蕴含着生命的奇迹,每一片叶子都在诉说着成长的故事。秋分之际,又搭建了一款微信记账本小程序。 产品概述 微信记账本小程序是一款便捷的个人财务管理工具,旨在帮助用户轻松记录、管理和分析日常…...
聚合函数count 和 group by
count函数: count(列名) SELECT COUNT(sid) FROM grade 统计列中所有的数值个数,会忽略null值。 count(*)和count(1) SELECT COUNT(*) FROM grade SELECT COUNT(1) FROM grade 统…...
Vue的工程化和element快速入门
vue项目的创建: vue项目的启动方式: vue项目开发流程: 代码示例: <!-- <script>//写数据export default{data(){return{msg: 上海}}} </script> --><script setup>import {ref} from vue;//调用ref函数&…...
【Kubernetes】常见面试题汇总(三十一)
目录 83.简述你知道的 K8s 中几种 Controller 控制器并详述其工作原理。简述 ingress-controller 的工作机制。 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 …...
在 Windows 上安装和配置 NVIDIA 驱动程序、CUDA、cuDNN 和 TensorRT
在 Windows 上安装和配置 NVIDIA 驱动程序、CUDA、cuDNN 和 TensorRT 1. 安装 NVIDIA 图形驱动程序2. 安装 CUDA Toolkit3. 安装 cuDNN4.安装 TensorRT5. 常见问题1. 安装 NVIDIA 图形驱动程序 首先需要安装兼容 CUDA 的 NVIDIA 驱动程序。 下载最新驱动: 访问 NVIDIA 官网,…...
京准电钟:NTP网络校时服务器助力校园体育场馆
京准电钟:NTP网络校时服务器助力校园体育场馆 京准电钟:NTP网络校时服务器助力校园体育场馆 体育场馆数字时钟系统可为观众及工作人员提供标准时间信息,为计算机及其他系统提供标准时间源,为协调场馆各业务系统与各部门的工作提供…...
9.25度小满一面
1.map的底层 2.unorder_map哈希表有自己实现过吗?哈希冲突 3.poll和epoll和select的优缺点、 4.线程同步机制是用来做什么的? 5.五子棋项目问题-- 算法题: 6.LeetCode.重排链表 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0…...
mysql批量修改表前缀
现有表前缀xh,批量修改为fax_需要怎么做 SELECTCONCAT(ALTER TABLE ,table_name, RENAME TO fax_,substring(table_name, 3),;) FROMinformation_schema. TABLES WHEREtable_name LIKE xh_%; 运行之后可以但是生成了一批修改表明的命令 此时批量复制执行就可实现批量修改表前…...
算法复杂度
1. 数据结构前⾔ 1.1数据结构 数据结构是计算机存储数据,组织数据的方式,指相互之间存在⼀种或多种特定关系的数 据元素的集合。常见的数据结构有线性表,树,图,哈希等。 1.2 算法 算法是一种计算过程,输…...
vue到出excel
安装 npm install exceljs npm install file-saver<template><button click"dade66">导出 66</button> </template><script> import ExcelJS from exceljs; import { saveAs } from file-saver;export default {data() {return {data…...
【延时队列的实现方式】
文章目录 延时队列JDK自带的延时队列实现Redis实现延迟队列RabbitMQ 延时队列 延时队列 延时队列是一种特殊类型的队列,它允许元素在特定时间间隔后才能被处理。这种队列在处理具有延迟需求的任务时非常有用,例如定时任务、事件驱动系统等 延时队列在项…...
Fyne ( go跨平台GUI )中文文档- 扩展Fyne (七)
本文档注意参考官网(developer.fyne.io/) 编写, 只保留基本用法 go代码展示为Go 1.16 及更高版本, ide为goland2021.2 这是一个系列文章: Fyne ( go跨平台GUI )中文文档-入门(一)-CSDN博客 Fyne ( go跨平台GUI )中文文档-Fyne总览(二)-CSDN博客 Fyne ( go跨平台GUI…...
Qt (19)【Qt 线程安全 | 互斥锁QMutex QMutexLocker | 条件变量 | 信号量】
阅读导航 引言一、互斥锁1. QMutex(1)基本概念(2)使用示例基本需求⭕thread.h⭕thread.cpp⭕widget.h⭕widget.cpp 2. QMutexLocker(1)基本概念(2)使用示例 3. QReadWriteLocker、QR…...
Java语法-类和对象(上)
1. 面向对象的初步认识 1.1 什么是面向对象 概念: Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。 1.2 面向对象VS面向过程 如:洗衣服 面向过程: 注重的是洗衣服的过程,少了一个环节也不…...
Presto如何配置资源队列或资源组
Presto的任务队列配置主要涉及到查询队列和资源组的配置,这些配置通常用于管理Presto集群中的查询执行和资源分配。但是注意这两个东西是共存,互补的关系,并不需要纠结那种配置方式更加出色 一、查询队列配置 Presto的查询队列配置主要通过…...
828华为云征文|使用Flexus X实例集成ES搜索引擎
目录 一、应用场景 1.1 Flexus X实例概述 1.2 ES搜索引擎 二、安装相关服务 2.1 安装Elasticsearch7.17.0 2.2 安装kibana7.17.0 三、开通安全组规则 四、整体感受 4.1 Flexus X实例 4.2 使用感觉 一、应用场景 1.1 Flexus X实例概述 Flexus X实例是华为云推出的一款…...
【设计模式-访问者模式】
定义 访问者模式(Visitor Pattern)是一种行为型设计模式,允许你在不修改已有类的情况下向这些类添加新的功能或行为。它通过将操作的执行逻辑从对象的类中分离出来,使得你可以在保持类的封闭性(符合开闭原则ÿ…...
从0到1:手把手教你搭建VSCode(附避坑指南,拒绝报错),全程复制粘贴即可
🔥个人主页:北极的代码(欢迎来访) 🎬作者简介:java后端学习者 ❄️个人专栏:苍穹外卖日记,SSM框架深入,JavaWeb ✨命运的结局尽可永在,不屈的挑战却不可须臾或…...
DIY蓝牙游戏手柄:基于Bluefruit EZ-Key的免编程硬件制作全攻略
1. 项目概述与设计思路几年前,我还在用有线手柄在电脑上打游戏,那根线总是缠来缠去,桌面也乱糟糟的。后来市面上无线手柄选择多了,但总感觉少了点自己动手的乐趣,功能也千篇一律。直到我开始接触像Adafruit Bluefruit …...
Claude模型思维链评估框架claweval:原理、实战与高级定制指南
1. 项目概述:一个专为Claude模型设计的“思维链”评估框架最近在AI应用开发圈里,一个名为claweval的项目开始被频繁提及。如果你正在使用Anthropic的Claude系列模型(无论是Claude 3 Opus、Sonnet还是Haiku)来构建需要复杂推理能力…...
番茄小说下载器终极指南:3分钟打造你的私人数字图书馆
番茄小说下载器终极指南:3分钟打造你的私人数字图书馆 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 你是否曾在深夜追更小说时,突然发现网络连接中断?…...
5分钟快速上手:Windows虚拟显示器终极指南,轻松实现多屏扩展
5分钟快速上手:Windows虚拟显示器终极指南,轻松实现多屏扩展 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd 还在为单显示器工作效率低下而烦恼吗…...
量化交易性能优化:高性能内存管理与计算加速实践
1. 项目概述与核心价值最近在量化交易社区里,一个名为Lexus2016/turbo_quant_memory的项目引起了我的注意。乍一看这个标题,它融合了几个非常吸引人的关键词:“Turbo”(涡轮增压,意指加速)、“Quant”&…...
【Midjourney极简艺术风格终极指南】:20年视觉设计专家亲授3大构图法则、5类禁用提示词与1套可复用Prompt模板
更多请点击: https://intelliparadigm.com 第一章:极简艺术风格的本质与Midjourney适配原理 极简艺术风格并非简单地“减少元素”,而是通过精准的留白、克制的色彩、几何化的形态与高度凝练的视觉语法,实现信息密度与情绪张力的平…...
量子纠错程序的形式化验证方法与工程实践
1. 量子纠错程序验证的核心挑战量子纠错(Quantum Error Correction, QEC)是量子计算实现实用化的关键技术屏障。与传统经典计算不同,量子系统面临着更为复杂的噪声环境:退相干、门操作误差、测量错误等量子特异性噪声会迅速破坏脆…...
【Midjourney Ash印相终极指南】:20年影像算法专家首度公开胶片质感生成的7大隐性参数配置
更多请点击: https://intelliparadigm.com 第一章:Midjourney Ash印相的技术起源与影像哲学本质 Ash印相的算法基因溯源 Ash印相并非凭空诞生的视觉滤镜,而是Midjourney v6模型在latent空间中对“胶片衰变—银盐氧化—时间蚀刻”三重物理过…...
K210实战:三种高效部署kmodel模型至TF卡的进阶方案
1. K210模型部署的痛点与进阶方案概览 第一次用K210做图像识别项目时,最让我头疼的就是模型部署问题。每次修改模型都要反复插拔TF卡,调试过程像在玩打地鼠游戏。后来才发现,基础的拷贝粘贴只是入门操作,真正高效的部署方式能节省…...
