专栏首页小鹏的专栏[文本纠错] pycorrector框架训练

[文本纠错] pycorrector框架训练

深度模型使用说明

Install

  • 全自动安装:pip install pycorrector
  • 半自动安装:
git clone https://github.com/shibing624/pycorrector.git
cd pycorrector
python setup.py install

通过以上两种方法的任何一种完成安装都可以。如果不想安装,可以下载github源码包,安装下面依赖再使用。

安装依赖

  • kenlm安装
pip install https://github.com/kpu/kenlm/archive/master.zip
  • 其他库包安装
pip install -r requirements.txt

安装依赖

pip install -r requirements-dev.txt

介绍

本项目的初衷之一是比对、共享各种文本纠错方法,抛砖引玉的作用,如果对大家在文本纠错任务上有一点小小的启发就是我莫大的荣幸了。

主要使用了多种深度模型应用于文本纠错任务,分别是前面模型小节介绍的conv_seq2seqseq2seq_attentiontransformerbertelectra,各模型方法内置于pycorrector文件夹下,有README.md详细指导,各模型可独立运行,相互之间无依赖。

使用方法

各模型均可独立的预处理数据、训练、预测,下面以其中seq2seq_attention为例:

seq2seq_attention 模型使用示例:

配置

通过修改config.py

数据预处理

cd seq2seq_attention
# 数据预处理
python preprocess.py

自动新建文件夹output,在output下生成train.txttest.txt文件,以TAB("\t")间隔错误文本和纠正文本,文本以空格切分词,文件内容示例:

希 望 少 吸 烟 。	 希 望 烟 民 们 少 吸 烟 。
以 前 , 包 括 中 国 , 我 国 也 是 。	以 前 , 不 仅 中 国 , 我 国 也 是 。
我 现 在 好 得 多 了 。	我 现 在 好 多 了 。

训练

python train.py

训练过程截图: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1l5xopBc-1593252818916)(./docs/git_image/seq2seq_train.png)]

预测

python infer.py

预测输出效果样例:

input: 少先队员因该给老人让坐 output: 少先队员因该给老人让座
input: 少先队员应该给老人让坐 output: 少先队员应该给老人让座
input: 没有解决这个问题, output: 没有解决这个问题,,
input: 由我起开始做。 output: 由我起开始做
input: 由我起开始做 output: 由我开始做

PS:

  1. 如果训练数据太少(不足万条),深度模型拟合不足,会出现预测结果全为unk的情况,解决方法:增大训练样本集,使用下方提供的纠错熟语料(nlpcc2018+hsk,130万对句子)测试。
  2. 深度模型训练耗时长,有GPU尽量用GPU,加速训练,节省时间。

自定义语言模型

语言模型对于纠错步骤至关重要,当前默认使用的是从千兆中文文本训练的中文语言模型zh_giga.no_cna_cmn.prune01244.klm(2.8G)

大家可以用中文维基(繁体转简体,pycorrector.utils.text_utils下有此功能)等语料数据训练通用的语言模型,或者也可以用专业领域语料训练更专用的语言模型。更适用的语言模型,对于纠错效果会有比较好的提升。

  1. kenlm语言模型训练工具的使用,请见博客:http://blog.csdn.net/mingzai624/article/details/79560063
  2. 附上训练语料<人民日报2014版熟语料>,包括: 1)标准人工切词及词性数据people2014.tar.gz, 2)未切词文本数据people2014_words.txt, 3)kenlm训练字粒度语言模型文件及其二进制文件people2014corpus_chars.arps/klm, 4)kenlm词粒度语言模型文件及其二进制文件people2014corpus_words.arps/klm。

人民日报2014版熟语料,网盘链接:https://pan.baidu.com/s/1971a5XLQsIpL0zL0zxuK2A 密码:uc11。尊重版权,传播请注明出处。

中文纠错数据集

  1. NLPCC 2018 GEC官方数据集NLPCC2018-GEC, 训练集trainingdata[解压后114.5MB],该数据格式是原始文本,未做切词处理。
  2. 汉语水平考试(HSK)和lang8原始平行语料HSK+Lang8[190MB],该数据集已经切词,可用作数据扩增
  3. 以上语料,再加上CGED16、CGED17、CGED18的数据,经过以字切分,繁体转简体,打乱数据顺序的预处理后,生成用于纠错的熟语料(nlpcc2018+hsk),网盘链接:https://pan.baidu.com/s/1BkDru60nQXaDVLRSr7ktfA 密码:m6fg [130万对句子,215MB]

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 自然语言处理-错字识别(基于Python)kenlm、pycorrector

    当然,针对不同业务场景,这些问题并不一定全部存在,比如输入法中需要处理前四种,搜索引擎需要处理所有类型,语音识别后文本纠错只需要处理前两种, 其中’形似字错误’...

    学到老
  • [文本纠错] pycorrector框架测试

    pycorrector:https://github.com/shibing624/pycorrector

    MachineLP
  • Soft-Masked BERT:文本纠错与BERT的最新结合

    地址 | https://zhuanlan.zhihu.com/p/144995580

    朴素人工智能
  • 文本纠错与BERT的最新结合,Soft-Masked BERT

    1.http://www.doc88.com/p-8038708924257.html

    机器学习AI算法工程
  • AAAI 2020 | MaskGEC:通过动态掩蔽改善语法纠错

    今天给大家介绍北京大学计算语言学教育部重点实验室的Zewei Zhao和Houfeng Wang在AAAI 2020发表的文章“MaskGEC: Improvi...

    DrugAI
  • 你的英语不行!微软亚研自动语法纠错系统达到人类水平

    用于语法纠错(GEC)的序列到序列(seq2seq)模型(Cho et al., 2014; Sutskever et al., 2014)近年来吸引了越来越多...

    机器之心
  • 中文文本纠错算法走到多远了?

    错误检测部分先通过结巴中文分词器切词,由于句子中含有错别字,所以切词结果往往会有切分错误的情况,这样从字粒度和词粒度两方面检测错误, 整合这两种粒度的疑似错误结...

    素质
  • 7 Papers & Radios | E2E视觉语言预训练模型SOHO;微软分层ViT模型霸榜多个CV任务

    论文 1:BART based semantic correction for Mandarin automatic speech recognition sy...

    机器之心
  • Facebook@ICLR2021 比GNN快100倍的标签传播

    图神经网络(GNN)是学习图的主要技术,并且已经得到非常广泛的应用。但是GNN训练往往需要大量的参数且训练时间很长。这里我们可以通过组合忽略图结构的浅层模型和利...

    Houye

扫码关注云+社区

领取腾讯云代金券