基础用法:
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中保留备用"",使分割器仍能执行分块和重叠处理。
官方原文:src/oss/python/integrations/splitters/markdown_header_metadata_splitter.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。