shibing624/pycorrector
pycorrector is a toolkit for text error correction. 文本纠错,实现了Kenlm,T5,MacBERT,ChatGLM3,Qwen2.5等模型应用在纠错场景,开箱即用。
pycorrector – 中文文本纠错工具包
功能
- 提供一个 Python 库,用于自动修复中文文本中的错误。支持最常见的错误类型:
- 音近(发音相似)错误
- 形近(字形相似)错误
- 语法 / 词序错误
- 专有名词(姓名)错误
- 提供两种方案:简单规则基础方法(KenLM n-gram 语言模型 + 手工混淆集)和现代神经网络模型集合(MacBERT、T5、ERNIE、GPT风格LLM、BART等),可即用或在自有数据上微调。
核心组件
| 组件 | 技术 | 典型用途 | 性能提示 |
|---|---|---|---|
| KenlmCorrector | KenLM n-gram 语言模型 + 手工混淆集 | 快速、低资源纠错(适合仅拼写任务) | CPU 上约 9 QPS,F1 约 0.34 |
| MacBertCorrector | MacBERT 主干 + 检测层 | 强大的拼写与语法纠错,推荐默认选择 | GPU 上约 224 QPS,F1 ≈ 0.40(CSC) |
| T5Corrector | 中文预训练 T5 在纠错数据上微调 | 适合长句、复杂编辑 | 比大模型快,F1 稳定 |
| ERNIE_CSC | PaddlePaddle ERNIE 模型在 CSC 上微调 | 标准基准测试中高精度 | F1 ≈ 0.44 |
| GPT风格纠错器(ChatGLM3、LLaMA2、Qwen2.5、Qwen3) | 在纠错任务上微调的大语言模型 | 整体质量最佳,可处理多字插入/删除 | F1 最高(达 0.85),但较慢(数 QPS) |
| BART / MuCGECBart / NaSGECBart | 在中文纠错语料上训练的 Seq2Seq BART 变体 | 通用文本纠错效果好,尤其适用于噪声数据 |
使用方法
- 使用
pip install -U pycorrector安装(或从源码构建 / Docker)。 - 选择模型类,例如
MacBertCorrector('shibing624/macbert4csc-base-chinese')。 - 对单句调用
correct(),对多句调用correct_batch()。 - 返回值为字典格式:
{ "source": "原句子", "target": "纠正后句子", "errors": [("错误词", "正确词", 位置), ...] } - 对轻量级 KenLM 方法,还可:
- 加载自定义混淆列表以提升召回率/精确率。
- 加载自定义专有名词词典进行名称特化修复。
- 内存受限时切换至更小的语言模型。
- 命令行模式(
python -m pycorrector)支持批量处理 UTF-8 文本文件。
评估
- 仓库包含在三个公开中文纠错基准(SIGHAN-2015、EC-LAW、MCSC)上评估的脚本。
- 指标为句子级精确率/召回率(F1)。README 中的表格展示了各模型的平均 F1、各数据集得分、所用 GPU 及每秒查询数(QPS)。
演示与资源
- 在线演示位于 https://www.mulanai.com/product/corrector/,HuggingFace Space 为 https://huggingface.co/spaces/shibing624/pycorrector。
- 示例脚本(
examples/*/demo.py)展示了每种模型类型的快速使用方法。 - 文档、模型卡片及中文纠错指南可通过仓库 Wiki 和链接论文获取。
适用人群
- 构建中文输入法编辑器、OCR/ASR 后处理、语音转文本流水线或搜索查询清洗工具的开发者。
- 比较中文拼写纠错方法的研究人员。
- 需要在 Python 应用中即插即用的中文语法/拼写纠错器的任何人。
以上所有信息均直接取自项目 README,未添加任何外部假设。
相关
- 项目
- 项目
- 项目
- 项目
- 项目