一、为什么要文本分割?

  1. 适应上下文窗口: 这是最主要的原因。将长文档分割成小块,可以让我们在处理时只关注与用户问题最相关的部分。

  2. 提升检索效率和质量: 在 RAG (检索增强生成) 流程中,我们通常会对这些小块进行嵌入并存入向量数据库。更小、更具语义焦点的文本块能够提供更精确的检索结果。如果一个文本块太大,它可能包含太多不相关的主题,从而“稀释”了其向量表示的语义

  3. 检索质量 (Retrieval Quality):这是最直接的影响。分块的粒度(大小)、内容边界的确定方式(按句子?按段落?按固定长度?)、以及块与块之间的关联方式(是否有重叠?),都直接决定了检索器(Retriever)能否在用户提出查询时,准确、全面地找到最相关的文本片段。糟糕的分块会导致检索器返回:

    • 不相关信息:块太大,包含太多噪音。

    • 不完整信息:块太小,或切割不当,丢失关键上下文。

    • 冗余信息:多个块包含高度重叠或相似的内容。

二、文本分割的简单介绍

  • 小块(Smaller Chunks):

    • 优点 :信息更聚焦,语义更集中。这使得查询向量更容易匹配到包含特定关键词或高度相关语义的小块,从而提高检索的精度。更容易命中“靶心”。

    • 缺点 :可能丢失重要的上下文信息。单个小块可能只包含一个事实片段,缺乏必要的背景、前提或后续解释,导致 LLM 无法理解完整的语境或回答需要综合信息的复杂问题。如同盲人摸象,只得其一隅。

  • 大块 (Larger Chunks):

    • 优点 :能保留更丰富的上下文信息,包含更长的逻辑链条或更完整的背景描述。这有助于 LLM 理解更复杂的概念、事件的前因后果或不同信息点之间的关系。

    • 缺点 :可能包含较多与当前查询不直接相关的信息(噪音),从而稀释了核心相关性信号,可能降低检索精度(匹配到包含相关词但整体主题跑偏的块)。同时,更大的块也增加了 LLM 处理的负担和潜在的幻觉风险。

三、 LangChain 框架介绍            

        LangChain 中的文本分割器是专门为 RAG 场景设计的文本切分工具集,核心解决「长文本适配模型上下文窗口」「切分后语义完整」「避免跨块语义断裂」三大核心问题,也是实现 RAG 高效检索的关键组件。

        与手动写固定长度切分逻辑不同,LangChain 文本分割器封装了分块大小、块重叠、语义边界识别、格式适配等核心能力,支持通用文本、结构化文档(Markdown/PDF)、代码、表格等几乎所有文本类型,且可灵活定制切分规则,是 RAG 开发中最常用的基础组件之一。

        所有文本分割器均继承自基类 TextSplitter,拥有统一的核心参数和调用方法,开箱即用、可扩展性极强,以下从核心基础、主流分割器详解、选型指南、高级定制、实操案例五个维度全面介绍,兼顾新手入门和企业级开发需求。

四、LangChain核心基础

        LangChain 所有文本分割器共享统一的核心参数标准调用方法,这是使用所有分割器的基础,先掌握这部分,后续学习具体分割器会事半功倍。

1. 核心通用参数(必配 / 选配)

所有分割器的初始化都支持以下核心参数,用于定义切分的基础规则,参数值需与嵌入模型、LLM 上下文窗口匹配(中文场景推荐值已标注):

参数名 英文 核心作用 中文场景推荐值 注意事项
分块大小 chunk_size 单个文本块的最大长度(按「字符数 / 词数」计算,由分割器决定) 200-500 字符(通用文本) 不可超过嵌入模型最大输入长度(如 BGE-small-zh 对应 500 字符左右)
块重叠 chunk_overlap 相邻文本块的重叠长度,避免跨块语义断裂 块大小的 10%-20%(如 500 字符对应 50-100 字符) 不可过高(>30%),否则会产生大量冗余数据
长度计算函数 length_function 自定义「文本长度计算规则」(默认:按字符数 / 词数) 默认即可(中文用字符数) 可自定义(如按 Token 数计算,适配 LLM 上下文)
分隔符 separators 自定义切分的「语义边界符」(如换行、段落、标题符) 默认即可(LangChain 内置多语言适配) 优先级高于固定长度,语义边界优先切分

2. 核心标准方法

