Chunk-based Chinese Spelling Check with Global Optimization(EMNLP2020)

Chunk-based Chinese Spelling Check with Global Optimization(EMNLP2020)

一.概述

  作者认为,一方面,以往的工作大多只考虑对汉字读音或字形相近的错字进行校正,而没有对视觉上和语音上不相关的错字进行校正;另一方面,pipeline的体系结构被广泛用于处理各个模块中不同类型的拼写错误,这很难优化。

  为此,作者提出:

  1.用语义候选集扩展了传统的混淆集,以涵盖不同类型的错误

  2.提出了一个基于块的(chunk-based))框架来统一纠正单字符和多字符的单词错误

  3.采用全局优化策略来实现句子级的纠错选择

  本文主要贡献如下:

  1.提出了一种全局优化的基于块的解码方法,在统一的框架内纠正单字符和多字符的单词错别字

  2.结合发音、形状和语义混淆集来处理不同的拼写错误

  3.方法在三个基准数据集和一个OCR数据集上实现了新的最先进的性能

二.方法概述

在这里插入图片描述

  上图是所提方法的流程。本文提出的拼写检查方法采用基于块的解码方法,统一处理单字和多字单词。在解码过程中,根据输入句子和部分解码后的句子动态生成可变长度的候选词。为了选择最佳的校正结果,采用全局排序优化方法将不同的特征组合在一起。

1.基于块解码(Chunk-based Decoding)

  基于块的解码将单字符单词、多字符单词、短语和习语等同地视为块。它提供了一个统一的框架,我们可以在其中轻松地扩展候选生成方法。该框架还使全局优化的实现成为可能。 给定一个具有n个字符的输入句子=[c1,c2,…,cn],基于块的解码同时逐步分块和校正输入的句子。 它试图找到候选块的最佳组合,并以从左到右的方式将输入句子改写为正确形式:

在这里插入图片描述

这里的f 是一个评分函数,s是输入的句子,L(s)表示s的候选块的所有可能组合的集合。
在这里插入图片描述

  如上图所示,解码用的是beam search,beam利用空的校正(empty correction)进行初始化。在循环中,我们用动态生成的候选块扩展beam中每个部分解码的校正。一个评分模型被用来给每个校正一个置信度分数。在每个循环结束时,我们对beam进行排序并以低置信度对校正进行剪枝以减少搜索空间。最后,在beam的每次校正对整个输入句子进行解码后,我们输出最高置信度的校正作为最终结果。

  本质上,解码阶段联合搜索所有可能的分块及其校正。从另一个角度来看,解码逐渐消除歧义并改写句子。

2.候选生成(Candidate Generation)

  之前的工作针对候选词的检索是根据发音或形状混淆集。为了处理单字符单词拼写错误和视觉上或音系上无关的拼写错误,我们将发音和形状混淆集扩展为语义混淆集。

  候选生成模块假定输入句子中的每个字符都可能拼写错误。根据三个方面的混淆集,我们生成了所有可能的块候选,用于部分解码的校正。给定词汇表V、输入句子s和起始位置i,我们将从i开始且在最大长度范围内的字符块视为潜在的打字错误,并生成可能的校正候选项:在这里插入图片描述

发音:给定一个字符块chunkij = [ci,···,cj]从句子s中的第i个字符到第j个字符,我们将chunkij转换为它的拼音,并从V中检索发音相似的所有候选字符。

形状:除了发音,我们还考虑了候选人的形状相似。在chunkij中,我们用视觉上相似的字符替换字符,并保留可以在V中找到的候选字符。在实践中,为了在速度和质量之间取得平衡,我们只考虑与chunkij有1次编辑距离(1次替换)的候选项。

语义:除了音似和形似外,这里也利用语言模型根据上下文信息检索语义上合理的候选词。这里利用masked language model作为语言模型,并在CSC训练数据上对预训练的masked 模型进行微调,并使用每个字符的前k预测作为语义混淆集。对于候选词的生成,我们将chunkij中的每个字符替换为语义相似的字符,并保留在V中可以找到的候选词。与形状混淆集类似,在实践中,我们只考虑与chunkij有1个编辑距离(1个替换)的候选项。

3.校正选择(Correction Selection)

  这里将介绍校正选择的训练策略和我们用于全局优化的特征。之前的大部分工作都遵循噪声信道模型,该模型将纠错任务表述为:
在这里插入图片描述

其中s是输入句子,s^表示可能的校正。该公式可以通过贝叶斯规则进一步改写为:
在这里插入图片描述

其中p(s|s)和p( s)分别为错误模型概率和句子概率。然后我们忽略p(s)因为它对每个s^都是常数,然后取对数:

在这里插入图片描述

