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?) の 2 つの主要モデルを実装しています。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:文だけでなく、テキストを段落に分割することも可能です。