错字修改 | 布署1个中文文文本拼蟹纠错模型

news2025/7/9 11:45:27

内容一览:中文文本错误的种类之一为拼写错误,本篇文章为利用 BART 预训练方法实现中文文本纠错功能的模型部署教程。

关键词:BART 中文拼写纠错 NLP

本文首发自微信公众号:HyperAI超神经

中文文本错误3大障碍:拼写、语法、语义

中文文本纠错是当前自然语言处理领域的一个重要分支,旨在针对中文文本错误等进行检测与纠正。常见的中文文本错误包括拼写错误、语法错误以及语义错误。

1. 拼写错误:

指由于输入法、语音转文字软件等原因导致的用字或用词错误,主要表现为错误使用了同音字、形近字、混消音等,如「天气晴郎–天气晴朗」「时侯–时候」。
中文拼写纠错示例 该任务通常不涉及添/删字词,只涉及替换 输出的句子一般是等长的

2. 语法错误:

指由于输入法、手写疏忽、OCR 识别乱序等导致的字词缺失、冗余、乱序或搭配不当等,如「虚心使使人进步–虚心使人进步」。

3. 语义错误:

由于对某些知识不了解,或语言组织能力欠缺导致的知识及逻辑错误,如「一年有 3 个季度–一年有 4 个季度」。

本文中,我们将以最常见的拼写错误为例,演示如何借助 BART 模型,进行中文文本纠错模型部署。

直接运行教程请访问:

https://openbayes.com/console/open-tutorials/containers/YvkMjHySdef

BART:「采众长」的 SOTA 模型

BART 全称 Bidirectional and Auto-Regressive Transformers,是一个为预训练 seq2seq 模型而设计的去噪自编码器, 适用于自然语言生成、翻译及理解任务,由 Meta(原 Facebook)在 2019 年提出。

论文详见:
https://arxiv.org/pdf/1910.13461.pdf

BART 模型吸纳借鉴了 BERT 和 GPT 的优点,使用标准的 Transformer 结构作为基础:

  • 解码器模块参考 GPT: 将 ReLU 激活函数替换为 GeLU 激活函数

  • 编码器模块区别于 BERT: 舍弃了前馈神经网络模块,精简了模型参数

  • 编解码器衔接部分参考了 Transformer: 解码器的每一层都要对编码器最后一层的输出信息进行交叉注意力计算(也就是编解码注意力机制)

BART 与 BERT 对比示意图

本教程中,我们借助 nlp_bart_text-error-correction_chinese 模型进行模型部署。

更多信息可访问:

https://modelscope.cn/models/damo/nlp_bart_text-error-correction_chinese/summary

教程详解:创建一个在线文本纠错Demo

环境准备

在 jupyter 终端中执行以下命令安装依赖:

pip install "modelscope[nlp]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
pip install fairseq

模型下载

在终端中执行以下命令下载模型:

git clone http://www.modelscope.cn/damo/nlp_bart_text-error-correction_chinese.git

模型下载需要较长时间,此容器中已有下载好的模型,可直接使用,位于 nlp_bart_text-error-correction_chinese 目录下。

快速使用

在这里插入图片描述

模型部署

Serving 服务编写

编写 predictor.py 文件:

  • 导入依赖库:除了业务中用到的库之外,需要额外依赖 openbayes-serving。
import openbayes_serving as serv
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
  • Predictor 类:无需继承其他类,至少提供 init 和 predict 两个接口。
  • __init__ 中指定模型路径,加载模型

  • predict 中进行推理,返回结果

class Predictor:
    def __init__(self):
        self.model_path = './nlp_bart_text-error-correction_chinese'
        self.corrector = pipeline(Tasks.text_error_correction, model=self.model_path)


def predict(self, json):
    text = json["input"].lower()
    result = self.corrector(text)
    return result
  • 运行:启动服务
if __name__ == '__main__':
    serv.run(Predictor)

测试

在终端中执行 python predictor.py,成功开启服务后,在此 Notebook 中执行下列代码进行测试。

注意:在容器中进行测试时,flask 版本大于 2.1 可能出现重复注册报错,降低版本即可运行。

