当前位置: 首页
AI
基于PaddleNLP的智能文本纠错

基于PaddleNLP的智能文本纠错

热心网友 时间:2025-07-23
转载
本次赛题聚焦智能文本纠错,针对智媒与文化领域文本的语法、拼写等错误检测与纠正。介绍了数据集情况,初赛、决赛训练集含id、语句及修改后语句,测试集字段有差异。还阐述了基于百度ACL 2024相关策略的模型,包括文件结构、训练、预测、部署步骤及参考文献,模型在SIGHAN测试集有一定效果。

基于paddlenlp的智能文本纠错 - 游乐网

一、赛题背景

日常生活中,我们经常会在微信、微博等社交工具、公众号文章、甚至新闻稿件中发现许多拼写、语法、标点等错误;经过初步统计:在微博等新媒体领域中,文本敏感和出错概率在2%左右;在语音识别领域中,出错率最高可达8-10%;而在某保险问答领域中,用户提问出错率在去重后仍高达9%,故本次人工智能应用赛的赛题为智能文本纠错。文本纠错作为自然语言处理最基础的模块,是实现中文语句自动检查、自动纠错的一项重要技术,其目的是提高语言正确性的同时减少人工校验成本,其重要程度不言而喻。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

基于PaddleNLP的智能文本纠错 - 游乐网        

二、任务描述

赛题任务 本次赛题聚焦智媒与文化领域文本数据,主要应用于媒体内容生产等场景,从中检测错误并纠正,提示修改建议。 错误类型:语法错误,包括多字、少字、乱序、标点等;拼写错误,包括同音字、近音字、形近字等。数据使用规则 本赛题允许使用外部数据。可参考公开数据集: NLPCC2018语法纠错数据集:http://tcci.ccf.org.cn/conference/2018/taskdata.php

三、数据集描述

初赛: 数据集包含训练集和测试集,训练集用于选手的模型训练,测试集用于最终结果的评测提交。格式如下:训练集包含三个字段:id,语句,修改后的语句测试集包含三个字段:id,语句,分词后的语句决赛: 数据集包含训练集和测试集,训练集用于选手的模型训练,测试集存在在服务器后台,用于最终结果的评测提交,不提供给选手。训练集包含三个字段:id,语句,修改后的语句测试集包含两个字段:id, 语句

四、评分指标

比赛使用MaxMatch (M2)记分器进行评估。M2算法是一种广泛应用的语法纠错评价方法。总的思路是计算源语句和系统输出之间的短语级编辑。具体来说,它将选择与注释器中的黄金编辑重叠最多的系统假设。扩展了M2的记分器,以处理多组可选的金标准注释,在这种情况下,对于当前的句子有多个合理的更正。 假设黄金编辑集是{g1, g2,…, gn},系统编辑集为{e1, e2,…,}。精度、查全率和F0.5定义如下:基于PaddleNLP的智能文本纠错 - 游乐网        

五、模型介绍及其文件结构

1. 模型介绍

中文文本纠错任务是一项NLP基础任务,其输入是一个可能含有语法错误的中文句子,输出是一个正确的中文句子。语法错误类型很多,有多字、少字、错别字等,目前最常见的错误类型是`错别字`。大部分研究工作围绕错别字这一类型进行研究。本文实现了百度在ACL 2024上提出结合拼音特征的Softmask策略的中文错别字纠错的下游任务网络,并提供预训练模型,模型结构如下:
登录后复制        

基于PaddleNLP的智能文本纠错 - 游乐网        

2. 文件目录结构

├── README.md                   # 文档├── download.py                 # 下载SIGHAN测试集├── pinyin_vocab.txt            # 拼音字表├── predict.py                  # 预测标准输入的句子├── predict_sighan.py           # 生成SIGHAN测试集的预测结果├── model.py                    # 纠错模型实现├── requirements.txt            # 本项目的Python依赖项├── run_sighan_predict.sh       # 生成训练后模型在SIGHAN测试集的预测结果并输出预测效果├── sighan_evaluate.py          # 评估模型在SIGHAN测试集上预测效果├── train.py                    # 训练脚本└── utils.py                    # 通用函数工具
登录后复制    

六、模型训练

1. 安装依赖项

pip install -r requirements.txt
登录后复制    In [ ]
# 1. 安装依赖项%cd ~/work/text_correction! pip install -r requirements.txt
登录后复制    

2. 模型训练

(1) 参数

