Text splitters #
一旦加载了文档,通常你会想要对其进行转换,以更好地适应你的应用程序。最简单的例子是,你可能希望将较长的文档拆分成较小的块(chunks),以便适应模型的上下文窗口。LangChain提供了多种内置的文档转换工具,使文档的拆分、合并、过滤和其他操作变得简单。
当需要处理较长的文本时,必须将其拆分成多个部分。尽管这听起来很简单,但其中存在很多潜在的复杂性。理想情况下,你希望将语义相关的文本片段保持在一起。而“语义相关”可能取决于文本的类型。
从宏观上看,文本拆分器的工作流程如下:
- 将文本拆分为小的、语义相关的块(通常是句子)。
- 开始将这些小块组合成较大的块,直到达到某个特定大小(通过某种函数来衡量)。
- 达到该大小后,将这个块作为一个独立的文本片段,并开始创建一个新的文本块,其中有一些重叠部分(以保持块之间的上下文)。
这意味着你可以沿两个不同的维度自定义文本拆分器:
- 文本如何拆分
- 块的大小如何衡量
有关如何使用文本拆分器的具体信息,请参阅此处的相关操作指南。