text_index = tokenizer.encode(text, truncation=True, padding="max_length", max_length=32)
tokenizer.encode()方法,对文本进行编码处理。也就是将text中的每个字映射成词表中的唯一编号。
max_length=32:代表编码后文本的最大长度是32。这个参数可以将输入的文本规范到相同的长度,便于模型的批处理。
truncation=True:当 text 的长度超过 max_length 设定值(这里是 32)时,truncation=True 选项会自动截断文本,保留前 32 个词汇。这样可以确保输入的长度不会超过 BERT 模型的限制。
padding="max_length":即使文本长度不足 32 个词汇,padding="max_length" 会在文本后面添加填充(padding),以使得最终的 text_index 列表长度恰好为 32。填充的索引通常为 0,对应于 BERT 模型的特殊填充标记 [PAD]。
举例:
假设输入的文本是 "我喜欢学习",并且词汇表中对应的索引为 [101, 672, 5123, 102]。在这种情况下,tokenizer.encode 方法会将其编码为 [101, 672, 5123, 102]。如果文本超过 32 个词汇,它会被截断为前 32 个词汇;如果少于 32 个,则会在后面补 0,直到达到长度为 32。