BERT模型入门(13)使用BPE进行分词

文章目录


在上一节中,我们了解到,通过给定的数据集,我们创建了以下词汇表:

vocabulary = {a, b, c, e, l, m, n, o, s, t, u, st, me, men}

现在,让我们看看这个词汇表如何使用。假设我们的输入文本只有一个单词——mean。现在我们检查单词mean是否在我们的词汇表中。我们可以观察到它不在词汇表中。所以我们把单词mean拆分成子词[me, an]。现在,我们检查子词是否在词汇表中。我们可以观察到子词me在词汇表中,但子词an不在我们的词汇表中。因此,我们拆分子词an,现在我们的子词包括[me, a, n]。现在我们检查字符a和n是否在我们的词汇表中。由于它们在词汇表中,我们得到的最终tokens如下:

tokens = [me, a, n]

让我们考虑另一个输入单词:bear。我们可以观察到单词bear不在我们的词汇表中。现在我们将其拆分为子词[be, ar]。现在我们检查子词be和ar是否在词汇表中。子词be在词汇表中,但ar不在词汇表中。因此,我们拆分子词ar,现在子词包括[be, a, r]。现在我们检查字符a和r是否在词汇表中。我们可以观察到a在词汇表中,但r不在词汇表中。由于现在我们只有单个字符,无法再进行拆分。现在我们用 tokens替换r。因此,我们的最终tokens如下:

tokens = [be, a, ]

我们了解到BPE可以很好地处理稀有词汇,但现在我们有一个 tokens。这是因为在这个小例子中,字符r不在我们的词汇表中。但是当我们使用大量语料库创建词汇表时,我们的词汇表将包含所有字符。

让我们考虑另一个输入单词:men。现在我们检查单词men是否在词汇表中。由于单词men在词汇表中,我们可以直接将其作为tokens返回。因此,我们的最终tokens如下:

tokens = [men]

这样,我们使用BPE对输入句子进行分词。现在我们了解了BPE是如何工作的,接下来我们将了解字节级别的字节对编码。


感谢您的阅读,欢迎关注!


你可能感兴趣的:(Google,BERT,构建和训练NLP模型,bert,人工智能,深度学习,自然语言处理,transformer)