model_name_or_path 目前支持的预训练模型有:"ernie-1.0"。max_seq_length 表示最大句子长度,超过该长度的部分将被切分成下一个样本。batch_size 表示每次迭代每张卡上的样本数目。learning_rate 表示基础学习率大小,将于learning rate scheduler产生的值相乘作为当前学习率。epochs 表示训练轮数。logging_steps 表示日志打印间隔步数。save_steps 表示模型保存及评估间隔步数。output_dir 表示模型保存路径。device 表示训练使用的设备, 'gpu'表示使用GPU, 'xpu'表示使用百度昆仑卡, 'cpu'表示使用CPU。seed 表示随机数种子。weight_decay 表示AdamW的权重衰减系数。warmup_proportion 表示学习率warmup系数。pinyin_vocab_file_path 拼音字表路径。默认为当前目录下的pinyin_vocab.txt文件。extra_train_ds_dir 额外纠错训练集目录。用户可在该目录下提供文件名以txt为后缀的纠错数据集文件,以增大训练样本。默认为None。

(2) 训练数据

该模型在SIGHAN简体版数据集以及Automatic Corpus Generation生成的中文纠错数据集上进行Finetune训练。PaddleNLP已经集成SIGHAN简体版数据集,以下将介绍如何使用Automatic Corpus Generation生成的中文纠错数据集。

3. 下载数据集

Automatic Corpus Generation生成的中文纠错数据集比较大,下载时间比较长,请耐心等候。运行以下命令完成数据集下载:

python download.py --data_dir ./extra_train_ds/ --url https://github.com/wdimmy/Automatic-Corpus-Generation/raw/master/corpus/train.sgml
登录后复制        

4. 预处理数据集

训练脚本要求训练集文件内容以句子对形式呈现,这里提供一个转换脚本,将Automatic Corpus Generation提供的XML文件转换成句子对形式的文件,运行以下命令:

python change_sgml_to_txt.py -i extra_train_ds/train.sgml -o extra_train_ds/train.txt
登录后复制    In [ ]
# 3. 下载数据集# Automatic Corpus Generation生成的中文纠错数据集比较大,下载时间比较长,请耐心等候。运行以下命令完成数据集下载:! python download.py --data_dir ./extra_train_ds/ --url https://github.com/wdimmy/Automatic-Corpus-Generation/raw/master/corpus/train.sgml
登录后复制    In [4]
cd ~/work/text_correction/dataset/
登录后复制        
/home/aistudio/work/text_correction/dataset
登录后复制        In [5]
# 4. 预处理数据集# 训练脚本要求训练集文件内容以句子对形式呈现,这里提供一个转换脚本,将Automatic Corpus Generation提供的XML文件转换成句子对形式的文件,运行以下命令:! python change_sgml_to_txt.py -i extra_train_ds/train.sgml -o extra_train_ds/train1.txt
登录后复制    

5. 模型训练

(1) 单卡训练

python train.py --batch_size 32 --logging_steps 100 --epochs 10 --learning_rate 5e-5 --model_name_or_path ernie-1.0 --output_dir ./checkpoints/ --extra_train_ds_dir ./extra_train_ds/ --max_seq_length 192
登录后复制        

(2) 多卡训练

python -m paddle.distributed.launch --gpus "0,1"  train.py --batch_size 32 --logging_steps 100 --epochs 10 --learning_rate 5e-5 --model_name_or_path ernie-1.0 --output_dir ./checkpoints/ --extra_train_ds_dir ./extra_train_ds/ --max_seq_length 192
登录后复制    In [ ]
# (1) 单卡训练%cd ~/work/text_correction! python train.py --batch_size 32 --logging_steps 100 --epochs 10 --learning_rate 5e-5 --model_name_or_path ernie-1.0 \--output_dir ./checkpoints/ --extra_train_ds_dir ./extra_train_ds/ --max_seq_length 192# (2) 多卡训练# ! python -m paddle.distributed.launch --gpus "0,1"  train.py --batch_size 32 --logging_steps 100 --epochs 10 --learning_rate 5e-5 \# --model_name_or_path ernie-1.0 --output_dir ./checkpoints/ --extra_train_ds_dir ./extra_train_ds/ --max_seq_length 192
登录后复制    

七、模型预测

预测SIGHAN测试集

SIGHAN 13,SIGHAN 14,SIGHAN 15是目前中文错别字纠错任务常用的benchmark数据。由于SIGHAN最新提供的是繁体字数据集,PaddleNLP将提供简体版本的SIGHAN测试数据。以下运行SIGHAN预测脚本:

sh run_sighan_predict.sh
登录后复制        

该脚本会下载SIGHAN数据集,加载checkpoint的模型参数运行模型,输出SIGHAN测试集的预测结果到predict_sighan文件,并输出预测效果。

预测效果

八、 模型部署

1. 预测部署

(1) 模型导出

使用动态图训练结束之后,预测部署需要导出静态图参数,具体做法需要运行模型导出脚本export_model.py。以下是脚本参数介绍以及运行方式:

①参数

params_path 是指动态图训练保存的参数路径。output_path 是指静态图参数导出路径。pinyin_vocab_file_path 指拼音表路径。model_name_or_path 目前支持的预训练模型有:"ernie-1.0"。

