Text Splitters
CharacterTextSplitter
CharacterTextSplitter 用于基于指定字符将长文本分割成较小的块。它尝试尽可能保持段落、句子和单词的完整性,因为这些是语义上相关的文本部分。
参数:
Documents: 要分割的输入文档。
chunk_overlap: 确定在分割文本时连续块之间的字符重叠数量。它指定了前一个块中应包含在下一个块中的字符量。
例如,如果 chunk_overlap 设置为 20,chunk_size 设置为 100,则分割器将创建每个包含 100 个字符的块,但每个块的最后 20 个字符将与下一个块的前 20 个字符重叠。这允许块之间的平滑过渡并确保没有信息丢失 —— 默认为 200。
chunk_size: 确定分割文本时每个块中的最大字符数。它指定了每个块的大小或长度。
例如,如果 chunk_size 设置为 100,则分割器将创建每个包含 100 个字符的块。如果文本长度超过 100 个字符,则将被分割成多个大小相等的块,最后一个块可能更小,如果还有剩余字符 —— 默认为 1000。
separator: 指定用于将文本分割成块的字符 —— 默认为句点(.)。
RecursiveCharacterTextSplitter
RecursiveCharacterTextSplitter 通过尝试尽可能保持段落、句子和单词的完整性来分割文本,类似于 CharacterTextSplitter。然而,如果块大小超过指定阈值,它还会递归地将文本分割成更小的块。
参数:
Documents: 要分割的输入文档。
chunk_overlap: 确定在分割文本时连续块之间的字符重叠数量。它指定了前一个块中应包含在下一个块中的字符量。
chunk_size: 确定分割文本时每个块中的最大字符数。它指定了每个块的大小或长度。
separators: RecursiveCharacterTextSplitter 中的分隔符是用于将文本分割成块的字符。文本分割器尝试基于分隔符列表中的第一个字符来创建块。如果任何块太大,它会转到列表中的下一个字符并继续分割。默认为 ["\n\n", "\n", " ", ""]。
LanguageRecursiveTextSplitter
LanguageRecursiveTextSplitter 是一个文本分割器,根据文本的(编程)语言将文本分割成较小的块。
参数:
Documents: 要分割的输入文档。
chunk_overlap: 确定在分割文本时连续块之间的字符重叠数量。它指定了前一个块中应包含在下一个块中的字符量。
chunk_size: 确定分割文本时每个块中的最大字符数。它指定了每个块的大小或长度。
separator_type: 该参数允许用户使用多种语言支持分割代码。它支持多种语言,如 Ruby、Python、Solidity、Java 等。默认为 Python。
Last updated