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,未添加任何外部假設。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案