tiktoken
tiktoken是由
OpenAI创建的一个快速BPE分词器。tiktoken来估算使用的Token数量。对于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可能会在两个块之间拆分字符的Token,导致Unicode字符格式错误。使用RecursiveCharacterTextSplitter.from_tiktoken_encoder或CharacterTextSplitter.from_tiktoken_encoder以确保块包含有效的Unicode字符串。
spaCy
spaCy是一个用Python和Cython编程语言编写的用于高级自然语言处理的开源软件库。
- 文本如何分块:由
spaCy分词器。 - 块大小如何衡量:通过字符数。
SentenceTransformers
SentenceTransformersTokenTextSplitter是一个专门用于句法转换器模型的文本分块器。默认行为是将文本分块成适合您想要使用的句法转换器模型的Token窗口的块。 要使用句法转换器分词器进行文本分块和限制Token计数,请实例化一个SentenceTransformersTokenTextSplitter。您可以选择指定:chunk_overlap:Token重叠的整数计数;model_name:句法转换器模型名称,默认为"sentence-transformers/all-mpnet-base-v2";tokens_per_chunk:每个块所需的Token计数。
NLTK
除了简单地按“\n\n”进行分块,我们还可以使用NLTK基于NLTK分词器进行分块。
- 文本如何分块:由
NLTK分词器。 - 块大小如何衡量:通过字符数。
KoNLPy
KoNLPy: Python中的韩语NLP是一个用于韩语自然语言处理(NLP)的Python包。
使用KoNLPy的Kkma分析器对韩语进行Token分块
对于韩语文本,KoNLPy包含一个名为Kkma(韩语知识形态素分析器)的形态分析器。Kkma提供韩语文本的详细形态分析。它将句子分解为单词,并将单词分解为其各自的形态素,识别每个Token的词性。它可以将文本块分割成单独的句子,这对于处理长文本特别有用。
使用注意事项
虽然Kkma以其详细分析而闻名,但重要的是要注意,这种精度可能会影响处理速度。因此,Kkma最适合那些分析深度优先于快速文本处理的应用程序。
Hugging Face分词器
Hugging Face有许多分词器。 我们使用Hugging Face分词器,即GPT2TokenizerFast来计算文本的Token长度。- 文本如何分块:按传入的字符。
- 分块大小如何测量:由
Hugging Face分词器计算的Token数量。
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。