所有分割器都实现了以下 3 个核心方法,调用逻辑完全统一,无需针对不同分割器做适配:

方法名 作用 常用场景
split_text(text: str) -> List[str] 切分单个字符串,返回文本块列表 处理纯文本、短文档
create_documents(texts: List[str], metadatas: Optional[List[dict]] = None) -> List[Document] 切分文本列表,并为每个文本块绑定元信息(metadata),返回 Document 对象列表 批量处理多文档,需保留来源 / 页码等元信息(RAG 核心方法)
split_documents(documents: List[Document]) -> List[Document] 切分已有的 Document 对象列表,返回切分后的 Document 列表 处理已加载的 LangChain 文档对象(如 PyPDFLoader 加载的结果)

3. 核心数据结构:Document

LangChain 中处理文本的核心数据结构是 Document,分割器的核心输出也是该类型,包含文本内容元信息,完美适配后续向量化和向量数据库入库:

运行

from langchain_core.documents import Document

# Document 结构:content 为文本内容,metadata 为字典格式的元信息
doc = Document(
    page_content="RAG 核心是检索增强生成,索引阶段的核心是文本切分和向量化",
    metadata={"source": "RAG教程.md", "page": 1, "chapter": "第一章"}
)

元信息(metadata) 是 RAG 溯源、混合检索的关键,分割器会自动保留原始 Document 的元信息,为每个切分后的子文本块绑定相同的元信息。

五、实战

1.环境准备

pip install -U langchain
pip install -U tiktoken
pip install -U langchain-text-splitters
pip install -U langchain-openai
pip install -U sentence_transformers
pip install -U nltk
pip install -U spacy

2.主流文本分割器详解(按使用频率排序)

        LangChain 提供了十余种文本分割器,其中8 种为高频主流款,分别适配「通用文本、结构化文档、代码、长文档、小文本」等不同场景,以下按 **「通用款→结构化款→专项款」的顺序详解,包括核心特点、适配场景、初始化代码、优缺点 **,所有代码均可直接运行。

(一)通用文本分割器(最常用,适配 80% 场景)

1. RecursiveCharacterTextSplitter(递归字符分割器)

核心地位:LangChain 「最核心、最常用」的通用分割器,新手首选

核心原理

采用 **「递归切分 + 语义边界优先」** 策略,是「固定长度切分」的升级版,核心逻辑:

  1. 内置多语言分隔符列表(中文 / 英文适配),优先级从高到低:\n\n(空行,代表段落)→ \n(换行,代表行)→ (空格)→ ``(无分隔符,按字符切分);

  2. 对长文本按高优先级分隔符先切分,若切分后的块仍超过 chunk_size,则用下一级分隔符递归切分;

  3. 若所有分隔符切分后仍超长,最后按固定字符数切分,同时保留块重叠;

  4. 全程保证语义边界优先,尽可能避免拆分完整句子 / 段落。

核心特点

  • 支持多语言(中文 / 英文 / 日文等),内置分隔符自动适配;

  • 切分逻辑兼顾效率和语义完整性,是 RAG 通用场景的最优解;

  • 可灵活自定义分隔符、长度计算规则,扩展性强;

  • 支持纯文本Document 对象切分。

代码:

test01 = """
人工智能(Artificial Intelligence, AI)是当前科技领域最热门的话题之一。
它指的是能够模拟、延伸和扩展人类智能的理论、方法、技术及应用系统。

近年来,随着计算能力的指数级增长和大数据的爆发,人工智能技术取得了突破性进展。
从语音助手到自动驾驶,从图像识别到自然语言处理,AI正在以前所未有的速度渗透到我们生活的方方面面。

在企业层面,人工智能正在重塑商业模式。
例如,制造业通过引入AI实现了生产流程的自动化和智能化,显著提高了生产效率和产品质量。
金融行业则利用AI进行风险评估和欺诈检测,极大地提升了决策的准确性和效率。

然而,人工智能的快速发展也带来了一系列伦理和社会问题。
比如,算法偏见可能会导致不公平的决策,而自动化的普及则可能引发大规模的失业。
因此,如何在推动技术进步的同时,建立健全的AI伦理框架,成为了全球共同面临的挑战。

展望未来,人工智能的发展前景依然广阔。
随着多模态大模型、具身智能等技术的成熟,我们有理由相信,AI将在更多领域创造价值,为人类社会带来深远的变革。
"""