import requests
text = {"input": "这洋的话,下一年的福气来到自己身上。"}
result = requests.post('http://localhost:8080', json=text)
result.json()
{'output': '这样的话,下一年的福气就会来到自己身上。'}

除了通过本地访问地址 http://localhost:8080还可以通过终端中提示的外部可访问的 URL 进行测试。

在这里插入图片描述
注意:对于不同的 OpenBayes 算力容器,外部可访问的 URL 各不相同,直接使用本教程中的链接是无效的,需用终端中提示的链接进行替换

result = requests.post('https://openbayes.com/jobs-auxiliary/open-tutorials/t23g93jjm95d', json=text)
result.json()

部署

测试成功后,停止此算力容器,等待同步数据完成。

在「算力容器–模型部署」中点击「创建新部署」,选择与开发时相同的镜像,绑定此算力容器,点击「部署」,即可进行在线测试。

部署完成后输入 JSON 数据进行在线测试

更多模型部署相关信息可参考:

https://openbayes.com/docs/serving/

至此,一个支持在线测试的中文文本纠错模型就训练+部署完成啦!

查看并运行完整教程,访问以下链接:

https://openbayes.com/console/open-tutorials/containers/YvkMjHySdef

快来试试你的中文纠错模型吧!

—— 完 ——

参考链接:

[1] https://www.51cto.com/article/715865.html

[2] https://arxiv.org/pdf/1910.1346

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Chapter9.1:线性系统的状态空间分析与综合(上)

此系列属于胡寿松《自动控制原理题海与考研指导》(第三版)习题精选,仅包含部分经典习题,需要完整版习题答案请自行查找,本系列属于知识点巩固部分,搭配如下几个系列进行学习,可用于期末考试和考研复习。 自动控制原理(…

第六节.常用Linux命令—chmod修改目录权限,组管理,用户管理

第六节.常用Linux命令—chmod修改目录权限,组管理,用户管理 1. chmod:可以修改用户/文件/目录的权限 1).命令格式: chmod(代表增加权限)/-(代表减少权限) r(可读权限)w(可写权限)x(可执行权限) 文件名/目录名 2.组管理: 1).终端…

年产5000吨饼干食品加工厂的工艺设计

目 录 摘 要 I Abstract II 第1章 绪论 1 1.1概述 1 1.2饼干的特点 1 1.2.1适宜大规模生产 1 1.2.2容易消化吸收 1 1.2.3食用方便 1 1.2.4营养价值高 2 1.3设计依据 2 1.4 设计范围 2 1.4.1 一般部分 2 1.4.2 重点部分 2 1.4.3 图纸 3 1.5设计指导思想 3 1.5.1 指导思想 3 1.5.…

org.activiti.validation.validator

org.activiti.validation.validator目录概述需求:设计思路实现思路分析1.ActivitiEventListenerValidator3.AssociationValidator4.validateAtLeastOneExecutable5.DataObjectValidator拓展实现参考资料和推荐阅读Survive by day and develop by night. talk for im…

【信号和槽】

前言 信号和槽是QT界面框架的一个核心特性,其重要性和MFC的消息映射机制一样。只要用QT开发项目,就一定会用到,所以必须100%熟练掌握,烂熟于心。 0x0 需要理解的概念 信号:特定情况下被发射的事件。鼠标单击按钮&…

基于复合粒子群优化的模糊神经预测控制的研究(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

boot+mp搭建版本踩坑记录

最近项目搭建中遇到的一些问题,涉及到 mp 版本 swagger集成等 文章目录前言一、引入mp启动报错1 相关配置2 报错 如下3 解决方案二、引入swagger1 引入的pom2 报错如下:3 解决方案三. 项目启动自动打开swagger页面总结前言 由于使用高版本springboot 导致集成遇到的一些问题 一…

Spring Boot+Netty+Websocket实现后台向前端推送信息

Netty 是一个利用 Java 的高级网络的能力&#xff0c;隐藏其背后的复杂性而提供一个易于使用的API的客户端/服务器框架。 可能在此之前你没有接触过&#xff0c;不过不要担心&#xff0c;下面我们通过一个消息推送的例子来看一下netty是怎么使用的。 1.添加Maven依赖 <!--…

动态代理静态代理

一、使用背景 将目标类包裹起来&#xff0c;对目标类增加一个前置操作和一个后置操作&#xff0c;比如添加日志&#xff0c;在调用目标类前、调用目标后添加日志。 感觉静态代理与动态代理的核心思想&#xff0c;都是根据目标类&#xff0c;拿到目标实现的接口&#xff0c;和…

【软考】-- 操作系统(上)

目录&#xff1a;操作系统&#xff08;上&#xff09;第一节 操作系统概述&#x1f384;一、操作系统基本概念1️⃣操作系统的五大部分&#xff1a;&#x1f38b;二、操作系统的分类1️⃣批处理操作系统&#xff1a;2️⃣分时操作系统&#xff1a;3️⃣实时操作系统&#xff1a…

STC51单片机28——跑马灯

//使用P1口流水点亮8位LED #include<reg51.h> //包含单片机寄存器的头文件 /**************************************** 函数功能&#xff1a;延时一段时间 *****************************************/ void delay(void) { unsigned char i,j; for(i…

Jetpack Compose 重写TopAppBar 实现标题多行折叠

没有效果图一律当水贴处理 效果动图 前言 想用composes实现类似CSDN的文章详细页面的标题栏 上滑隐藏标题后标题栏显示标题 compose.material3下的TopAppBar不能嵌套滚动 MediumTopAppBar 便使用了MediumTopAppBar一开始用着没什么问题&#xff0c;但是标题字数多了&…

一天完成react面试准备

什么是 React的refs&#xff1f;为什么它们很重要 refs允许你直接访问DOM元素或组件实例。为了使用它们&#xff0c;可以向组件添加个ref属性。 如果该属性的值是一个回调函数&#xff0c;它将接受底层的DOM元素或组件的已挂载实例作为其第一个参数。可以在组件中存储它。 ex…

字体图标以及svg图片的使用vite和webpack

先说下字体图标的使用 首先去阿里巴巴矢量图标库&#xff0c;选择你需要的图标&#xff08;可将svg图片自己上传&#xff09;添加到项目里&#xff0c;可以生成在线链接&#xff0c;或者下载资源包到本地。 资源包形式&#xff1a;在项目里创建一个fonts文件夹&#xff0c;将下…

linux 安装rar工具

1.到官网下载对应的编译包 点击跳转 也可以直接到我上传的资源去下载 https://download.csdn.net/download/liudongyang123/87032929https://download.csdn.net/download/liudongyang123/870329292.解压 tar -xf rarlinux-x64-620b2.tar.gz 3.进入到解压后的文件夹&#xf…

Spring Cloud Alibaba 版本对照表,集成nacos,sentinel,seata

一、Spring Cloud Alibaba 版本对照网址 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E 二、集成nacos nacos源码编译打包_qq_41369135的博客-CSDN博客 连接mysql nacos\conf下的application.properties spring.datasource.…

JDBC:PreparedStatement 插入BLOB类型的数据,PreparedStatement 批量处理,Connection 事务处理

JDBC&#xff1a;PreparedStatement 插入BLOB类型的数据&#xff0c;PreparedStatement 批量处理&#xff0c;Connection 事务处理 每博一文案 村上春树说: 你要做一个不动声色的大人了&#xff0c;不准情绪化&#xff0c;不准偷偷想念&#xff0c;不准回头看自己&#xff0c;…

VGG网络详解(实现猫猫和狗狗识别)

VGG VGG在2014年由牛津大学著名研究组vGG (Visual Geometry Group)提出&#xff0c;斩获该年lmageNet竞赛中Localization Task (定位任务)第一名和 Classification Task (分类任务)第二名。 感受野 首先介绍一下感受野的概念。在卷积神经网络中&#xff0c;决定某一层输出结…

Cloud Flare 添加谷歌镜像站(反向代理)

1.首先创建一个属于自己的镜像站 参考链接&#xff1a;利用cloudflare搭建属于自己的免费Github加速站 首先&#xff0c;点击 Cloud Flare 链接 &#xff0c;创建一个属于自己的账户 登录后&#xff0c;点击 Workers 这个子域&#xff0c;可以自定义 输入好后点set up 然后…

[附源码]java毕业设计基于实时定位的超市配送业务管理

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…