langchain_text_splitters.markdown.ExperimentalMarkdownSyntaxTextSplitter

class langchain_text_splitters.markdown.ExperimentalMarkdownSyntaxTextSplitter(headers_to_split_on: Optional[List[Tuple[str, str]]], = None, return_each_line: bool = False, strip_headers: bool = True)[源代码]

用于处理 Markdown 语法的一个实验性文本拆分器。

此拆分器旨在保留原始文本的精确空白,同时提取结构化元数据,如标题。它是 MarkdownHeaderTextSplitter 的重实现,在该方法上有重大变化,并增加了新功能。

主要特征:- 保持 Markdown 文本的原始空白和格式。- 提取标题、代码块和水平线作为元数据。- 将代码块拆分出来,并在“代码”元数据键中包含语言。- 同时在水平线上(例如,“——”)拆分文本。- 默认使用合理的拆分行为,但可以使用 headers_to_split_on 参数来覆盖。

headers_to_split_on 参数。

参数:

headers_to_split_onList[Tuple[str, str]], 可选

用于拆分的标题,默认为未指定时的常见 Markdown 标题。

return_each_linebool, 可选

当设置为 True 时,将每行作为单独的块返回。默认为 False。

使用示例:

>>> headers_to_split_on = [
>>>     ("#", "Header 1"),
>>>     ("##", "Header 2"),
>>> ]
>>> splitter = ExperimentalMarkdownSyntaxTextSplitter(
>>>     headers_to_split_on=headers_to_split_on
>>> )
>>> chunks = splitter.split(text)
>>> for chunk in chunks:
>>>     print(chunk)

此类目前为实验性,并根据反馈和进一步开发进行更改。

属性

DEFAULT_HEADER_KEYS

方法

__init__([headers_to_split_on, ...])

split_text(text)

__init__(headers_to_split_on: Optional[List[Tuple[str, str]]] = None, return_each_line: bool = False, strip_headers: bool = True)[来源]
参数:
  • headers_to_split_on (可选[列表[元组[str, str]]]) –

  • return_each_line (布尔型) –

  • strip_headers (布尔型) –

split_text(text: str) List[Document][来源]
参数:

text (str) –

返回类型:

列表[Document]

参数:
  • headers_to_split_on (联合类型[列表元组str, str]], None]) –

  • return_each_line (布尔型) –

  • strip_headers (布尔型) –