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を補正データでファインチューニング 長文・複雑な編集に適している 大型LLMより高速、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テキストファイルをバッチ処理できます。

評価

  • リポジトリには、3つの公開中国語補正ベンチマーク(SIGHAN-2015EC-LAWMCSC)での評価スクリプトが含まれています。
  • メトリクスは文単位の精度・再現率(F1)です。READMEのテーブルには各モデルの平均F1、各データセットごとのスコア、使用GPU、およびQPS(1秒あたりのクエリ数)が記載されています。

デモとリソース

誰が使うべきか

  • 中国語入力メソッドエディタ、OCR/ASR後処理、音声→テキストパイプライン、検索クエリのクリーニングを構築する開発者。
  • 中国語スペル補正手法を比較する研究者。
  • Pythonアプリケーション内で即時利用可能な中国語文法・スペルチェックツールが必要な人。

上記のすべての情報はプロジェクトのREADMEから直接引用しており、外部の仮定は一切加えていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト