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 텍스트 파일을 배치 처리할 수 있습니다.

평가

  • 리포지토리에는 세 가지 공개 중국어 보정 벤치마크(SIGHAN-2015, EC-LAW, MCSC)에서 평가할 수 있는 스크립트가 포함되어 있습니다.
  • 메트릭은 문장 수준의 정밀도/재현율(F1)입니다. README의 표에는 각 모델의 평균 F1, 데이터셋별 점수, 사용한 GPU, 및 초당 쿼리 수(QPS)가 표시되어 있습니다.

데모 및 리소스

누가 필요할까

  • 중국어 입력기 편집기, OCR/ASR 후처리, 음성-텍스트 파이프라인, 검색 쿼리 정제를 개발하는 개발자.
  • 중국어 철자 보정 방법을 비교하는 연구자.
  • Python 애플리케이션에서 즉시 사용 가능한 중국어 문법/철자 보정기 필요자.

위 정보는 프로젝트의 README에서 직접 인용되었으며, 외부 가정은 전혀 추가되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트