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

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

image.png

内容一览:中文文本错误的种类之一为拼写错误,本篇文章为利用 BART 预训练方法实现中文文本纠错功能的模型部署教程。关键词:BART 中文拼写纠错 NLP本文首发自微信公众号:HyperAI超神经

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

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

1. 拼写错误:

指由于输入法、语音转文字软件等原因导致的用字或用词错误,主要表现为错误使用了同音字、形近字、混消音等,如「天气晴郎--天气晴朗」「时侯--时候」。

image.png

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.13...

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

  • 解码器模块参考 GPT: 将 ReLU 激活函数替换为 GeLU 激活函数
  • 编码器模块区别于 BERT: 舍弃了前馈神经网络模块,精简了模型参数
  • 编解码器衔接部分参考了 Transformer: 解码器的每一层都要对编码器最后一层的输出信息进行交叉注意力计算(也就是编解码注意力机制)

image.png

本教程中,我们借助 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 目录下。

快速使用

image.png

模型部署

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 进行测试。

image.png

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

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

部署

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

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

image.png

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

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

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

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

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

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

—— 完 ——

相关文章
|
安全 Linux Shell
【内网安全-CS】Cobalt Strike启动运行&上线方法&插件
【内网安全-CS】Cobalt Strike启动运行&上线方法&插件
3933 0
【内网安全-CS】Cobalt Strike启动运行&上线方法&插件
|
机器学习/深度学习 存储 自然语言处理
简单聊一聊大模型微调技术-LoRA
LoRA(Low-Rank Adaptation)是一种用于减少大模型微调中参数数量和计算资源的技术。通过引入低秩分解,LoRA 仅更新少量参数,从而显著降低显存消耗和计算需求。适用于大规模预训练模型的微调、跨领域迁移学习、低资源设备部署和多任务学习等场景。例如,在微调 BERT 模型时,LoRA 可以仅调整约 0.1% 的参数,保持与全量微调相近的性能。
3214 0
|
自然语言处理 Java 大数据
阿里云自然语言处理--文本纠错(中文)Java 调用示例
自然语言处理(Natural Language Processing,简称NLP),是为各类企业及开发者提供的用于文本分析及挖掘的核心工具,旨在帮助用户高效的处理文本,已经广泛应用在电商、文娱、司法、公安、金融、医疗、电力等行业客户的多项业务中,取得了良好的效果。文本纠错产品是基于海量大数据研发,为有文本纠错需求的产品提供服务。能够准确识别输入文本中出现的拼写错别字及其段落位置信息,并针对性给出正确的建议文本内容。本文将使用Java CommonSDK演示文本纠错(中文)服务的快速调用以供参考。
2198 0
阿里云自然语言处理--文本纠错(中文)Java 调用示例
|
8月前
|
机器学习/深度学习 人工智能 数据可视化
基于 YOLOv8 的共享单车乱停放智能识别系统— 从数据集构建到可视化部署的完整项目
基于YOLOv8的共享单车乱停放智能识别系统,涵盖数据采集、标注、模型训练到PyQt5可视化部署全流程。支持图片、视频、摄像头实时检测,具备高精度与强实用性,适用于智慧城管、园区管理及AI教学,提供完整源码与模型,开箱即用,助力毕业设计与工程落地。
372 0
基于 YOLOv8 的共享单车乱停放智能识别系统— 从数据集构建到可视化部署的完整项目
|
8月前
|
机器学习/深度学习 算法 数据可视化
基于YOLOv8+pyqt5的pcb缺陷检测系统
针对电子制造中PCB缺陷检测难题,本研究提出基于YOLOv8与PyQt5的智能检测系统。融合深度学习高精度识别与图形界面友好交互,实现短路、断路等微小缺陷的高效、自动化检测,提升检测精度与效率,降低企业成本,推动电子制造向智能化、低成本化发展。
|
12月前
|
JSON 前端开发 API
汽车配件:使用VIN码查询API精准匹配车型配件,提升用户信任
VIN码是汽车的唯一“身份证”,通过API可精准解析车型信息,实现配件99.5%以上匹配度。本文详解VIN码API的工作流程、技术实现与信任提升价值,助力汽配销售从经验判断迈向数据驱动,降低退货率,提升用户体验与复购。
1282 0
|
Java
SpringBoot 内部方法调用,事务不起作用的原因及解决办法
在做业务开发时,遇到了一个事务不起作用的问题。大概流程是这样的,方法内部的定时任务调用了一个带事务的方法,失败后事务没有回滚。查阅资料后,问题得到解决,记录下来分享给大家。
1056 4
|
Linux UED iOS开发
|
敏捷开发 人工智能 搜索推荐
效率管理软件如何改变工作方式?全面介绍与应用场景
本文深入探讨了效率管理工具的定义、发展历程、功能特点及类型分类,帮助职场人士和团队更好地理解和选择这些工具,以提升整体工作效率。从个人任务管理到团队协作,效率管理工具通过优化工作流程、简化操作步骤和提升沟通效率,为现代工作方式提供了坚实支撑。
|
机器学习/深度学习 人工智能 自然语言处理
NLP实践!文本语法纠错模型实战,搭建你的贴身语法修改小助手 ⛵
本文详细介绍 GECToR 这一优秀的文本纠错模型,使用 Transformer 编码器的序列标注器,以保证文本数据的质量,进而提升NLP模型的效果。
2541 6
NLP实践!文本语法纠错模型实战,搭建你的贴身语法修改小助手 ⛵

热门文章

最新文章