segment-any-text/wtpsplit

Toolkit to segment text into sentences or other semantic units in a robust, efficient and adaptable way.

What it solves

wtpsplit은 다양한 언어와 도메인에 걸쳐 견고하고 효율적인 문장 분할 문제를 해결하도록 설계되었습니다. 기존 도구와 달리 구두점이 없거나 스타일이 일관되지 않은 텍스트도 처리할 수 있어, 문장이나 단락과 같은 의미 단위로 텍스트를 나누는 보편적인 접근 방식을 제공합니다.

How it works

이 프로젝트는 **SaT (Segment any Text)**와 WtP (Where’s the Point?) 두 가지 주요 모델을 구현합니다. SaT는 최첨단 방법으로, 줄바꿈 확률을 예측해 자연스러운 분할 지점을 결정합니다. 85개 언어를 지원하며 LoRA(Low‑Rank Adaptation) 모듈을 사용해 특정 스타일이나 도메인에 맞게 조정할 수 있습니다.

정밀한 제어를 위해 Viterbi 알고리즘을 사용해 모델 예측과 사용자 정의 길이 제한(최소/최대 길이) 및 통계적 사전(예: 가우시안 또는 로그 정규 분포)을 균형 있게 조합하여 전역 최적의 분할 지점을 찾습니다.

Who it’s for

이 도구는 다국어 텍스트 처리, NLP 파이프라인, 임베딩 모델이나 저장소와 같은 하위 작업에서 세그먼트 길이를 정확히 제어해야 하는 개발자와 연구자를 위한 것입니다.

Highlights

  • Multilingual Support: 85개의 다양한 언어에 걸쳐 견고한 분할을 지원합니다.
  • Adaptable: LoRA 모듈을 사용해 도메인 특화 적응이 가능(예: 법률 문서, 트윗, ASR 전사본).
  • Length Constraints: 최적화 알고리즘을 통해 최소 및 최대 세그먼트 길이를 강제할 수 있습니다.
  • High Performance: ONNX 추론을 지원해 처리 속도를 높이며, 1층부터 12층까지 다양한 모델 크기를 제공해 속도와 정확성의 균형을 맞출 수 있습니다.
  • Paragraph Segmentation: 문장뿐 아니라 텍스트를 단락으로도 분할할 수 있습니다.