②运行方式

python export_model.py --params_path checkpoints/best_model.pdparams --output_path ./infer_model/static_graph_params
登录后复制        

其中checkpoints/best_model.pdparams是训练过程中保存的参数文件,请更换为实际得到的训练保存路径。

2. 预测

导出模型之后,可以用于预测部署,predict.py文件提供了python预测部署示例。运行方式:

python predict.py --model_file infer_model/static_graph_params.pdmodel --params_file infer_model/static_graph_params.pdiparams
登录后复制        

输出如下:

Source: 遇到逆竟时,我们必须勇于面对,而且要愈挫愈勇,这样我们才能朝著成功之路前进。Target: 遇到逆境时,我们必须勇于面对,而且要愈挫愈勇,这样我们才能朝著成功之路前进。Source: 人生就是如此,经过磨练才能让自己更加拙壮,才能使自己更加乐观。Target: 人生就是如此,经过磨练才能让自己更加茁壮,才能使自己更加乐观。
登录后复制        

③Taskflow一键预测

可以使用PaddleNLP提供的Taskflow工具来对输入的文本进行一键纠错,具体使用方法如下:

from paddlenlp import Taskflowtext_correction = Taskflow("text_correction")text_correction('遇到逆竟时,我们必须勇于面对,而且要愈挫愈勇,这样我们才能朝著成功之路前进。')'''[{'source': '遇到逆竟时,我们必须勇于面对,而且要愈挫愈勇,这样我们才能朝著成功之路前进。',    'target': '遇到逆境时,我们必须勇于面对,而且要愈挫愈勇,这样我们才能朝著成功之路前进。',    'errors': [{'position': 3, 'correction': {'竟': '境'}}]}]'''text_correction('人生就是如此,经过磨练才能让自己更加拙壮,才能使自己更加乐观。')'''[{'source': '人生就是如此,经过磨练才能让自己更加拙壮,才能使自己更加乐观。',    'target': '人生就是如此,经过磨练才能让自己更加茁壮,才能使自己更加乐观。',    'errors': [{'position': 18, 'correction': {'拙': '茁'}}]}]'''
登录后复制    

九、参考文献

Ruiqing Zhang, Chao Pang et al. "Correcting Chinese Spelling Errors with Phonetic Pre-training", ACL, 2024DingminWang et al. "A Hybrid Approach to Automatic Corpus Generation for Chinese Spelling Check", EMNLP, 2018
来源:https://www.php.cn/faq/1421606.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
逼AI当山顶洞人!Claude防话痨插件爆火,网友:受够了AI废话

逼AI当山顶洞人!Claude防话痨插件爆火,网友:受够了AI废话

新智元报道编辑:元宇【新智元导读】一个让AI像原始人一样说话的插件,在HN上一夜爆火,冲破2w星。它的核心只是一条简单粗暴的prompt:删掉冠词、客套和一切废话,号称能省下75%的输出token。

时间:2026-04-07 14:55
季度利润翻 8 倍,最赚钱的「卖铲人」财报背后,内存涨价狂潮如何收场?

季度利润翻 8 倍,最赚钱的「卖铲人」财报背后,内存涨价狂潮如何收场?

AI 时代最赚钱的公司,可能从来不是做 AI 的那个。作者|张勇毅编辑|靖宇淘金热里最稳赚的人,从来不是淘金的,是卖铲子的。这句老话在 2026 年的科技行业又应验了一次。只不过这次卖铲子的不是英伟

时间:2026-04-07 14:49
Claude Code Harness+龙虾科研团来了!金字塔分层架构+多智能体

Claude Code Harness+龙虾科研团来了!金字塔分层架构+多智能体

Claw AI Lab团队量子位 | 公众号 QbitAI你还在一个人做科研吗?科研最难的,从来不是问题本身,而是一个想法从文献到实验再到写作,只能靠自己一点点往前推。一个人方向偏了没人提醒,遇到歧

时间:2026-04-07 14:43
让离线强化学习从「局部描摹」变「全局布局」丨ICLR'26

让离线强化学习从「局部描摹」变「全局布局」丨ICLR'26

面对复杂连续任务的长程规划,现有的生成式离线强化学习方法往往会暴露短板。它们生成的轨迹经常陷入局部合理但全局偏航的窘境。它们太关注眼前的每一步,却忘了最终的目的地。针对这一痛点,厦门大学和香港科技大

时间:2026-04-07 14:37
美国犹他州启动新试点项目:AI为患者开具精神类药物处方

美国犹他州启动新试点项目:AI为患者开具精神类药物处方

IT之家 4 月 5 日消息,据外媒 PC Mag 当地时间 4 月 4 日报道,美国医疗机构 Legion Health 在犹他州获得监管批准,启动一项试点项目,允许 AI 系统为患者开具精神类药

时间:2026-04-07 14:30
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程