极客前沿

AI 入门:一步步学会文本分块(Chunking)

2026-05-16 01:31
DEV Tutorial
查看原文

本文用零基础友好的方式,教你理解文本分块的概念、常用方法,并动手安装工具完成第一次分块操作。

什么是文本分块?

在 AI 处理长文本时,常常需要把大段文字切成小段,这个过程就叫文本分块。分块可以让模型更高效地理解和检索信息。本教程将带你了解几种常见分块方法,并动手安装工具实现一次简单的分块。

准备工作:安装 Python 和必要的库

首先,确保你的电脑上已经安装了 Python(一种编程语言)。如果没有,可以去 python.org 下载最新版本。安装时记得勾选“Add Python to PATH”。

然后,打开终端(Windows 用户按 Win+R,输入 cmd;Mac 用户打开“终端”应用),运行以下命令安装分块所需的库:

  • pip install langchain —— LangChain 是一个 AI 开发框架,里面包含很多文本处理工具。
  • pip install pypdf —— 用于读取 PDF 文件。

如果安装速度慢,可以加上国内镜像源,比如:pip install langchain -i https://pypi.tuna.tsinghua.edu.cn/simple

Tutorial Image

动手尝试:用滑动窗口分块

滑动窗口是一种常用的分块方法,它通过设定窗口大小(每个块包含多少个字符)和步长(每次窗口移动多少字符)来生成重叠的块。下面我们用一段示例文本演示:

  1. 打开任意文本编辑器(比如记事本),复制以下文字:
    Redis is an open-source, in-memory data store that is primarily used as a cache, database, and message broker.
  2. 保存为 sample.txt
  3. 在终端中进入该文件所在目录,运行 Python:
    python
  4. 输入以下代码(每行后按回车):
    from langchain.text_splitter import RecursiveCharacterTextSplitter
    with open('sample.txt', 'r') as f:
    text = f.read()
    splitter = RecursiveCharacterTextSplitter(chunk_size=15, chunk_overlap=5)
    chunks = splitter.split_text(text)
    print(chunks)
  5. 你会看到输出类似:
    ['Redis is an op', 's is an open-so', ...],这就是分块后的结果。

常见坑chunk_sizechunk_overlap 的值要根据文本长度调整,太小会产生大量碎片,太大则失去分块意义。

下一步可以做什么

学会基本分块后,你可以:

  • 尝试不同的分块方法,比如基于 token 的分块(将文本按 token 数量切分,适合有速率限制的模型)。
  • 处理 PDF 文件:使用 from langchain.document_loaders import PyPDFLoader 加载 PDF,再分块。
  • 将分块后的文本存入向量数据库,用于构建简单的问答机器人。

记住,没有万能的分块方法,多尝试才能找到最适合你数据的方案。

内容来源

DEV Tutorial

发布时间

2026-05-16 01:31

返回 AI技术