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:除了句子外,还能将文本切分为段落。