Tokenizers 文档
分词器
并获得增强的文档体验
开始使用
分词器
Tokenizer
Tokenizer
作为一个流程线工作。它处理一些原始文本作为输入,并输出一个 Encoding。
Tokenizer 使用的 Model
Tokenizer 使用的可选 Normalizer
Tokenizer 使用的可选 PreTokenizer
获取当前设置的截断参数
无法设置,请使用 enable_truncation()
代替
add_special_tokens
( tokens ) → int
参数
- tokens (
AddedToken
或str
的List
) — 我们要添加到词汇表的特殊 tokens 列表。每个 token 可以是字符串或 AddedToken 的实例,以进行更多自定义。
返回
int
词汇表中创建的 tokens 数量
将给定的特殊 tokens 添加到 Tokenizer。
如果这些 tokens 已经是词汇表的一部分,它只会让 Tokenizer 知道它们。如果它们不存在,Tokenizer 会创建它们,并赋予它们新的 id。
这些特殊 tokens 永远不会被模型处理(即不会被拆分成多个 tokens),并且在解码时可以从输出中删除。
add_tokens
( tokens ) → int
参数
- tokens (
AddedToken
或str
的List
) — 我们要添加到词汇表的 tokens 列表。每个 token 可以是字符串或 AddedToken 的实例,以进行更多自定义。
返回
int
词汇表中创建的 tokens 数量
将给定的 tokens 添加到词汇表
仅当给定的 tokens 尚不存在于词汇表中时,才会添加它们。然后,每个 token 都会获得一个新的属性 id。
enable_padding
( direction = 'right' pad_id = 0 pad_type_id = 0 pad_token = '[PAD]' length = None pad_to_multiple_of = None )
参数
- direction (
str
, 可选,默认为right
) — 填充方向。可以是right
或left
- pad_to_multiple_of (
int
, 可选) — 如果指定,则填充长度应始终与给定值的下一个倍数对齐。例如,如果我们打算填充长度为 250,但pad_to_multiple_of=8
,那么我们将填充到 256。 - pad_id (
int
,默认为 0) — 填充时使用的 id - pad_type_id (
int
,默认为 0) — 填充时使用的类型 id - pad_token (
str
,默认为[PAD]
) — 填充时使用的 pad token - length (
int
, 可选) — 如果指定,则为填充的长度。如果未指定,我们将使用批次中最长序列的大小进行填充。
启用填充
encode
( sequence pair = None is_pretokenized = False add_special_tokens = True ) → Encoding
参数
- sequence (
~tokenizers.InputSequence
) — 我们要编码的主要输入序列。 此序列可以是原始文本或预分词的,具体取决于is_pretokenized
参数:- 如果
is_pretokenized=False
:TextInputSequence
- 如果
is_pretokenized=True
:PreTokenizedInputSequence()
- 如果
- pair (
~tokenizers.InputSequence
, optional) — 可选的输入序列。 预期格式与sequence
相同。 - is_pretokenized (
bool
, defaults toFalse
) — 指示输入是否已预分词 - add_special_tokens (
bool
, defaults toTrue
) — 是否添加特殊 token
返回
编码结果
编码给定的序列和序列对。此方法可以处理原始文本序列以及已预分词的序列。
示例
encode_batch
( input is_pretokenized = False add_special_tokens = True ) → [`~tokenizers.Encoding“] 的 List
参数
- input (
List
/`Tuple
of~tokenizers.EncodeInput
) — 要编码的单个序列或序列对的列表。 每个序列可以是原始文本或预分词的,具体取决于is_pretokenized
参数:- 如果
is_pretokenized=False
:TextEncodeInput()
- 如果
is_pretokenized=True
:PreTokenizedEncodeInput()
- 如果
- is_pretokenized (
bool
, defaults toFalse
) — 指示输入是否已预分词 - add_special_tokens (
bool
, defaults toTrue
) — 是否添加特殊 token
返回
[`~tokenizers.Encoding“] 的 List
批量编码结果
编码给定的批量输入。此方法接受原始文本序列以及已预分词的序列。我们使用 *PySequence* 的原因是它允许零成本的类型检查(根据 PyO3),因为我们不必转换来检查。
示例
encode_batch_fast
( input is_pretokenized = False add_special_tokens = True ) → [`~tokenizers.Encoding“] 的 List
参数
- input (
List
/`Tuple
of~tokenizers.EncodeInput
) — 要编码的单个序列或序列对的列表。 每个序列可以是原始文本或预分词的,具体取决于is_pretokenized
参数:- 如果
is_pretokenized=False
:TextEncodeInput()
- 如果
is_pretokenized=True
:PreTokenizedEncodeInput()
- 如果
- is_pretokenized (
bool
, defaults toFalse
) — 指示输入是否已预分词 - add_special_tokens (
bool
, defaults toTrue
) — 是否添加特殊 token
返回
[`~tokenizers.Encoding“] 的 List
批量编码结果
编码给定的批量输入。此方法比 *encode_batch* 快,因为它不跟踪偏移量,偏移量都将为零。
示例
从给定的缓冲区实例化一个新的 Tokenizer。
from_pretrained
( identifier revision = 'main' token = None ) → Tokenizer
从 Hugging Face Hub 上的现有文件实例化一个新的 Tokenizer。
从给定的 JSON 字符串实例化一个新的 Tokenizer。
如果存在,则将给定的 ID 转换为其对应的 token
返回为单个/成对句子添加的特殊 token 的数量。 :param is_pair: 布尔值,指示输入是单个句子还是句子对 :return
post_process
( encoding pair = None add_special_tokens = True ) → Encoding
将所有后处理步骤应用于给定的编码。
各种步骤是
- 根据设置的截断参数(使用
enable_truncation()
提供)进行截断 - 应用
PostProcessor
- 根据设置的填充参数(使用
enable_padding()
提供)进行填充
将 Tokenizer 保存到给定路径的文件中。
获取表示此 Tokenizer 的序列化字符串。
使用给定的文件训练 Tokenizer。
逐行读取文件,同时保留所有空格,甚至包括换行符。 如果你想从内存中存储的数据进行训练,你可以查看 train_from_iterator()