综合介绍
Chonkie 是一个轻量级且高效的 RAG(Retrieval-Augmented Generation)文本切块库,旨在帮助开发者快速、简便地对文本进行分块处理。该库支持多种分块方法,包括基于标记、单词、句子和语义相似性的分块方式,适用于各种文本处理和自然语言处理任务。默认安装只需21MB(其他同类产品需要80-171MB) 支持所有主流分词器。
功能列表
- TokenChunker:将文本分割成固定大小的标记块。
- WordChunker:根据单词将文本分成块。
- SentenceChunker:根据句子将文本分成块。
- SemanticChunker:根据语义相似性将文本分成块。
- SDPMChunker:使用语义双重合并方法分割文本。
使用帮助
安装
要安装 Chonkie,只需运行以下命令:
pip install chonkie
Chonkie 遵循最小化默认安装的原则,建议根据需要安装特定的分块器,或者如果不想考虑依赖关系,可以安装所有分块器(不推荐)。
pip install chonkie[all]
使用
以下是一个基本示例,帮助您快速上手:
- 首先导入所需的分块器:
from chonkie import TokenChunker
- 导入您喜欢的标记器库(支持 AutoTokenizers, TikToken 和 AutoTikTokenizer):
from tokenizers import Tokenizer tokenizer = Tokenizer.from_pretrained("gpt2")
- 初始化分块器:
chunker = TokenChunker(tokenizer)
- 对文本进行分块:
chunks = chunker("Woah! Chonkie, the chunking library is so cool! I love the tiny hippo hehe.")
- 访问分块结果:
for chunk in chunks: print(f"Chunk: {chunk.text}") print(f"Tokens: {chunk.token_count}")
支持的方法
Chonkie 提供多种分块器,帮助您高效地为 RAG 应用程序拆分文本。以下是可用分块器的简要概述:
- TokenChunker:将文本分割成固定大小的标记块。
- WordChunker:根据单词将文本分成块。
- SentenceChunker:根据句子将文本分成块。
- SemanticChunker:根据语义相似性将文本分成块。
- SDPMChunker:使用语义双重合并方法分割文本。
基准测试
Chonkie 在多个基准测试中表现出色:
- 尺寸:默认安装仅 9.7MB(其他版本为 80-171MB),即使包含语义分块,仍然比竞争对手更轻。
- 速度:标记分块比最慢的替代方案快 33 倍,句子分块比竞争对手快近 2 倍,语义分块比其他方法快 2.5 倍。
详细操作流程
- 安装库:通过 pip 安装 Chonkie 和所需的标记器库。
- 导入库:在您的 Python 脚本中导入 Chonkie 和标记器库。
- 初始化分块器:根据您的需求选择并初始化合适的分块器。
- 分块文本:使用初始化的分块器对文本进行分块处理。
- 处理结果:遍历分块结果,进行进一步的处理或分析。