跳到主要内容

文本分割 (Split Text)

文本分割 (Split Text) 组件根据块大小(chunk size)和分隔符(separator)等参数将数据分割成块。 它通常用于对要进行分词(tokenized)并嵌入到向量数据库中的数据进行分块。 有关示例,请参阅 在流中使用嵌入模型组件创建向量 RAG 聊天机器人

使用文本分割组件对数据进行分块的嵌入生成流。

该组件接收 MessageDataDataFrame,然后输出 块 (Chunks)数据框 (DataFrame)块 (Chunks) 输出返回包含单个文本块的 Data 对象列表。 数据框 (DataFrame) 输出将块列表作为结构化的 DataFrame 返回,并带有额外的 textmetadata 列。

文本分割参数

文本分割 (Split Text) 组件的参数控制文本如何分割成块,特别是 chunk_sizechunk_overlapseparator 参数。

要测试分块行为,请添加一个 文本输入 (Text Input)读取文件 (Read File) 组件,其中包含一些要分块的样本数据,在 文本分割 (Split Text) 组件上点击 运行组件 (Run component),然后点击 检查输出 (Inspect output) 以查看块列表及其元数据。text 列包含根据您的分块设置创建的实际文本块。 如果块没有按预期分割,请调整参数,重新运行组件,然后检查新输出。

Some parameters are hidden by default in the visual editor. You can modify all parameters through the Controls in the component's header menu.

名称显示名称信息
data_inputs输入 (Input)输入参数。要分割的数据。输入必须是 MessageDataDataFrame 格式。
chunk_overlap块重叠 (Chunk Overlap)输入参数。块之间重叠的字符数。这有助于在块之间保持上下文。当遇到分隔符时,重叠会应用在分隔符处,以便后续块包含前一个块的最后 n 个字符。默认值:200
chunk_size块大小 (Chunk Size)输入参数。分割后每个块的目标长度。数据首先按分隔符分割,然后将小于 chunk_size 的块合并到此限制。但是,如果初始分隔符分割产生了任何大于 chunk_size 的块,则这些块既不会被进一步细分,也不会与任何较小的块合并;即使这些块超过了 chunk_size,它们也会按原样输出。默认值:1000。请参阅 由于块大小导致的分词错误 以了解重要注意事项。
separator分隔符 (Separator)输入参数。定义分割字符的字符串,例如 \n 用于在换行符处分割,\n\n 用于在段落处分割,或 }, 用于在 JSON 对象末尾分割。您可以直接提供分隔符字符串,或者从另一个组件传递一个分隔符字符串作为 Message 输入。
text_key文本键 (Text Key)输入参数。用于从输入中提取并分割的文本列的键。默认值:text
keep_separator保留分隔符 (Keep Separator)输入参数。选择如何处理输出块中的分隔符。如果为 False,则从输出块中省略分隔符。选项包括 False(删除分隔符)、True(在块中保留分隔符,不限定位置)、Start(将分隔符放在块的开头)或 End(将分隔符放在块的结尾)。默认值:False

由于块大小导致的分词错误

在将 文本分割 (Split Text) 与嵌入模型(特别是像 nvidia/nv-embed-v1 这样的 NVIDIA 模型)一起使用时,即使模型支持更大的令牌限制,您也可能需要使用更小的块大小(500 或更小)。 文本分割 (Split Text) 组件并不总是强制执行您设置的精确块大小,单个块可能会超过您指定的限制。 如果遇到分词错误,请通过减小块大小、更改重叠长度或使用更通用的分隔符来修改您的文本分割策略。 然后,通过运行流并检查组件的输出来测试您的配置。

其他文本分割器

请参阅 LangChain 文本分割器组件

Search