ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

langchain1.X学习笔记-40-RAG之文档切分器(二)按Token分割TokenTextSplitter和按语义分块SemanticChunker

langchain1.X学习笔记-40-RAG之文档切分器(二)按Token分割TokenTextSplitter和按语义分块SemanticChunker 文章目录1 按Token分割1.1 TokenTextSplitter:Split by tokens1.1.1 TokenTextSplitter使用说明1.1.2 举例:使用TokenTextSplitter1.2 举例:使用CharacterTextSplitter2 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 tokens1.1.1 TokenTextSplitter使用说明(1)核心依据:Token数量 + 自然边界。TokenTextSplitter严格按照token数量进行分割,但同时会优先
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进