# 引言
在处理Markdown文档时,很多应用需要在将文档嵌入和进行向量存储之前对其进行分块。这篇文章将介绍如何通过标题分割Markdown文档,以便于保留文本的上下文结构。我们将探讨如何使用`MarkdownHeaderTextSplitter`来实现这一目的。
# 主要内容
## Markdown分割的动机
在嵌入完整段落或文档时,嵌入过程考虑了文本的整体上下文和句子间的关系,这样能捕捉到更广泛的意义和主题。因此,通过标题进行文本的分块,可以有效地保持这些上下文关系。
## 通过标题进行分割
使用`MarkdownHeaderTextSplitter`,可以根据指定的标题集合来分割Markdown文档。这对于保持文档结构的分块是非常直观的。
### 示例Markdown
```markdown
md = '# Foo\n\n ## Bar\n\nHi this is Jim \nHi this is Joe\n\n ## Baz\n\n Hi this is Molly'
我们可以指定需要分割的标题:
headers_to_split_on = [
("#", "Header 1"),
("##", "Header 2.")
]
内容将根据这些标题进行分组:
{
'content': 'Hi this is Jim \nHi this is Joe',
'metadata': <