BERT词嵌入预处理是如何工作的



我想弄清楚BERT预处理的作用。我是说,这是怎么做的。但是我找不到一个好的解释。如果有人知道,我将非常感激,一个更好的和深入解释的解决方案的链接。另一方面,如果有人想在这里解决这个问题,我也会非常感激!

我的问题是,BERT如何在数学上将字符串输入转换为固定大小的数字向量?接下来的逻辑步骤是什么?

BERT提供了自己的标记器。由于BERT是一个预训练模型,它期望以特定格式输入数据,因此需要以下内容:

  • 一个特殊的标记,[SEP],用于标记句子的结束,或者两句分隔
  • 一个特殊令牌,[CLS],在这是课文的开始。这个令牌用于分类任务,但是无论你的应用程序是什么,BERT都希望它。
  • 符合BERT中使用的固定词汇表的令牌
  • 令牌id,来自BERT的令牌器
  • 表示序列中哪些元素是令牌,哪些是填充元素的掩码id
  • 用于区分不同句子的片段id
  • 位置嵌入用于显示序列
  • 中的标记位置

.

from transformers import BertTokenizer
# Load pre-trained model tokenizer (vocabulary)
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
# An example sentence 
text = "Sentence to embed"
# Add the special tokens.
marked_text = "[CLS] " + text + " [SEP]"
# Split the sentence into tokens.
tokenized_text = tokenizer.tokenize(marked_text)
# Map the token strings to their vocabulary indices.
indexed_tokens = tokenizer.convert_tokens_to_ids(tokenized_text) 

看看这个优秀的教程,了解更多的细节。

相关内容

  • 没有找到相关文章

最新更新