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