在 Bert Tokenizer 中,padding 参数指的是对单个序列进行填充的方式。当我们需要对一系列文本进行处理时,由于每个文本的长度可能不同,为了方便处理,需要将它们统一填充到相同的长度。其中,padding 的方式可以通过设置 padding 参数来指定。
常见的 padding 方式有两种:一种是在序列的左侧填充,一种是在序列的右侧填充。默认情况下,Bert Tokenizer 使用第一种方式,即在左侧进行填充。如果需要在右侧进行填充,可以通过设置“padding_side”参数来实现。
下面是一个使用 padding 参数和 padding_side 参数的代码示例:
from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased', do_lower_case=True)
# 设置 padding 参数
encoded_text = tokenizer.encode_plus(
text = "Hello, world!",
padding = 'max_length',
max_length=10,
truncation=True,
return_token_type_ids=False,
return_attention_mask=True,
return_tensors='pt',
)
print("Encoded text with padding:", encoded_text['input_ids'])
# 设置 padding_side 参数
encoded_text = tokenizer.encode_plus(
text = "Hello, world!",
padding = 'max_length',
max_length=10,
truncation=True,
return_token_type_ids=False,
return_attention_mask=True,
return_tensors='pt',
padding_side='right',
)
print("Encoded text with padding on right:", encoded_text['input_ids'])
在上面的代码中,我们首先使用 BertTokenizer 对一个字符串进行编码,并将其填充到长度为 10。第一个例子中,我们使用默认的 padding 参数(在左侧填充),第二个例子中,我们设置 padding_side 参数为 'right',即在右侧进行填充。
输出结果如下:
Encoded text with padding: tensor([[ 101, 7592, 101