
多模型中文文本纠错工具包,支持音形语法纠错
pycorrector是一个开源的中文文本纠错工具包,集成了多种模型如Kenlm、BERT、MacBERT等。该工具可纠正音似、形似、语法及专名错误,并支持自定义混淆集和专名词典。项目提供多个预训练模型,在SigHAN数据集上进行了评估。pycorrector适用于中文文本纠错的研究和实际应用场景。
🇨🇳中文 | 🌐English | 📖文档/Docs | 🤖模型/Models
<div align="center"> <a href="https://github.com/shibing624/pycorrector"> <img src="https://github.com/shibing624/pycorrector/blob/master/docs/pycorrector.png" alt="Logo" height="156"> </a> </div>pycorrector: 中文文本纠错工具。支持中文音似、形似、语法错误纠正,python3.8开发。
pycorrector实现了Kenlm、ConvSeq2Seq、BERT、MacBERT、ELECTRA、ERNIE、Transformer等多种模型的文本纠错,并在SigHAN数据集评估各模型的效果。
Guide
中文文本纠错任务,常见错误类型:
<img src="https://github.com/shibing624/pycorrector/blob/master/docs/git_image/error_type.png" width="600" />当然,针对不同业务场景,这些问题并不一定全部存在,比如拼音输入法、语音识别校对关注音似错误;五笔输入法、OCR校对关注形似错误, 搜索引擎query纠错关注所有错误类型。
本项目重点解决其中的"音似、形字、语法、专名错误"等类型。
[2023/11/07] v1.0.0版本:新增了ChatGLM3/LLaMA2等GPT模型用于中文文本纠错,发布了基于ChatGLM3-6B的shibing624/chatglm3-6b-csc-chinese-lora拼写和语法纠错模型;重写了DeepContext、ConvSeq2Seq、T5等模型的实现。详见Release-v1.0.0
Official demo: https://www.mulanai.com/product/corrector/
HuggingFace demo: https://huggingface.co/spaces/shibing624/pycorrector