# 基础导入(修正导入类名)
from langchain_text_splitters import CharacterTextSplitter,HTMLHeaderTextSplitter, RecursiveCharacterTextSplitter,MarkdownHeaderTextSplitter
from langchain_community.document_loaders import PyPDFLoader


# 初始化递归字符分割器(中文通用配置:500字符,100字符重叠)
text_splitter01 = RecursiveCharacterTextSplitter(
    chunk_size=100,          # 单个块最大500字符
    chunk_overlap=30,       # 相邻块重叠100字符,避免语义断裂
    separators=["\n\n", "\n", "。", "!", "?", ";", ",", " "],  # 自定义中文分隔符(优先级从高到低)
    length_function=len,     # 按字符数计算长度(中文默认)
    is_separator_regex=False # 分隔符是否为正则表达式
)

# 打印
for i, chunk in enumerate(text_splitter01.split_text(text01)):
    print(f"chunk:第{i}段\n长度:{len(chunk)}\n内容:{chunk}")

运行结果:

适配场景

通用纯文本、无格式的 TXT 文档、PDF/Word 解析后的纯文本、聊天记录、普通技术文档(80% 的 RAG 基础场景)。

优缺点

  • ✅ 优点:多语言适配、语义完整、配置简单、开箱即用;

  • ❌ 缺点:无法识别结构化文档的标题 / 层级(如 Markdown 的 ## 二级标题),对结构化文档切分粒度较粗。

2. CharacterTextSplitter(基础字符分割器)

核心地位:LangChain 最基础的分割器,适合简单场景 / 自定义切分

核心原理

「固定长度切分 + 简单分隔符」,无递归逻辑,核心逻辑:

  1. 按指定的单个分隔符(默认:\n\n)将文本切分为大段;

  2. 对大段按固定字符数切分,保留块重叠;

  3. 无递归切分,若分隔符切分后仍超长,直接按字符拆分,不考虑下级语义边界。

核心特点

  • 极简逻辑,运行速度最快

  • 可自定义分隔符,但仅支持单个分隔符(无优先级);

  • 适合简单的纯文本切分,不适合复杂语义文本。

代码:

#基础字符分割器
text_splitter02=CharacterTextSplitter(
    chunk_size=100,
    chunk_overlap=30,
    length_function=len
)

# 打印
for i, chunk in enumerate(text_splitter02.split_text(text01)):
    print(f"chunk:第{i}段\n长度:{len(chunk)}\n内容:{chunk}")

结果:

(二)结构化文档分割器(适配 Markdown/PDF/HTML,保留层级)

这类分割器专门针对带格式 / 层级的结构化文档设计,能识别标题、章节、层级等语义边界,将同一层级 / 标题下的内容切分为同一语义块,避免结构化信息丢失,是处理「Markdown、PDF、HTML、Notion」等文档的首选。

1. MarkdownHeaderTextSplitter(Markdown 标题分割器)

核心地位:处理Markdown 文档专属最优解,RAG 结构化文档场景高频使用

核心原理

「按 Markdown 标题层级切分 + 保留标题与内容关联」,核心逻辑:

  1. 识别 Markdown 的标题符号(# 一级、## 二级、### 三级……),按标题层级划分语义边界;

  2. 每个标题 + 其下的所有内容切分为一个独立的语义块,确保同一主题的内容不被拆分;

  3. 若单个标题下的内容过长,可结合RecursiveCharacterTextSplitter做二次切分(核心组合用法);

  4. 自动将标题信息添加到文本块的 ** 元信息(metadata)** 中,方便后续混合检索。

核心特点

  • 精准识别 Markdown 所有层级标题,保留标题与内容的语义关联

  • 自动为文本块添加标题元信息(如{"header": "## RAG 文本分割器"});

  • 支持自定义标题层级(如仅识别一级 / 二级标题,忽略三级及以下);

  • 切分后的块语义完整性极强,是 Markdown 文档的最优解。

代码:

from langchain.text_splitter import MarkdownHeaderTextSplitter

# 定义需要识别的Markdown标题层级(按优先级排序)
headers_to_split_on = [
    ("#", "一级标题"),
    ("##", "二级标题"),
    ("###", "三级标题"),
]

# 初始化Markdown标题分割器
markdown_splitter = MarkdownHeaderTextSplitter(
    headers_to_split_on=headers_to_split_on,  # 识别的标题层级
    return_each_line=False  # 是否按行返回,默认False(合并标题与内容)
)

# 切分Markdown文本
markdown_text = """
# RAG 核心知识
## 1. 索引阶段
### 1.1 文本切分
文本切分是RAG的核心步骤,核心是语义完整。
### 1.2 向量化
向量化是将文本转为向量的过程,用Embedding模型实现。
## 2. 检索阶段
检索阶段的核心是相似度匹配,用向量数据库实现。
"""
# 切分后返回Document列表,每个Document绑定标题元信息
docs = markdown_splitter.create_documents([markdown_text])
# 打印结果(每个标题+内容为一个块,元信息包含标题层级)
for doc in docs:
    print("文本块:", doc.page_content)
    print("元信息:", doc.metadata)
    print("-"*50)

结果:

输出结果:每个二级标题 + 其下的三级标题内容为一个独立块,元信息包含一级标题、二级标题等信息,完美保留层级。

组合用法:标题切分 + 递归切分(适合长内容 Markdown,RAG 核心用法)

若单个标题下的内容过长(超过chunk_size),需结合RecursiveCharacterTextSplitter二次切分,这是 Markdown 文档的企业级标准用法

 代码:


# 切分Markdown文本
text02 = """
# RAG 核心知识

## 1. 索引阶段

### 1.1 文本切分

文本切分是 RAG 系统的核心基础步骤,其核心目标是在保证语义完整性的前提下,将长文本分割成适合模型处理的短文本片段。这一步骤直接影响后续检索的准确性和生成结果的质量。

**切分策略与方法**:
- **递归字符切分**:根据标点符号、段落等自然分隔符进行多层次切分,确保切分点位于语义边界
- **固定长度切分**:按照固定字符数或 token 数进行切分,适用于结构相对简单的文本
- **语义切分**:利用句子嵌入或聚类算法,根据语义相关性进行切分,保留完整语义单元
- **混合切分**:结合多种方法,根据文本类型自动选择最优切分策略

**切分参数优化**:
- **块大小**:通常设置为 256-1024 个 token,平衡上下文丰富度和检索精度
- **重叠比例**:一般为 10%-20%,避免因切分导致的语义断裂
- **分隔符选择**:优先使用段落、句号等强语义分隔符,其次使用逗号、分号等弱分隔符

**常见挑战与解决方案**:
- **长句处理**:对于超长句子,可采用滑动窗口或基于语义的动态切分
- **结构化文档**:保留标题、列表等结构信息,确保切分后的片段仍能反映原始文档结构
- **多语言文本**:针对不同语言的特点(如中文无明确词边界),调整切分策略和分隔符

### 1.2 向量化

向量化是将文本片段转换为高维向量空间中向量的过程,是实现语义检索的关键步骤。通过向量化,文本的语义信息被编码为计算机可处理的数值形式,使得相似度计算成为可能。

**向量化模型选择**:
- **通用嵌入模型**:如 OpenAI 的 text-embedding-ada-002、BAAI 的 bge 系列模型,适用于大多数通用场景
- **领域特定模型**:针对特定领域(如法律、医疗)微调的嵌入模型,提供更准确的领域语义表示
- **多语言模型**:支持多种语言的嵌入模型,适用于多语言文本处理场景
- **轻量级模型**:如 Sentence-BERT 的压缩版本,适用于资源受限环境

**向量化技术原理**:
- **预训练语言模型**:利用 Transformer 架构的预训练语言模型,捕获文本的深层语义信息
- **对比学习**:通过对比相似和不相似文本对,学习更具判别力的向量表示
- **微调优化**:根据具体任务和数据特点,对基础嵌入模型进行微调,提高向量表示质量

**向量化质量评估**:
- **语义相似度**:评估向量对语义相似文本的区分能力
- **检索性能**:通过下游检索任务的指标(如 Recall@k)评估向量质量
- **计算效率**:平衡向量质量和计算资源消耗,选择适合部署环境的模型

## 2. 检索阶段

检索阶段的核心是基于语义相似度匹配,从向量数据库中找出与用户查询最相关的文本片段。这一阶段的性能直接决定了 RAG 系统的响应速度和准确性。

**检索算法与策略**:
- **近似最近邻搜索**:如 FAISS、Annoy、HNSW 等算法,在保证检索质量的同时提高检索速度
- **混合检索**:结合稀疏检索(如 BM25)和密集检索(如向量相似度),充分利用两种检索方式的优势
- **重排序**:对初始检索结果进行重排序,进一步提升相关性
- **多步检索**:通过迭代式检索,逐步缩小搜索范围,提高检索精度

**向量数据库选择**:
- **开源选项**:如 Chroma、FAISS、Milvus、Pinecone 等,各有其特点和适用场景
- **云服务**:如 OpenAI 的 Embeddings API + 云数据库、AWS 的 OpenSearch 等,提供便捷的托管解决方案
- **选型考量**:根据数据规模、检索速度要求、部署环境等因素选择合适的向量数据库

**检索优化策略**:
- **查询扩展**:对用户查询进行扩展或重写,提高检索召回率
- **上下文感知**:考虑对话历史或文档上下文,提供更相关的检索结果
- **自适应检索**:根据不同类型的查询,自动调整检索策略和参数
- **缓存机制**:对高频查询的结果进行缓存,提高响应速度

## 3. 生成阶段

生成阶段是 RAG 系统的最后一步,利用检索到的相关文本片段作为上下文,结合用户查询,生成准确、相关的回答。

**生成模型选择**:
- **大语言模型**:如 GPT-3.5/4、Claude、LLaMA 等,具备强大的理解和生成能力
- **领域微调模型**:针对特定领域进行微调的模型,提供更专业的生成结果
- **轻量级模型**:适用于资源受限环境的小型语言模型

**提示词工程**:
- **结构化提示**:设计清晰、结构化的提示词模板,引导模型有效利用检索到的上下文
- **少样本学习**:在提示词中包含少量示例,帮助模型理解任务要求
- **思维链提示**:引导模型逐步推理,提高复杂问题的解决能力

**生成质量评估**:
- **相关性**:评估生成结果与用户查询的相关程度
- **准确性**:评估生成结果的事实正确性
- **连贯性**:评估生成结果的逻辑连贯性和语言流畅度
- **有用性**:评估生成结果对用户的实际帮助程度

## 4. RAG 系统优化

**端到端优化**:
- **参数调优**:针对文本切分、向量化、检索等各环节的参数进行系统性调优
- **数据增强**:通过数据增强技术,提高系统对不同类型输入的适应能力
- **监控与反馈**:建立系统性能监控机制,持续收集用户反馈并进行优化

**挑战与解决方案**:
- **知识更新**:设计增量更新机制,及时融入新的知识和信息
- **计算资源**:在保证性能的前提下,优化计算资源使用,降低部署成本
- **多模态支持**:扩展 RAG 系统,支持图像、音频等多模态输入和检索

## 5. RAG 应用场景

**典型应用**:
- **智能问答系统**:为用户提供基于知识库的准确回答
- **文档助手**:帮助用户快速理解和提取文档关键信息
- **个性化推荐**:基于用户兴趣和历史行为,提供个性化内容推荐
- **代码助手**:辅助开发者理解和生成代码
- **教育辅助**:为学生提供个性化的学习内容和解答

**行业应用**:
- **金融**:智能客服、风险评估、市场分析
- **医疗**:医学文献检索、辅助诊断、患者教育
- **法律**:法律文书分析、案例检索、法律咨询
- **教育**:智能辅导、学习资料检索、个性化学习路径规划
- **企业**:内部知识管理、员工培训、客户服务

## 6. 未来发展趋势

**技术演进方向**:
- **多模态 RAG**:整合文本、图像、视频等多种模态的信息
- **可解释性增强**:提高 RAG 系统决策过程的透明度和可解释性
- **自主学习能力**:通过反馈机制,使系统能够持续自主改进
- **分布式架构**:支持更大规模的数据和更复杂的应用场景

**研究热点**:
- **高效嵌入模型**:开发更轻量、更准确的嵌入模型
- **高级检索策略**:探索更智能、更高效的检索方法
- **知识融合**:研究如何更有效地将外部知识融入大语言模型
- **伦理与安全**:确保 RAG 系统的输出符合伦理规范,避免有害内容生成

RAG 技术作为连接大语言模型与外部知识的桥梁,正在不断演进和完善,为各种智能应用场景提供更准确、更可靠的知识服务。随着技术的不断发展,RAG 系统将在更多领域发挥重要作用,推动人工智能技术向更智能、更实用的方向发展。
"""
header01=[
     ("#", "一级标题"),
    ("##", "二级标题"),
    ("###", "三级标题"), 
]

markdown_spliter03=MarkdownHeaderTextSplitter(
    headers_to_split_on=header01,  #
    strip_headers=False,        #
    return_each_line=False
)

markdown01= markdown_spliter03.split_text(text02)

#打印
for i,chunk in enumerate(markdown01):
     print(f"chunk:第{i}段\n内容:{chunk}")

#组合用法:标题切分 + 递归切分(适合长内容 Markdown,RAG 核心用法)
markdown01= markdown_spliter03.split_text(text02)  
texts=[i.page_content for i in markdown01]
markdown02=text_splitter01.create_documents(texts)

#打印
for i,chunk in enumerate(markdown02):
     print(f"chunk:第{i}段\n内容:{chunk}\n")

结果:

适配场景

Markdown 文档、Notion 导出的 Markdown 文件、GitBook 文档、带标题的技术手册(RAG 中结构化文档的核心场景)。

优缺点

  • ✅ 优点:精准识别 Markdown 标题、保留层级语义、自动添加标题元信息、适配长文档;

  • ❌ 缺点:仅支持 Markdown 格式、不支持 PDF/HTML 等其他结构化格式。

2. PyPDFLoader 内置分割器(PDF 文档专属)

LangChain 本身没有单独的「PDFTextSplitter」,但PDF 加载器(PyPDFLoader/UnstructuredPDFLoader) 与文本分割器深度集成,结合通用分割器可实现PDF 文档的精准切分,核心方案为:

核心原理:PDF 加载 → 按页码切分 → 结构化二次切分

  1. PyPDFLoader加载 PDF,按页码切分为原始 Document 对象(每个页码为一个 Document,元信息包含页码);

  2. RecursiveCharacterTextSplitterMarkdownHeaderTextSplitter(若 PDF 转 Markdown)对每个页码的内容做二次语义切分

  3. 保留页码、文档来源等元信息,确保切分后可溯源。

核心特点

  • 结合 PDF 加载器,完美保留 PDF 页码信息

  • 支持扫描版 PDF(需搭配 OCR 工具,如pytesseract);

  • 可灵活搭配其他分割器,适配不同 PDF 内容(纯文本 / 带标题 / 带表格)。

代码:

#PyPDFLoader 内置分割器(PDF 文档专属)
#核心原理:PDF 加载 → 按页码切分 → 结构化二次切分

## 第一步:加载PDF,按页码切分(返回Document列表,元信息含page)
#加载
text03 = PyPDFLoader("C:/Users/aw/Desktop/RNN/chatbot/RAG/我的妈妈越来越年轻了.pdf")
#按页码切分,返回每个页码的Document
pages=text03.load_and_split()

# 第二步:用递归切分器对每个页码做二次语义切分(核心)
split_docs = text_splitter02.split_documents(pages)

# 结果:每个文本块保留「页码、文档来源」元信息,且语义完整
print("切分后总块数:", len(split_docs))
print("第一个块的元信息:", split_docs[0].metadata)  # 输出:{'source': 'RAG实战手册.pdf', 'page': 0}

结果:

3. HTMLHeaderTextSplitter(HTML 标题分割器)

核心地位:处理HTML 网页 / 文档的专属分割器

核心原理

MarkdownHeaderTextSplitter逻辑一致,识别 HTML 的标签层级(如<h1>/<h2>/<h3>),将每个标题标签 + 其下的内容切分为一个语义块,自动将标签信息添加到元信息中。

代码:


# 定义需要识别的HTML标题标签
headers_to_split_on = [
    ("h1", "一级标题"),
    ("h2", "二级标题"),
    ("h3", "三级标题"),
]

# 初始化HTML分割器
html_splitter = HTMLHeaderTextSplitter(headers_to_split_on=headers_to_split_on)
# 切分HTML文本/网页
html_text = """
<h1>RAG 核心知识</h1>
<h2>索引阶段</h2>
<h3>文本切分</h3>
<p>文本切分是RAG的核心步骤,核心是语义完整。</p>
"""
split_docs = html_splitter.split_text(html_text)
打印结果
for i, chunk in enumerate(split_docs):
    print(f"chunk:第{i}段\n内容:{chunk}\n")

适配场景

HTML 网页、HTML 文档、爬虫爬取的网页内容(RAG 中网页知识整合的核心场景)。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