文章目录
- 1 按Token分割
-
- 1.1 TokenTextSplitter:Split by tokens
-
- 1.1.1 TokenTextSplitter使用说明
- 1.1.2 举例:使用TokenTextSplitter
- 1.2 举例:使用CharacterTextSplitter
- 2 SemanticChunker:语义分块
-
- 2.1 语义分割vs传统分割
- 2.2 示例
-
- 2.2.1 模型初始化
- 2.2.2 语义分块
- 2.3 参数说明
-
- 2.3.1 breakpoint_threshold_type(断点阈值类型)
- 2.3.2 breakpoint_threshold_amount(断点阈值量)
- 2.3.3 sentence_split_regex(句子切分的正则表达式)
- 3 HTMLHeaderTextSplitter(了解)
- 4 CodeTextSplitter(了解)
- 5 MarkdownTextSplitter(了解)
按token分割,按语义分块,HTML文档分割,代码文本分割,markdown文本分割。
1 按Token分割
当我们将文本拆分为块时,除了字符以外,还可以: 按Token的数量分割(而非字符或单词数),将长文本切分成多个小块。 1、什么是Token 对模型而言,Token是文本的最小处理单位。例如: 英文: “hello” → 1个Token, “ChatGPT” → 2个Token( “Chat” + “GPT”)。 中文: “人工智能” → 可能拆分为2-3个Token(取决于分词器)。
2、为什么按Token分割? (1)语言模型对输入长度的限制是基于Token数(如GPT-4的8k/32k Token上限),直接按字符或单词分割可能导致实际Token数超限。(确保每个文本块不超过模型的Token上限)。 (2)大语言模型(LLM)通常是以token的数量作为其 计量(或收费)的依据,所以采用token分割也有助于我们在使用时更方便的控制成本。
1.1 TokenTextSplitter:Split by tokens
1.1.1 TokenTextSplitter使用说明
(1)核心依据:Token数量 + 自然边界。 TokenTextSplitter严格按照token数量进行分割,但同时会优先






