langchain-text-splitters¶
langchain-text-splitters 包的参考文档。
langchain_text_splitters ¶
文本分割器是用于分割文本的类。
注意
MarkdownHeaderTextSplitter 和 HTMLHeaderTextSplitter 不派生自 TextSplitter。
| 函数 | 描述 |
|---|---|
split_text_on_tokens |
使用分词器分割输入文本并返回块。 |
TextSplitter ¶
基类:BaseDocumentTransformer, ABC
将文本分割成块的接口。
| 方法 | 描述 |
|---|---|
atransform_documents |
异步转换文档列表。 |
__init__ |
创建一个新的 TextSplitter。 |
split_text |
将文本分割成多个组件。 |
create_documents |
从文本列表创建 |
split_documents |
分割文档。 |
from_huggingface_tokenizer |
使用 Hugging Face 分词器计算长度的文本分割器。 |
from_tiktoken_encoder |
使用 |
transform_documents |
通过分割来转换文档序列。 |
atransform_documents async ¶
__init__ ¶
__init__(
chunk_size: int = 4000,
chunk_overlap: int = 200,
length_function: Callable[[str], int] = len,
keep_separator: bool | Literal["start", "end"] = False,
add_start_index: bool = False,
strip_whitespace: bool = True,
) -> None
创建一个新的 TextSplitter。
| 参数 | 描述 |
|---|---|
chunk_size
|
返回的块的最大大小
类型: |
chunk_overlap
|
块之间的字符重叠
类型: |
length_function
|
测量给定块长度的函数 |
keep_separator
|
是否保留分隔符以及将其放置在每个对应块中的位置 |
add_start_index
|
如果为
类型: |
strip_whitespace
|
如果为
类型: |
create_documents ¶
create_documents(
texts: list[str], metadatas: list[dict[Any, Any]] | None = None
) -> list[Document]
从文本列表创建 Document 对象列表。
from_huggingface_tokenizer classmethod ¶
from_huggingface_tokenizer(
tokenizer: PreTrainedTokenizerBase, **kwargs: Any
) -> TextSplitter
使用 Hugging Face 分词器计算长度的文本分割器。
Tokenizer dataclass ¶
分词器数据类。
TokenTextSplitter ¶
基类:TextSplitter
使用模型分词器将文本分割成令牌。
| 方法 | 描述 |
|---|---|
transform_documents |
通过分割来转换文档序列。 |
atransform_documents |
异步转换文档列表。 |
create_documents |
从文本列表创建 |
split_documents |
分割文档。 |
from_huggingface_tokenizer |
使用 Hugging Face 分词器计算长度的文本分割器。 |
from_tiktoken_encoder |
使用 |
__init__ |
创建一个新的 TextSplitter。 |
split_text |
根据分词将输入文本分割成更小的块。 |
transform_documents ¶
通过分割来转换文档序列。
atransform_documents async ¶
create_documents ¶
create_documents(
texts: list[str], metadatas: list[dict[Any, Any]] | None = None
) -> list[Document]
从文本列表创建 Document 对象列表。
from_huggingface_tokenizer classmethod ¶
from_huggingface_tokenizer(
tokenizer: PreTrainedTokenizerBase, **kwargs: Any
) -> TextSplitter
使用 Hugging Face 分词器计算长度的文本分割器。
from_tiktoken_encoder classmethod ¶
from_tiktoken_encoder(
encoding_name: str = "gpt2",
model_name: str | None = None,
allowed_special: Literal["all"] | Set[str] = set(),
disallowed_special: Literal["all"] | Collection[str] = "all",
**kwargs: Any,
) -> Self
使用 tiktoken 编码器计算长度的文本分割器。
CharacterTextSplitter ¶
基类:TextSplitter
按字符分割文本。
| 方法 | 描述 |
|---|---|
transform_documents |
通过分割来转换文档序列。 |
atransform_documents |
异步转换文档列表。 |
create_documents |
从文本列表创建 |
split_documents |
分割文档。 |
from_huggingface_tokenizer |
使用 Hugging Face 分词器计算长度的文本分割器。 |
from_tiktoken_encoder |
使用 |
__init__ |
创建一个新的 TextSplitter。 |
split_text |
分割成块而不重新插入环视分隔符。 |
transform_documents ¶
通过分割来转换文档序列。
atransform_documents async ¶
create_documents ¶
create_documents(
texts: list[str], metadatas: list[dict[Any, Any]] | None = None
) -> list[Document]
从文本列表创建 Document 对象列表。
from_huggingface_tokenizer classmethod ¶
from_huggingface_tokenizer(
tokenizer: PreTrainedTokenizerBase, **kwargs: Any
) -> TextSplitter
使用 Hugging Face 分词器计算长度的文本分割器。
from_tiktoken_encoder classmethod ¶
from_tiktoken_encoder(
encoding_name: str = "gpt2",
model_name: str | None = None,
allowed_special: Literal["all"] | Set[str] = set(),
disallowed_special: Literal["all"] | Collection[str] = "all",
**kwargs: Any,
) -> Self
使用 tiktoken 编码器计算长度的文本分割器。
__init__ ¶
创建一个新的 TextSplitter。
RecursiveCharacterTextSplitter ¶
基类:TextSplitter
通过递归查找字符来分割文本。
递归地尝试按不同的字符分割以找到有效的分隔符。
| 方法 | 描述 |
|---|---|
transform_documents |
通过分割来转换文档序列。 |
atransform_documents |
异步转换文档列表。 |
create_documents |
从文本列表创建 |
split_documents |
分割文档。 |
from_huggingface_tokenizer |
使用 Hugging Face 分词器计算长度的文本分割器。 |
from_tiktoken_encoder |
使用 |
__init__ |
创建一个新的 TextSplitter。 |
split_text |
根据预定义的分隔符将输入文本分割成更小的块。 |
from_language |
根据特定语言返回此类的实例。 |
get_separators_for_language |
检索给定语言的特定分隔符列表。 |
transform_documents ¶
通过分割来转换文档序列。
atransform_documents async ¶
create_documents ¶
create_documents(
texts: list[str], metadatas: list[dict[Any, Any]] | None = None
) -> list[Document]
从文本列表创建 Document 对象列表。
from_huggingface_tokenizer classmethod ¶
from_huggingface_tokenizer(
tokenizer: PreTrainedTokenizerBase, **kwargs: Any
) -> TextSplitter
使用 Hugging Face 分词器计算长度的文本分割器。
from_tiktoken_encoder classmethod ¶
from_tiktoken_encoder(
encoding_name: str = "gpt2",
model_name: str | None = None,
allowed_special: Literal["all"] | Set[str] = set(),
disallowed_special: Literal["all"] | Collection[str] = "all",
**kwargs: Any,
) -> Self
使用 tiktoken 编码器计算长度的文本分割器。
__init__ ¶
__init__(
separators: list[str] | None = None,
keep_separator: bool | Literal["start", "end"] = True,
is_separator_regex: bool = False,
**kwargs: Any,
) -> None
创建一个新的 TextSplitter。
split_text ¶
from_language classmethod ¶
from_language(language: Language, **kwargs: Any) -> RecursiveCharacterTextSplitter
根据特定语言返回此类的实例。
此方法使用特定于语言的分隔符初始化文本分割器。
| 参数 | 描述 |
|---|---|
language
|
配置文本分割器所用的语言。
类型: |
**kwargs
|
用于自定义分割器的其他关键字参数。
类型: |
| 返回 | 描述 |
|---|---|
RecursiveCharacterTextSplitter
|
为指定语言配置的文本分割器实例。 |
HTMLHeaderTextSplitter ¶
根据指定的标题将 HTML 内容分割成结构化文档。
通过检测指定的标题标签并将 HTML 内容分割,并创建反映原始内容语义层次结构的 Document 对象。对于每个识别出的部分,分割器将提取的文本与与遇到的标题对应的元数据关联起来。
如果未找到指定的标题,则整个内容将作为单个 Document 返回。这允许灵活处理 HTML 输入,确保信息根据其语义标题进行组织。
分割器提供选项,可以将每个 HTML 元素作为单独的 Document 返回,或者将它们聚合到具有语义意义的块中。它还优雅地处理多级嵌套标题,创建丰富、分层的内容表示。
示例
from langchain_text_splitters.html_header_text_splitter import (
HTMLHeaderTextSplitter,
)
# Define headers for splitting on h1 and h2 tags.
headers_to_split_on = [("h1", "Main Topic"), ("h2", "Sub Topic")]
splitter = HTMLHeaderTextSplitter(
headers_to_split_on=headers_to_split_on,
return_each_element=False
)
html_content = """
<html>
<body>
<h1>Introduction</h1>
<p>Welcome to the introduction section.</p>
<h2>Background</h2>
<p>Some background details here.</p>
<h1>Conclusion</h1>
<p>Final thoughts.</p>
</body>
</html>
"""
documents = splitter.split_text(html_content)
# 'documents' now contains Document objects reflecting the hierarchy:
# - Document with metadata={"Main Topic": "Introduction"} and
# content="Introduction"
# - Document with metadata={"Main Topic": "Introduction"} and
# content="Welcome to the introduction section."
# - Document with metadata={"Main Topic": "Introduction",
# "Sub Topic": "Background"} and content="Background"
# - Document with metadata={"Main Topic": "Introduction",
# "Sub Topic": "Background"} and content="Some background details here."
# - Document with metadata={"Main Topic": "Conclusion"} and
# content="Conclusion"
# - Document with metadata={"Main Topic": "Conclusion"} and
# content="Final thoughts."
| 方法 | 描述 |
|---|---|
__init__ |
使用要分割的标题进行初始化。 |
split_text |
将给定文本分割成 |
split_text_from_url |
从 URL 获取文本内容并将其分割成文档。 |
split_text_from_file |
将文件中的 HTML 内容分割成 |
__init__ ¶
使用要分割的标题进行初始化。
| 参数 | 描述 |
|---|---|
headers_to_split_on
|
表示分割边界的 |
return_each_element
|
如果为
类型: |
split_text ¶
split_text_from_url ¶
HTMLSectionSplitter ¶
根据指定的标签和字体大小分割 HTML 文件。
需要 lxml 包。
| 方法 | 描述 |
|---|---|
__init__ |
创建一个新的 |
split_documents |
分割文档。 |
split_text |
分割 HTML 文本字符串。 |
create_documents |
从文本列表创建 |
split_html_by_headers |
根据指定的标题标签将 HTML 文档分割成节。 |
convert_possible_tags_to_header |
使用 XSLT 转换将特定的 HTML 标签转换为标题。 |
split_text_from_file |
将文件中的 HTML 内容分割成 |
HTMLSemanticPreservingSplitter ¶
基类:BaseDocumentTransformer
分割 HTML 内容,同时保留语义结构。
按标题将 HTML 内容分割成通用块,同时保留语义结构。如果块超出最大块大小,它将使用 RecursiveCharacterTextSplitter 进行进一步分割。
分割器保留完整的 HTML 元素,并将链接转换为类似 Markdown 的链接。它还可以通过将图像、视频和音频元素转换为 Markdown 格式来保留它们。请注意,为了保持语义完整性,某些块可能会超出最大大小。
0.3.5 版新增
示例
from langchain_text_splitters.html import HTMLSemanticPreservingSplitter
def custom_iframe_extractor(iframe_tag):
```
Custom handler function to extract the 'src' attribute from an <iframe> tag.
Converts the iframe to a Markdown-like link: [iframe:<src>](src).
Args:
iframe_tag (bs4.element.Tag): The <iframe> tag to be processed.
Returns:
str: A formatted string representing the iframe in Markdown-like format.
```
iframe_src = iframe_tag.get('src', '')
return f"[iframe:{iframe_src}]({iframe_src})"
text_splitter = HTMLSemanticPreservingSplitter(
headers_to_split_on=[("h1", "Header 1"), ("h2", "Header 2")],
max_chunk_size=500,
preserve_links=True,
preserve_images=True,
custom_handlers={"iframe": custom_iframe_extractor}
)
| 方法 | 描述 |
|---|---|
atransform_documents |
异步转换文档列表。 |
__init__ |
初始化分割器。 |
split_text |
根据配置将提供的 HTML 文本分割成较小的块。 |
transform_documents |
通过分割来转换文档序列。 |
atransform_documents async ¶
__init__ ¶
__init__(
headers_to_split_on: list[tuple[str, str]],
*,
max_chunk_size: int = 1000,
chunk_overlap: int = 0,
separators: list[str] | None = None,
elements_to_preserve: list[str] | None = None,
preserve_links: bool = False,
preserve_images: bool = False,
preserve_videos: bool = False,
preserve_audio: bool = False,
custom_handlers: dict[str, Callable[[Tag], str]] | None = None,
stopword_removal: bool = False,
stopword_lang: str = "english",
normalize_text: bool = False,
external_metadata: dict[str, str] | None = None,
allowlist_tags: list[str] | None = None,
denylist_tags: list[str] | None = None,
preserve_parent_metadata: bool = False,
keep_separator: bool | Literal["start", "end"] = True,
) -> None
初始化分割器。
| 参数 | 描述 |
|---|---|
headers_to_split_on
|
定义内容部分的 HTML 标题(例如 |
max_chunk_size
|
每个块的最大大小,允许超出此限制以保留语义。
类型: |
chunk_overlap
|
为确保上下文连续性,块之间重叠的字符数。
类型: |
separators
|
|
elements_to_preserve
|
在分割过程中保持完整的 HTML 标签(例如 |
preserve_links
|
将
类型: |
preserve_images
|
将
类型: |
preserve_videos
|
将
类型: |
preserve_audio
|
将
类型: |
custom_handlers
|
可选的特定 HTML 标签自定义处理程序,允许量身定制的提取或处理。 |
stopword_removal
|
(可选)从文本中删除停用词。
类型: |
stopword_lang
|
要删除的停用词语言。
类型: |
normalize_text
|
(可选)规范化文本(例如,小写、删除标点符号)。
类型: |
external_metadata
|
要附加到 Document 对象的额外元数据。 |
allowlist_tags
|
只有这些标签将保留在 HTML 中。 |
denylist_tags
|
这些标签将从 HTML 中删除。 |
preserve_parent_metadata
|
在调用
类型: |
keep_separator
|
分隔符应该位于块的开头、结尾还是根本不应该位于块中。 |
split_text ¶
RecursiveJsonSplitter ¶
将 JSON 数据分割成更小、结构化的块,同时保留层次结构。
此类提供将 JSON 数据分割成较小的字典或 JSON 格式字符串的方法,基于可配置的最大和最小块大小。它支持嵌套 JSON 结构,可以选择将列表转换为字典以便更好地分块,并允许创建文档对象以供进一步使用。
| 方法 | 描述 |
|---|---|
__init__ |
为文本处理初始化块大小配置。 |
split_json |
将 JSON 分割成 JSON 块列表。 |
split_text |
将 JSON 分割成 JSON 格式字符串列表。 |
create_documents |
从 json 对象列表( |
min_chunk_size class-attribute instance-attribute ¶
min_chunk_size: int = (
min_chunk_size if min_chunk_size is not None else max(max_chunk_size - 200, 50)
)
每个块的最小大小,如果未明确提供,则从 max_chunk_size 派生。
__init__ ¶
split_json ¶
将 JSON 分割成 JSON 块列表。
JSFrameworkTextSplitter ¶
基类:RecursiveCharacterTextSplitter
处理 React (JSX)、Vue 和 Svelte 代码的文本分割器。
此分割器通过以下方式扩展 RecursiveCharacterTextSplitter 以处理 React (JSX)、Vue 和 Svelte 代码:
- 检测并从文本中提取自定义组件标签
- 将这些标签作为附加分隔符以及标准 JS 语法
分割器结合了
- 自定义组件标签作为分隔符(例如
) - JavaScript 语法元素(function、const、if 等)
- 按换行符进行标准文本分割
这允许块在 React、Vue 和 Svelte 组件代码的自然边界处中断。
| 方法 | 描述 |
|---|---|
transform_documents |
通过分割来转换文档序列。 |
atransform_documents |
异步转换文档列表。 |
create_documents |
从文本列表创建 |
split_documents |
分割文档。 |
from_huggingface_tokenizer |
使用 Hugging Face 分词器计算长度的文本分割器。 |
from_tiktoken_encoder |
使用 |
from_language |
根据特定语言返回此类的实例。 |
get_separators_for_language |
检索给定语言的特定分隔符列表。 |
__init__ |
初始化 JS Framework 文本分割器。 |
split_text |
将文本分割成块。 |
transform_documents ¶
通过分割来转换文档序列。
atransform_documents async ¶
create_documents ¶
create_documents(
texts: list[str], metadatas: list[dict[Any, Any]] | None = None
) -> list[Document]
从文本列表创建 Document 对象列表。
from_huggingface_tokenizer classmethod ¶
from_huggingface_tokenizer(
tokenizer: PreTrainedTokenizerBase, **kwargs: Any
) -> TextSplitter
使用 Hugging Face 分词器计算长度的文本分割器。
from_tiktoken_encoder classmethod ¶
from_tiktoken_encoder(
encoding_name: str = "gpt2",
model_name: str | None = None,
allowed_special: Literal["all"] | Set[str] = set(),
disallowed_special: Literal["all"] | Collection[str] = "all",
**kwargs: Any,
) -> Self
使用 tiktoken 编码器计算长度的文本分割器。
from_language classmethod ¶
from_language(language: Language, **kwargs: Any) -> RecursiveCharacterTextSplitter
根据特定语言返回此类的实例。
此方法使用特定于语言的分隔符初始化文本分割器。
| 参数 | 描述 |
|---|---|
language
|
配置文本分割器所用的语言。
类型: |
**kwargs
|
用于自定义分割器的其他关键字参数。
类型: |
| 返回 | 描述 |
|---|---|
RecursiveCharacterTextSplitter
|
为指定语言配置的文本分割器实例。 |
get_separators_for_language staticmethod ¶
KonlpyTextSplitter ¶
基类:TextSplitter
使用 Konlpy 包分割文本。
它很适合分割韩语文本。
| 方法 | 描述 |
|---|---|
transform_documents |
通过分割来转换文档序列。 |
atransform_documents |
异步转换文档列表。 |
create_documents |
从文本列表创建 |
split_documents |
分割文档。 |
from_huggingface_tokenizer |
使用 Hugging Face 分词器计算长度的文本分割器。 |
from_tiktoken_encoder |
使用 |
__init__ |
初始化 Konlpy 文本分割器。 |
split_text |
分割传入文本并返回块。 |
transform_documents ¶
通过分割来转换文档序列。
atransform_documents async ¶
create_documents ¶
create_documents(
texts: list[str], metadatas: list[dict[Any, Any]] | None = None
) -> list[Document]
从文本列表创建 Document 对象列表。
from_huggingface_tokenizer classmethod ¶
from_huggingface_tokenizer(
tokenizer: PreTrainedTokenizerBase, **kwargs: Any
) -> TextSplitter
使用 Hugging Face 分词器计算长度的文本分割器。
LatexTextSplitter ¶
基类:RecursiveCharacterTextSplitter
尝试沿 Latex 格式的布局元素分割文本。
| 方法 | 描述 |
|---|---|
transform_documents |
通过分割来转换文档序列。 |
atransform_documents |
异步转换文档列表。 |
split_text |
根据预定义的分隔符将输入文本分割成更小的块。 |
create_documents |
从文本列表创建 |
split_documents |
分割文档。 |
from_huggingface_tokenizer |
使用 Hugging Face 分词器计算长度的文本分割器。 |
from_tiktoken_encoder |
使用 |
from_language |
根据特定语言返回此类的实例。 |
get_separators_for_language |
检索给定语言的特定分隔符列表。 |
__init__ |
初始化 LatexTextSplitter。 |
transform_documents ¶
通过分割来转换文档序列。
atransform_documents async ¶
split_text ¶
create_documents ¶
create_documents(
texts: list[str], metadatas: list[dict[Any, Any]] | None = None
) -> list[Document]
从文本列表创建 Document 对象列表。
from_huggingface_tokenizer classmethod ¶
from_huggingface_tokenizer(
tokenizer: PreTrainedTokenizerBase, **kwargs: Any
) -> TextSplitter
使用 Hugging Face 分词器计算长度的文本分割器。
from_tiktoken_encoder classmethod ¶
from_tiktoken_encoder(
encoding_name: str = "gpt2",
model_name: str | None = None,
allowed_special: Literal["all"] | Set[str] = set(),
disallowed_special: Literal["all"] | Collection[str] = "all",
**kwargs: Any,
) -> Self
使用 tiktoken 编码器计算长度的文本分割器。
from_language classmethod ¶
from_language(language: Language, **kwargs: Any) -> RecursiveCharacterTextSplitter
根据特定语言返回此类的实例。
此方法使用特定于语言的分隔符初始化文本分割器。
| 参数 | 描述 |
|---|---|
language
|
配置文本分割器所用的语言。
类型: |
**kwargs
|
用于自定义分割器的其他关键字参数。
类型: |
| 返回 | 描述 |
|---|---|
RecursiveCharacterTextSplitter
|
为指定语言配置的文本分割器实例。 |
get_separators_for_language staticmethod ¶
ExperimentalMarkdownSyntaxTextSplitter ¶
用于处理 Markdown 语法的实验性文本分割器。
此分割器旨在保留原始文本的确切空白,同时提取结构化元数据(例如标题)。它是 MarkdownHeaderTextSplitter 的重新实现,在方法和附加功能方面有显著变化。
主要特点
- 保留 Markdown 文本的原始空白和格式。
- 提取标题、代码块和水平线作为元数据。
- 分割代码块并将语言包含在“Code”元数据键中。
- 也按水平线(
---)分割文本。 - 默认为合理的分割行为,可以使用
headers_to_split_on参数覆盖。
示例
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)
此类目前处于实验阶段,可能会根据反馈和进一步开发进行更改。
| 方法 | 描述 |
|---|---|
__init__ |
使用标题分割和格式选项初始化文本分割器。 |
split_text |
将输入文本分割成结构化块。 |
__init__ ¶
__init__(
headers_to_split_on: list[tuple[str, str]] | None = None,
return_each_line: bool = False,
strip_headers: bool = True,
) -> None
MarkdownHeaderTextSplitter ¶
根据指定的标题分割 Markdown 文件。
| 方法 | 描述 |
|---|---|
__init__ |
创建一个新的 MarkdownHeaderTextSplitter。 |
aggregate_lines_to_chunks |
将具有相同元数据的行组合成块。 |
split_text |
分割 Markdown 文件。 |
__init__ ¶
__init__(
headers_to_split_on: list[tuple[str, str]],
return_each_line: bool = False,
strip_headers: bool = True,
custom_header_patterns: dict[str, int] | None = None,
) -> None
aggregate_lines_to_chunks ¶
MarkdownTextSplitter ¶
基类:RecursiveCharacterTextSplitter
尝试沿 Markdown 格式的标题分割文本。
| 方法 | 描述 |
|---|---|
transform_documents |
通过分割来转换文档序列。 |
atransform_documents |
异步转换文档列表。 |
split_text |
根据预定义的分隔符将输入文本分割成更小的块。 |
create_documents |
从文本列表创建 |
split_documents |
分割文档。 |
from_huggingface_tokenizer |
使用 Hugging Face 分词器计算长度的文本分割器。 |
from_tiktoken_encoder |
使用 |
from_language |
根据特定语言返回此类的实例。 |
get_separators_for_language |
检索给定语言的特定分隔符列表。 |
__init__ |
初始化 MarkdownTextSplitter。 |
transform_documents ¶
通过分割来转换文档序列。
atransform_documents async ¶
split_text ¶
create_documents ¶
create_documents(
texts: list[str], metadatas: list[dict[Any, Any]] | None = None
) -> list[Document]
从文本列表创建 Document 对象列表。
from_huggingface_tokenizer classmethod ¶
from_huggingface_tokenizer(
tokenizer: PreTrainedTokenizerBase, **kwargs: Any
) -> TextSplitter
使用 Hugging Face 分词器计算长度的文本分割器。
from_tiktoken_encoder classmethod ¶
from_tiktoken_encoder(
encoding_name: str = "gpt2",
model_name: str | None = None,
allowed_special: Literal["all"] | Set[str] = set(),
disallowed_special: Literal["all"] | Collection[str] = "all",
**kwargs: Any,
) -> Self
使用 tiktoken 编码器计算长度的文本分割器。
from_language classmethod ¶
from_language(language: Language, **kwargs: Any) -> RecursiveCharacterTextSplitter
根据特定语言返回此类的实例。
此方法使用特定于语言的分隔符初始化文本分割器。
| 参数 | 描述 |
|---|---|
language
|
配置文本分割器所用的语言。
类型: |
**kwargs
|
用于自定义分割器的其他关键字参数。
类型: |
| 返回 | 描述 |
|---|---|
RecursiveCharacterTextSplitter
|
为指定语言配置的文本分割器实例。 |
get_separators_for_language staticmethod ¶
NLTKTextSplitter ¶
基类:TextSplitter
使用 NLTK 包分割文本。
| 方法 | 描述 |
|---|---|
transform_documents |
通过分割来转换文档序列。 |
atransform_documents |
异步转换文档列表。 |
create_documents |
从文本列表创建 |
split_documents |
分割文档。 |
from_huggingface_tokenizer |
使用 Hugging Face 分词器计算长度的文本分割器。 |
from_tiktoken_encoder |
使用 |
__init__ |
初始化 NLTK 分割器。 |
split_text |
分割传入文本并返回块。 |
transform_documents ¶
通过分割来转换文档序列。
atransform_documents async ¶
create_documents ¶
create_documents(
texts: list[str], metadatas: list[dict[Any, Any]] | None = None
) -> list[Document]
从文本列表创建 Document 对象列表。
from_huggingface_tokenizer classmethod ¶
from_huggingface_tokenizer(
tokenizer: PreTrainedTokenizerBase, **kwargs: Any
) -> TextSplitter
使用 Hugging Face 分词器计算长度的文本分割器。
from_tiktoken_encoder classmethod ¶
from_tiktoken_encoder(
encoding_name: str = "gpt2",
model_name: str | None = None,
allowed_special: Literal["all"] | Set[str] = set(),
disallowed_special: Literal["all"] | Collection[str] = "all",
**kwargs: Any,
) -> Self
使用 tiktoken 编码器计算长度的文本分割器。
PythonCodeTextSplitter ¶
基类:RecursiveCharacterTextSplitter
尝试沿 Python 语法分割文本。
| 方法 | 描述 |
|---|---|
transform_documents |
通过分割来转换文档序列。 |
atransform_documents |
异步转换文档列表。 |
split_text |
根据预定义的分隔符将输入文本分割成更小的块。 |
create_documents |
从文本列表创建 |
split_documents |
分割文档。 |
from_huggingface_tokenizer |
使用 Hugging Face 分词器计算长度的文本分割器。 |
from_tiktoken_encoder |
使用 |
from_language |
根据特定语言返回此类的实例。 |
get_separators_for_language |
检索给定语言的特定分隔符列表。 |
__init__ |
初始化 PythonCodeTextSplitter。 |
transform_documents ¶
通过分割来转换文档序列。
atransform_documents async ¶
split_text ¶
create_documents ¶
create_documents(
texts: list[str], metadatas: list[dict[Any, Any]] | None = None
) -> list[Document]
从文本列表创建 Document 对象列表。
from_huggingface_tokenizer classmethod ¶
from_huggingface_tokenizer(
tokenizer: PreTrainedTokenizerBase, **kwargs: Any
) -> TextSplitter
使用 Hugging Face 分词器计算长度的文本分割器。
from_tiktoken_encoder classmethod ¶
from_tiktoken_encoder(
encoding_name: str = "gpt2",
model_name: str | None = None,
allowed_special: Literal["all"] | Set[str] = set(),
disallowed_special: Literal["all"] | Collection[str] = "all",
**kwargs: Any,
) -> Self
使用 tiktoken 编码器计算长度的文本分割器。
from_language classmethod ¶
from_language(language: Language, **kwargs: Any) -> RecursiveCharacterTextSplitter
根据特定语言返回此类的实例。
此方法使用特定于语言的分隔符初始化文本分割器。
| 参数 | 描述 |
|---|---|
language
|
配置文本分割器所用的语言。
类型: |
**kwargs
|
用于自定义分割器的其他关键字参数。
类型: |
| 返回 | 描述 |
|---|---|
RecursiveCharacterTextSplitter
|
为指定语言配置的文本分割器实例。 |
get_separators_for_language staticmethod ¶
SentenceTransformersTokenTextSplitter ¶
基类:TextSplitter
使用句子模型分词器将文本分割成令牌。
| 方法 | 描述 |
|---|---|
transform_documents |
通过分割来转换文档序列。 |
atransform_documents |
异步转换文档列表。 |
create_documents |
从文本列表创建 |
split_documents |
分割文档。 |
from_huggingface_tokenizer |
使用 Hugging Face 分词器计算长度的文本分割器。 |
from_tiktoken_encoder |
使用 |
__init__ |
创建一个新的 TextSplitter。 |
split_text |
通过将文本分割成令牌,将输入文本分割成更小的组件。 |
count_tokens |
计算给定文本中的令牌数。 |
transform_documents ¶
通过分割来转换文档序列。
atransform_documents async ¶
create_documents ¶
create_documents(
texts: list[str], metadatas: list[dict[Any, Any]] | None = None
) -> list[Document]
从文本列表创建 Document 对象列表。
from_huggingface_tokenizer classmethod ¶
from_huggingface_tokenizer(
tokenizer: PreTrainedTokenizerBase, **kwargs: Any
) -> TextSplitter
使用 Hugging Face 分词器计算长度的文本分割器。
from_tiktoken_encoder classmethod ¶
from_tiktoken_encoder(
encoding_name: str = "gpt2",
model_name: str | None = None,
allowed_special: Literal["all"] | Set[str] = set(),
disallowed_special: Literal["all"] | Collection[str] = "all",
**kwargs: Any,
) -> Self
使用 tiktoken 编码器计算长度的文本分割器。
__init__ ¶
__init__(
chunk_overlap: int = 50,
model_name: str = "sentence-transformers/all-mpnet-base-v2",
tokens_per_chunk: int | None = None,
**kwargs: Any,
) -> None
创建一个新的 TextSplitter。
split_text ¶
SpacyTextSplitter ¶
基类:TextSplitter
使用 Spacy 包分割文本。
默认情况下,Spacy 的 en_core_web_sm 模型被使用,其默认的 max_length 为 1000000(这是该模型接受的最大字符长度,对于大型文件可以增加)。为了更快但可能不太准确的拆分,您可以使用 pipeline='sentencizer'。
| 方法 | 描述 |
|---|---|
transform_documents |
通过分割来转换文档序列。 |
atransform_documents |
异步转换文档列表。 |
create_documents |
从文本列表创建 |
split_documents |
分割文档。 |
from_huggingface_tokenizer |
使用 Hugging Face 分词器计算长度的文本分割器。 |
from_tiktoken_encoder |
使用 |
__init__ |
初始化 Spacy 文本分割器。 |
split_text |
分割传入文本并返回块。 |
transform_documents ¶
通过分割来转换文档序列。
atransform_documents async ¶
create_documents ¶
create_documents(
texts: list[str], metadatas: list[dict[Any, Any]] | None = None
) -> list[Document]
从文本列表创建 Document 对象列表。
from_huggingface_tokenizer classmethod ¶
from_huggingface_tokenizer(
tokenizer: PreTrainedTokenizerBase, **kwargs: Any
) -> TextSplitter
使用 Hugging Face 分词器计算长度的文本分割器。
from_tiktoken_encoder classmethod ¶
from_tiktoken_encoder(
encoding_name: str = "gpt2",
model_name: str | None = None,
allowed_special: Literal["all"] | Set[str] = set(),
disallowed_special: Literal["all"] | Collection[str] = "all",
**kwargs: Any,
) -> Self
使用 tiktoken 编码器计算长度的文本分割器。