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

How does BERT word embedding preprocess work

我想弄清楚 BERT 预处理的作用。我的意思是,它是如何完成的。但我找不到很好的解释。如果有人知道,我将不胜感激 link 以获得更好且深入解释的解决方案。 另一方面,如果有人想在这里解决它,我也将万分感谢!

我的问题是,BERT 如何以数学方式将字符串输入转换为固定大小的数字向量?以下是哪些逻辑步骤?

BERT 提供了自己的分词器。由于 BERT 是预训练模型,需要特定格式的输入数据,因此需要满足以下条件:

  • 一个特殊的标记,[SEP],用来标记一个句子的结尾,或者 两个句子之间的分隔
  • 一个特殊的令牌,[CLS],在 我们正文的开头。此令牌用于分类任务, 但无论您的应用程序是什么,BERT 都期望它。
  • 符合BERT中使用的固定词汇表的token
  • 令牌的令牌 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) 

查看这个优秀的 tutorial 了解更多详情。