["\n\n", "\n", " ", ""]。这样做的效果是尽可能长时间地保持所有段落(然后是句子,然后是单词)在一起,因为这些通常是语义上最相关的文本片段。
- 文本如何分割:通过字符列表。
- 块大小如何测量:按字符数。
.split_text。
要创建 LangChain Document 对象(例如,用于下游任务),请使用 .create_documents。
RecursiveCharacterTextSplitter 设置的参数:
chunk_size:块的最大大小,其中大小由length_function确定。chunk_overlap:块之间的目标重叠。重叠块有助于减轻上下文在块之间分割时的信息丢失。length_function:确定块大小的函数。is_separator_regex:分隔符列表(默认为["\n\n", "\n", " ", ""])是否应解释为正则表达式。
分割没有词边界的语言的文本
某些书写系统没有词边界,例如中文、日语和泰语。使用默认分隔符列表["\n\n", "\n", " ", ""] 分割文本可能导致单词在块之间被分割。为了保持单词在一起,您可以覆盖分隔符列表以包含其他标点符号:
- 添加 ASCII 句号 “
.”、Unicode 全角句号 “.”(用于中文文本)和表意句号 “。”(用于日语和中文) - 添加在泰语、缅甸语、高棉语和日语中使用的零宽空格。
- 添加 ASCII 逗号 “
,”、Unicode 全角逗号 “,” 和 Unicode 表意逗号 “、”