赞
踩
git clone https://github.com/shibing624/pycorrector.git
cd pycorrector
python setup.py install
通过以上两种方法的任何一种完成安装都可以。如果不想安装,可以下载github源码包,安装下面依赖再使用。
pip install https://github.com/kpu/kenlm/archive/master.zip
pip install -r requirements.txt
pip install -r requirements-dev.txt
本项目的初衷之一是比对、共享各种文本纠错方法,抛砖引玉的作用,如果对大家在文本纠错任务上有一点小小的启发就是我莫大的荣幸了。
主要使用了多种深度模型应用于文本纠错任务,分别是前面模型
小节介绍的conv_seq2seq
、seq2seq_attention
、
transformer
、bert
、electra
,各模型方法内置于pycorrector
文件夹下,有README.md
详细指导,各模型可独立运行,相互之间无依赖。
各模型均可独立的预处理数据、训练、预测,下面以其中seq2seq_attention
为例:
seq2seq_attention 模型使用示例:
通过修改config.py
。
cd seq2seq_attention
# 数据预处理
python preprocess.py
自动新建文件夹output,在output下生成train.txt
和test.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:
unk
的情况,解决方法:增大训练样本集,使用下方提供的纠错熟语料(nlpcc2018+hsk,130万对句子)测试。语言模型对于纠错步骤至关重要,当前默认使用的是从千兆中文文本训练的中文语言模型zh_giga.no_cna_cmn.prune01244.klm(2.8G)。
大家可以用中文维基(繁体转简体,pycorrector.utils.text_utils下有此功能)等语料数据训练通用的语言模型,或者也可以用专业领域语料训练更专用的语言模型。更适用的语言模型,对于纠错效果会有比较好的提升。
人民日报2014版熟语料,网盘链接:https://pan.baidu.com/s/1971a5XLQsIpL0zL0zxuK2A 密码:uc11。尊重版权,传播请注明出处。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。