基本用法:
MarkdownHeaderTextSplitter 会从输出块的内容中剥离正在分割的标题。可以通过设置 strip_headers = False 来禁用此功能。
默认的
MarkdownHeaderTextSplitter 会剥离空格和换行符。要保留 Markdown 文档的原始格式,请查看 ExperimentalMarkdownSyntaxTextSplitter。如何将 Markdown 行作为单独的文档返回
默认情况下,MarkdownHeaderTextSplitter 根据 headers_to_split_on 中指定的标题聚合行。我们可以通过指定 return_each_line 来禁用此功能:
metadata 中。
如何限制块大小:
在每个 Markdown 组内,我们可以应用任何我们想要的文本分割器,例如RecursiveCharacterTextSplitter,它允许进一步控制块大小。
故障排除:chunk_overlap 似乎不适用
- 在基于标题的分割(例如,
MarkdownHeaderTextSplitter)之后,使用split_documents(docs)(而不是split_text),以便在每个部分内应用重叠,并且每个部分的元数据(标题)保留在块上。 - 重叠仅在单个部分超过
chunk_size并被分割成多个块时出现。 - 重叠不会跨越部分/文档边界(例如,
# H1→## H2)。 - 如果标题变成一个小块,考虑将
strip_headers设置为True,这样标题行就不会成为独立块。 - 如果您的文本缺少换行符/空格,请在
separators中保留一个后备"",以便分割器仍然可以分割并应用重叠。