该公式将错误模型概率与句子概率以对数形式结合为线性模型。在实践中,错误模型和句子概率是复杂的。在实验中,我们使用一组特征,并采用线性模型作为打分函数进行近似。

在这里插入图片描述

其中wi是第i个特征feati的权重。

  下表列出了我们用于校正选择的特征及其描述。

  其中ed和pyed通过字符级和发音级来计算纠错句和输入句的相似度。较长的数据块通常比较短的数据块更明确,因此使用较少n-chunk的校正通常更合理。wlm用于检查修正的流畅性。n-py, n-shape和n-lm为不同的混淆集分配权重。cem用于对字符级错误概率进行建模。我们直接使用语义混淆集中经过微调的掩码语言模型(masked language model)作为错误模型。当一个块字符[ci,···,cj]被[ c^i,···,c ^j]替换,我们计算块级(chunk-level)cem近似为:

  其中p( ck|ck,s)是在给定输入句子s的情况下用ck替换ck的概率。

  对于不同特征的组合,我们采用最小错误率训练(MERT)算法。给定前n个输出,MERT算法通过学习将解码后的句子根据与金句的相似度重新排序来优化评分函数。MERT算法不是局部排序,而是直接通过句子级指标度量相似性,以实现全局优化。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/882874.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用 Nuxt Kit 的构建器 API 来扩展配置

title: 使用 Nuxt Kit 的构建器 API 来扩展配置 date: 2024/9/24 updated: 2024/9/24 author: cmdragon excerpt: 摘要:本文详细介绍了如何使用 Nuxt Kit 的构建器 API 来扩展和定制 Nuxt 3 项目的 webpack 和 Vite 构建配置,包括扩展Webpack和Vite配置、添加自定义插件、…

nginx如何拦截未经授权的跳转

nginx如何拦截未经授权的跳转 背景准备好一个网站准备好引用网站配置nginx拦截效果 背景 在现实工作中往往有一些企业或人未取得授权但是转载或挂载我们的网址。那么有些要求严格或者有其他原因的情况下不希望这些链接正常访问。所以就有了这样的需求。前提是咱们的网站什么的是…

如何把python(.py或.ipynb)文件打包成可运行的.exe文件?

将 Python 程序打包成可执行的 .exe 文件,通常使用工具如 PyInstaller。这是一个常用的 Python 打包工具,可以将 Python 程序打包成独立的可执行文件,即使没有安装 Python 也能运行。 步骤: 1. 安装 PyInstaller 使用 conda 安…

速通LLaMA3:《The Llama 3 Herd of Models》全文解读

文章目录 概览论文开篇IntroductionGeneral OverviewPre-TrainingPre-Training DataModel ArchitectureInfrastructure, Scaling, and EfficiencyTraining Recipe Post-TrainingResultsVision ExperimentsSpeech Experiments⭐Related WorkConclusionLlama 3 模型中的数学原理1…

docker搭建个人网盘,支持多种格式,还能画图,一键部署

1&#xff09;效果 2&#xff09;步骤 2.1&#xff09;docker安装 docker脚本 bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrorsmain/DockerInstallation.sh)docker-compose脚本 curl -L "https://github.com/docker/compose/releases/late…

【计网】从零开始掌握序列化 --- 实现网络计算器项目

​​​请各位保持头脑清醒&#xff0c; ​​​读些好书&#xff0c;做点有用的事&#xff0c; ​​​快快乐乐地生活。 ​​​ --- 斯蒂芬金 《肖申克的救赎》--- 从零开始掌握序列化 1 知识回顾2 服务器框架3 客户端框架4 运行测试 1 知识回顾 前面两篇文章学习中基础知识…

蓝队技能-应急响应篇Web内存马查杀JVM分析Class提取诊断反编译日志定性

知识点&#xff1a; 1、应急响应-Web内存马-定性&排查 2、应急响应-Web内存马-分析&日志 注&#xff1a;传统WEB类型的内存马只要网站重启后就清除了。 演示案例-蓝队技能-JAVA Web内存马-JVM分析&日志URL&内存查杀 0、环境搭建 参考地址&#xff1a;http…

常见统计量与其抽样分布

什么是统计量 我们首先给出统计量的定义:设 X 1 , X 2 , ⋯ , X n X_1,X_2,\cdots,X_n X1​,X2​,⋯,Xn​ 为来自于总体X的一个样本&#xff0c; g ( X 1 , X 2 , ⋯ , X n ) g(X_1,X_2,\cdots,X_n) g(X1​,X2​,⋯,Xn​) 为关于 X 1 , X 2 , ⋯ , X n X_1,X_2,\cdots,X_n X…

Python | Leetcode Python题解之第434题字符串中的单词数

