tiktoken
tiktoken 是
OpenAI 创建的一个快速 BPE 标记化工具。tiktoken 来估算使用的标记数量。对于 OpenAI 模型,这可能更准确。
- 文本如何分割:按传入的字符分割。
- 块大小如何测量:通过
tiktoken标记化工具。
tiktoken 一起使用。
tiktoken 合并块,请使用其 .from_tiktoken_encoder() 方法。请注意,此方法的分割结果可能大于 tiktoken 标记化工具测量的块大小。
.from_tiktoken_encoder() 方法接受 encoding_name(例如 cl100k_base)或 model_name(例如 gpt-4)作为参数。所有其他参数如 chunk_size、chunk_overlap 和 separators 都用于实例化 CharacterTextSplitter:
RecursiveCharacterTextSplitter.from_tiktoken_encoder,其中每个分割如果大小超过限制,将被递归分割:
TokenTextSplitter 分割器,它直接与 tiktoken 配合使用,并确保每个分割都小于块大小。
TokenTextSplitter 可能会将一个字符的标记分割到两个块中,导致 Unicode 字符损坏。使用 RecursiveCharacterTextSplitter.from_tiktoken_encoder 或 CharacterTextSplitter.from_tiktoken_encoder 以确保块包含有效的 Unicode 字符串。
spaCy
spaCy 是一个用于高级自然语言处理的开源软件库,使用 Python 和 Cython 编程语言编写。
- 文本如何分割:通过
spaCy标记化工具。 - 块大小如何测量:按字符数。
SentenceTransformers
SentenceTransformersTokenTextSplitter 是一个专为 sentence-transformer 模型设计的文本分割器。默认行为是将文本分割成适合你希望使用的 sentence-transformer 模型标记窗口的块。
要根据 sentence-transformers 标记化工具分割文本并约束标记数量,请实例化一个 SentenceTransformersTokenTextSplitter。你可以选择指定:
chunk_overlap:标记重叠的整数计数;model_name:sentence-transformer 模型名称,默认为"sentence-transformers/all-mpnet-base-v2";tokens_per_chunk:每个块所需的标记数量。
NLTK
我们不仅可以根据 “\n\n” 分割,还可以使用NLTK 基于 NLTK 标记化工具进行分割。
- 文本如何分割:通过
NLTK标记化工具。 - 块大小如何测量:按字符数。
KoNLPY
KoNLPy: Python 中的韩语自然语言处理 是一个用于韩语自然语言处理(NLP)的 Python 包。
使用 KoNLPy 的 kkma 分析器进行韩语标记分割
对于韩语文本,KoNLPY 包含一个称为Kkma(韩语知识形态分析器)的形态分析器。Kkma 提供韩语文本的详细形态分析。它将句子分解为单词,并将单词分解为各自的形态素,识别每个标记的词性。它可以将文本块分割成单独的句子,这对于处理长文本特别有用。
使用注意事项
虽然Kkma 以其详细分析而闻名,但需要注意的是,这种精确性可能会影响处理速度。因此,Kkma 最适合那些分析深度优先于快速文本处理的应用场景。
Hugging Face 标记化工具
Hugging Face 有许多标记化工具。 我们使用 Hugging Face 标记化工具,即 GPT2TokenizerFast 来计算文本的标记长度。- 文本如何分割:按传入的字符分割。
- 块大小如何测量:通过
Hugging Face标记化工具计算的标记数量。
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

