- 快速 tokenizer - The fast tokenizers
在 transformers 库中的, 速度很快， of the Transformers library are fast,
同时他们也实现了非常有用的功能 but they also implement features that will be super useful
用于数据预处理和后处理。 for data pre-processing and post-processing.
让我们来看看吧！ Let's have a look at them!
首先，让我们来看看 First, let's have a look
在 tokenizer 的通常输出中。 at the usual output of a tokenizer.
我们得到对应于 token 的输入 ID， We get input IDs that correspond to token,
但是我们在这个过程中丢失了很多信息。 but we lose a lot of information in the process.
例如， For instance,
这里两个句子的分词化是相同的 here the tokenization is the same for the two sentences
即使一个比另一个多几个空间。 even if one has several more spaces than the other.
因此，仅仅拥有输入 ID 是不够的 Just having the input IDs is thus not enough
如果我们想将一些 token 与一段文本相匹配， if we want to match some tokens with a span of text,
我们将需要做的事情 something we'll need to do
例如，在处理问答时。 when tackling question answering, for instance.
也很难知道 It's also difficult to know
当两个 token 是否属于同一个词时。 when two tokens belong to the same word or not.
是容易的, 当你只看 It looks easy when you just look at the output
一个 BERT 分词器的输出，我们只需要看一下 of a BERT tokenizer where we just need to look
对于 ## 。 for the ##.
但是其他分词器有不同的方式 But other tokenizers have different ways
分词化部分单词。 to tokenize parts of words.
例如，RoBERTa 添加了这个特殊的 G 符号 For instance, RoBERTa adds this special G symbol
在单词的开头 token 标记 to mark the tokens at the beginning of the word
T5 使用这个特殊的下划线符号 and T5 uses this special underscore symbol
为了同样的目的。 for the same purpose.
值得庆幸的是，快速 tokenizer 会跟踪这个词 Thankfully, the fast tokenizers keep track of the word
每个 token 来自， each token comes from,
使用 word_ids 方法，你可以在它们的输出上使用。 with a word_ids method you can use on their outputs.
输出不一定清楚， The output is not necessarily clear,
但像这样聚集在一张漂亮的表格上， but assembled together in a nice table like this,
我们可以查看每个 token 的单词位置。 we can look at the word position for each token.
更好的是，快速 tokenizer 会跟踪 Even better, the fast tokenizers keep track
每个 token 来自的字符范围， of the span of characters each token comes from,
我们可以在调用它时得到它们 and we can get them when calling it on one
或几个文本通过添加 or several text by adding
return_offsets_mapping=True 参数。 the return_offsets_mapping=True argument.
在这种情况下，我们可以看到我们是如何变换位置的 In this instance, we can see how we jump positions
在 ## token 和 super token 之间， between the ## token and the super token,
因为首句中有多个空格。 because of the multiple spaces in the initial sentence.
为了实现这一点，快速 tokenizer To enable this, the fast tokenizers
在每一步存储附加信息 store additional information at each step
他们的内部管线( pipeline )。 of their internal pipeline.
该内部管线包括规范化， That internal pipeline consists of normalization,
我们对文本进行一些整理， where we apply some cleaning to the text,
比如小写或删除口音； like lower casing or removing the accents;
预分词化， pre-tokenization,
这是我们将文本分成单词的地方； which is where we split the texts into words;
然后我们应用 tokenizer 的模型， then we apply the model of the tokenizer,
这是单词被分成 token 的地方， which is where the words are split into tokens,
在最终进行后期处理之前， before finally doing the post processing,
添加特殊 token 的地方。 where special tokens are added.
从管线的开始到结束， From the beginning to the end of the pipeline,
tokenizer 跟踪每个文本范围 the tokenizer keeps track of each span of text
对应于每个单词，然后是每个 token 。 that corresponds to each word, then each token.
我们会看到它有多有用 We'll see how useful it is
当我们处理以下任务时： when we tackle the following tasks:
在进行掩码语言建模时 when doing masked language modeling
一种获得最 SOTA 的变体 one variation that gets state-of-the-art results
是屏蔽给定单词的所有 token is to mask all the tokens of a given word
而不是随机选择的单词。 instead of randomly chosen words.
这将要求我们使用我们看到的单词 ID。 This will require us to use the word IDs we saw.
在做 token 分类的时候， When doing token classification,
我们需要转换我们在单词上的标签， we'll need to convert the labels we have on words,
每个 token 上的标签。 to labels on each tokens.
至于偏移映射， As for the offset mappings,
当我们需要转换时它会非常有用 it will be super useful when we need to convert
将句子中的 token 位置转换为一段文本， token positions in a sentence into a span of text,
我们在寻找时需要知道 which we'll need to know when we're looking
在问答时 at question answering
或者在对相应的 token 进行分组时 or when grouping the tokens corresponding
到 token 分类中的同一实体。 to the same entity in token classification.
要查看这些任务， To have a look at these tasks,
查看下面链接的视频！ check the videos linked below!