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:除了句子外,也能將文字切分為段落。