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-2015EC-LAWMCSC)上评估的脚本。
  • 指标为句子级精确率/召回率(F1)。README 中的表格展示了各模型的平均 F1、各数据集得分、所用 GPU 及每秒查询数(QPS)。

演示与资源

适用人群

  • 构建中文输入法编辑器、OCR/ASR 后处理、语音转文本流水线或搜索查询清洗工具的开发者。
  • 比较中文拼写纠错方法的研究人员。
  • 需要在 Python 应用中即插即用的中文语法/拼写纠错器的任何人。

以上所有信息均直接取自项目 README,未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目