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