题目&#xff1a; 题解&#xff1a; class Solution:def countSegments(self, s):segment_count 0for i in range(len(s)):if (i 0 or s[i - 1] ) and s[i] ! :segment_count 1return segment_count

【JS】严格模式/非严格模式的区别

JS的严格模式和非严格模式 js运行有两种模式&#xff1a;一种是普通模式&#xff1b;一种是严格模式。 严格模式是ES5添加的&#xff0c;是比普通模式多一部分的js规则。如果在ES5之前js解析引擎&#xff0c;会忽略严格模式。 js一般默认是普通模式&#xff0c;ES6的模块和Cla…

数据结构 ——— 数组 nums 包含了从 0 到 n 的所有整数,但是其中缺失了一个,请编写代码找出缺失的整数,并且在O(N)时间内完成

目录 题目要求 代码实现 方法1&#xff08;异或法&#xff09;&#xff1a; 异或算法的时间复杂度&#xff1a; 方法2&#xff08;等差数列公式&#xff09;&#xff1a; 等差数列公式的时间复杂度&#xff1a; 题目要求 整型数组 nums 包含了从 0 到 n 的所有整数&…

VPN概述

目录 定义&#xff1a; VPN的分类 VPN的主要应用场景 GRE VPN概念 GRE VPN的优缺点 GRE VPN应用场景和配置 GRE VPN配置流程 Router A&#xff1a; Router B&#xff1a; 定义&#xff1a; 虚拟专用网络(VPN)是一种通过公用网络线路建立私有网络&#xff0c;用于传输私…

UE学习篇ContentExample解读------Blueprint_Communication-上

文章目录 总览描述批次阅览1.1 Basic communication with a target blueprint1.2 Basic communication via actor casting1.3 Blueprint communication via actor casting to child Blueprint1.4 Communicating with all actors of a specific class 概念总结致谢&#xff1a; …

VulnHub-Narak靶机笔记

Narak靶机笔记 概述 Narak是一台Vulnhub的靶机&#xff0c;其中有简单的tftp和webdav的利用&#xff0c;以及motd文件的一些知识 靶机地址&#xff1a; https://pan.baidu.com/s/1PbPrGJQHxsvGYrAN1k1New?pwda7kv 提取码: a7kv 当然你也可以去Vulnhub官网下载 一、nmap扫…

【专题】2024年中国白酒行业数字化转型研究报告合集PDF分享(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p37755 消费人群趋于年轻化&#xff0c;消费需求迈向健康化&#xff0c;消费场景与渠道走向多元化&#xff0c;这些因素共同驱动企业凭借数据能力来适应市场的变化。从消费市场来看&#xff0c;消费群体、需求、场景及渠道皆展现出与…

PhpStudy | PHP 版本切换流程

关注这个软件的其他相关笔记&#xff1a;PhpStudy —— README-CSDN博客 在使用多样化的 PHP Web 应用程序时&#xff0c;选择合适的 PHP 版本至关重要。例如&#xff0c;一些老旧的应用程序可能是基于早期版本的 PHP 开发的&#xff0c;如果使用最新版本的 PHP 来运行&#xf…

【YOLO学习】YOLOv1详解

文章目录 1. 概述2. 算法流程3. 网络结构4. 损失函数 1. 概述 1. YOLO 的全称是 You Only Look Once: Unified, Real-Time Object Detection。YOLOv1 的核心思想就是利用整张图作为网络的输入&#xff0c;直接在输出层回归 bounding box 的位置和 bounding box 所属的类别。简单…

执行网络攻击模拟的 7 个步骤

在进攻和防守策略方面&#xff0c;我们可以从足球队和美式足球队身上学到很多东西。球员们会分析对方球队的策略&#xff0c;找出弱点&#xff0c;相应地调整进攻策略&#xff0c;最重要的是&#xff0c;练习、练习、再练习。作为最低要求&#xff0c;网络安全部门也应该这样做…

论文笔记(四十六)RobotGPT: Robot Manipulation Learning From ChatGPT

xx RobotGPT: Robot Manipulation Learning From ChatGPT 文章概括摘要I. 介绍II. 相关工作III. 方法论A. ChatGPT 提示机器人操作B. 机器人学习 IV. 实验A. 衡量标准B. 实验设置C. 模拟实验D. 真实机器人实验E. AB测试 V. 结论 文章概括 引用&#xff1a; article{jin2024r…

gateway--网关

在微服务架构中&#xff0c;Gateway&#xff08;网关&#xff09;是一个至关重要的组件&#xff0c;它扮演着多种关键角色&#xff0c;包括路由、负载均衡、安全控制、监控和日志记录等。 Gateway网关的作用 统一访问入口&#xff1a; Gateway作为微服务的统一入口&#xff0c…