run example: examples/macbert/gradio_demo.py to see the demo:
python examples/macbert/gradio_demo.py
提供评估脚本examples/evaluate_models/evaluate_models.py:
评估数据集:SIGHAN2015测试集
GPU:Tesla V100,显存 32 GB
| Model Name | Model Link | Base Model | GPU | Precision | Recall | F1 | QPS |
|---|---|---|---|---|---|---|---|
| Kenlm-CSC | shibing624/chinese-kenlm-klm | kenlm | CPU | 0.6860 | 0.1529 | 0.2500 | 9 |
| BART-CSC | shibing624/bart4csc-base-chinese | fnlp/bart-base-chinese | GPU | 0.6984 | 0.6354 | 0.6654 | 58 |
| Mengzi-T5-CSC | shibing624/mengzi-t5-base-chinese-correction | mengzi-t5-base | GPU | 0.8321 | 0.6390 | 0.7229 | 214 |
| MacBERT-CSC | shibing624/macbert4csc-base-chinese | hfl/chinese-macbert-base | GPU | 0.8254 | 0.7311 | 0.7754 | 224 |
| ChatGLM3-6B-CSC | shibing624/chatglm3-6b-csc-chinese-lora | THUDM/chatglm3-6b | GPU | 0.5574 | 0.4917 | 0.5225 | 4 |
pip install -U pycorrector
or
pip install -r requirements.txt git clone https://github.com/shibing624/pycorrector.git cd pycorrector pip install --no-deps .
通过以上两种方法的任何一种完成安装都可以。如果不想安装依赖包,可以拉docker环境。
docker run -it -v ~/.pycorrector:/root/.pycorrector shibing624/pycorrector:0.0.2
本项目的初衷之一是比对、调研各种中文文本纠错方法,抛砖引玉。
项目实现了kenlm、macbert、seq2seq、 ernie_csc、T5、deepcontext、LLaMA等模型应用于文本纠错任务,各模型均可基于已经训练好的纠错模型快速预测,也可使用自有数据训练、预测。
example: examples/kenlm/demo.py
from pycorrector import Corrector m = Corrector() print(m.correct_batch(['少先队员因该为老人让坐', '你找到你最喜欢的工作,我也很高心。']))
output:
[{'source': '少先队员因该为老人让坐', 'target': '少先队员应该为老人让座', 'errors': [('因该', '应该', 4), ('坐', '座', 10)]} {'source': '你找到你最喜欢的工作,我也很高心。', 'target': '你找到你最喜欢的工作,我也很高兴。', 'errors': [('心', '兴', 15)]}]
Corrector()类是kenlm统计模型的纠错方法实现,默认会从路径~/.pycorrector/datasets/zh_giga.no_cna_cmn.prune01244.klm加载kenlm语言模型文件,如果检测没有该文件,
则程序会自动联网下载。当然也可以手动下载模型文件(2.8G)并放置于该位置correct方法返回dict,{'source': '原句子', 'target': '纠正后的句子', 'errors': [('错误词', '正确词', '错误位置'), ...]},correct_batch方法返回包含多个dict的listexample: examples/kenlm/detect_demo.py
from pycorrector import Corrector m = Corrector() idx_errors = m.detect('少先队员因该为老人让坐') print(idx_errors)
output:
[['因该', 4, 6, 'word'], ['坐', 10, 11, 'char']]
list, [error_word, begin_pos, end_pos, error_type],pos索引位置以0开始。example: examples/kenlm/use_custom_proper.py
from pycorrector import Corrector m = Corrector(proper_name_path='./my_custom_proper.txt') x = ['报应接中迩来', '这块名表带带相传',] for i in x: print(i, ' -> ', m.correct(i))
output:
报应接中迩来 -> {'source': '报应接踵而来', 'target': '报应接踵而来', 'errors': [('接中迩来', '接踵而来', 2)]}
这块名表带带相传 -> {'source': '这块名表代代相传', 'target': '这块名表代代相传', 'errors': [('带带相传', '代代相传', 4)]}
通过加载自定义混淆集,支持用户纠正已知的错误,包括两方面功能:1)【提升准确率】误杀加白;2)【提升召回率】补充召回。
example: examples/kenlm/use_custom_confusion.py
from pycorrector import Corrector error_sentences = [ '买iphonex,要多少钱', '共同实际控制人萧华、霍荣铨、张旗康', ] m = Corrector() print(m.correct_batch(error_sentences)) print('*' * 42) m = Corrector(custom_confusion_path_or_dict='./my_custom_confusion.txt') print(m.correct_batch(error_sentences))
output:
('买iphonex,要多少钱', []) # "iphonex"漏召,应该是"iphoneX"
('共同实际控制人萧华、霍荣铨、张启康', [('张旗康', '张启康', 14)]) # "张启康"误杀,应该不用纠
*****************************************************
('买iphonex,要多少钱', [('iphonex', 'iphoneX',


GPT充值
支持 ChatGPT Plus / Pro 充值服务,支付便捷,自动发货,售后可查。


AI 图片生成平台
GPT Image 2 是面向用户的 AI 图片生成平台,支持文生图、图生图及多模型创意工作流。


你的AI Agent团队
Vecbase 是专为 AI 团队打造的智能工作空间,将数据管理、模型协作与知识沉淀整合于一处。算法、产品与业务在同一平台无缝协同,让从数据到 AI 应用的落地更快一步。


全球首个AI音乐社区
音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。


阿里Qoder团队推出的桌 面端AI智能体
QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。


一站式搞定所有学习需求
不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。


为AI短剧协作而生
专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。


能听懂你表达的视频模型
Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。


国内直接访问,限时3折
输入简单文字,生成 想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动


职场AI,就用扣子
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号