Repolode
segment-any-text

segment-any-text/wtpsplit

一个 Python 文本切分工具,可将文本按句子或其他语义单元切分,覆盖 85 种语言。

Star
1,378
Fork
84
未关闭 Issue
2
最近提交
前天

这是什么?

wtpsplit 用于把文本切分成句子,也可以借助模型预测的换行概率做段落切分。项目提供 SaT(Segment any Text)模型,覆盖 85 种语言,同时保留了早期的 WtP 模型以便复现实验。模型通过名称从 Hugging Face 加载,调用 split 即可得到单段文本的句子列表,也支持对大量文本批量迭代处理。

除了普通的句子切分,库还支持设置最小和最大片段长度,通过 Viterbi 或贪心算法结合模型边界概率进行约束,并可选用高斯、对数正态等长度先验来引导结果。项目提供若干预训练的 LoRA 适配器,可针对特定语言、领域或文体进行调整,用户也能用少量切分正确的句子训练自己的适配器。

推理方面,可在 PyTorch 下使用 GPU、TPU 或 TorchInductor 编译加速,也可通过 ONNX Runtime 在 CUDA 或 CPU 上运行。项目基于 Python 实现,采用 MIT 许可证。

核心功能

  • 01借助预训练 SaT 模型,支持 85 种语言的句子切分。
  • 02支持 min_length 和 max_length 参数进行长度约束切分。
  • 03可基于换行概率进行段落切分。
  • 04提供 LoRA 适配器,用于特定语言、领域和文体。
  • 05支持 PyTorch GPU/TPU、TorchInductor 编译以及 ONNX Runtime 推理。

适用场景

  • 在向量化或建立索引前,将原始文档切分为句子。
  • 处理缺少可靠标点的转录文本或字幕。
  • 为多语言语料准备 NLP 训练数据时进行分句。
  • 为下游大模型流程生成长度受限的文本块。

快速上手

  1. 1

    使用 pip 安装该包

    pip install wtpsplit
  2. 2

    导入 SaT 并加载预训练模型

    from wtpsplit import SaT
  3. 3

    将文本切分为句子

    sat.split("This is a test This is another test.")

使用前须知

  • 大型模型在 GPU 上运行才能获得较好速度,README 中建议可选使用 GPU。
  • ONNX 和 AITune 等高级功能需要额外安装和配置。

收录于专题

标签

常见问题

wtpsplit 是什么?
一个 Python 文本切分工具,可将文本按句子或其他语义单元切分,覆盖 85 种语言。 wtpsplit 用于把文本切分成句子,也可以借助模型预测的换行概率做段落切分。项目提供 SaT(Segment any Text)模型,覆盖 85 种语言,同时保留了早期的 WtP 模型以便复现实验。模型通过名称从 Hugging Face 加载,调用 split 即可得到单段文本的句子列表,也支持对大量文本批量迭代处理。
wtpsplit 可以免费使用吗?用的什么许可证?
wtpsplit 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
wtpsplit 还在维护吗?
活跃维护中。wtpsplit 最近一次提交是在 2026年11月5日。
wtpsplit 适合用来做什么?
在向量化或建立索引前,将原始文档切分为句子。 处理缺少可靠标点的转录文本或字幕。 为多语言语料准备 NLP 训练数据时进行分句。 为下游大模型流程生成长度受限的文本块。
wtpsplit 怎么安装和运行?
使用 pip 安装该包: pip install wtpsplit 导入 SaT 并加载预训练模型: from wtpsplit import SaT 将文本切分为句子: sat.split("This is a test This is another test.")
在哪里获取 wtpsplit?
源代码和安装说明在 GitHub 上:https://github.com/segment-any-text/wtpsplit

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目