tiktoken
tiktoken 是由
OpenAI 创建的一个快速 BPE Tokenizer。tiktoken 来估计使用的 Token。它可能对 OpenAI 模型更准确。
- 文本是如何分割的:通过传入的字符。
- 块大小是如何测量的:通过
tiktokenTokenizer。
tiktoken 一起使用。
tiktoken 合并块,请使用它的 .from_tiktoken_encoder() 方法。请注意,此方法的分割可能大于由 tiktoken Tokenizer 测量的块大小。
.from_tiktoken_encoder() 方法接受 encoding_name 作为参数(例如 cl100k_base),或接受 model_name(例如 gpt-4)。所有额外的参数,如 chunk_size、chunk_overlap 和 separators,用于实例化 CharacterTextSplitter:
RecursiveCharacterTextSplitter.from_tiktoken_encoder,其中每个分割如果大小较大,将被递归分割:
TokenTextSplitter 分割器,它可以直接与 tiktoken 一起使用,并确保每个分割都小于块大小。
TokenTextSplitter 可能会在两个块之间分割字符的 Token,导致 Unicode 字符格式错误。使用 RecursiveCharacterTextSplitter.from_tiktoken_encoder 或 CharacterTextSplitter.from_tiktoken_encoder 确保块包含有效的 Unicode 字符串。
:::
:::js
js-tiktoken
js-tiktoken 是由
OpenAI 创建的 BPE Tokenizer 的 JavaScript 版本。tiktoken 和 @[TokenTextSplitter] 来估计使用的 Token。它可能对 OpenAI 模型更准确。
- 文本是如何分割的:通过传入的字符。
- 块大小是如何测量的:通过
tiktokenTokenizer。
tiktoken 合并块,在初始化 @[TokenTextSplitter] 时传入一个 encodingName(例如 cl100k_base)。请注意,此方法的分割可能大于由 tiktoken Tokenizer 测量的块大小。
spaCy
spaCy 是一个用于高级自然语言处理的开源软件库,用 Python 和 Cython 编写。
- 文本是如何分割的:通过
spaCyTokenizer。 - 块大小是如何测量的:通过字符数量。
SentenceTransformers
SentenceTransformersTokenTextSplitter 是一个专门用于与句子转换器模型一起使用的文本分割器。默认行为是将文本分割成适合您希望使用的句子转换器模型的 Token 窗口的块。
要分割文本并根据句子转换器 Tokenizer 限制 Token 计数,请实例化一个 SentenceTransformersTokenTextSplitter。您可以可选地指定:
chunk_overlap:Token 重叠的整数计数;model_name:句子转换器模型名称,默认为"sentence-transformers/all-mpnet-base-v2";tokens_per_chunk:每个块所需的 Token 计数。
NLTK
我们不仅可以基于 “\n\n” 分割,还可以使用NLTK 基于 NLTK Tokenizer 分割。
- 文本是如何分割的:通过
NLTKTokenizer。 - 块大小是如何测量的:通过字符数量。
KoNLPY
KoNLPy: Python 中的韩语 NLP 是一个用于韩语自然语言处理(NLP)的 Python 包。
使用 KoNLPY 的 kkma 分析器进行韩语 Token 分割
对于韩语文本,KoNLPY 包含一个称为Kkma(韩语知识词素分析器)的形态分析器。Kkma 提供了韩语文本的详细形态分析。它将句子分解成单词,并将单词分解成相应的词素,为每个 Token 识别词性。它可以分割文本块成单个句子,这对于处理长文本特别有用。
使用注意事项
虽然Kkma 以其详细分析而闻名,但请注意,这种精确度可能会影响处理速度。因此,Kkma 最适合分析深度优先于快速文本处理的应用。
Hugging Face 分词器
Hugging Face 有很多 Tokenizer。 我们使用 Hugging Face tokenizer,即 GPT2TokenizerFast 来计算文本的 Token 长度。- 文本是如何分割的:通过传入的字符。
- 块大小是如何测量的:通过
Hugging FaceTokenizer 计算的 Token 数量。
官方原文:src/oss/integrations/splitters/split_by_token.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。