拥抱面标记器中的填充如何工作?

Posted

技术标签:

【中文标题】拥抱面标记器中的填充如何工作?【英文标题】:How padding in huggingface tokenizer works? 【发布时间】:2022-01-01 03:53:29 【问题描述】:

我尝试了以下标记化示例:

tokenizer = BertTokenizer.from_pretrained(MODEL_TYPE, do_lower_case=True)
sent = "I hate this. Not that.",        
_tokenized = tokenizer(sent, padding=True, max_length=20, truncation=True)
print(_tknzr.decode(_tokenized['input_ids'][0]))
print(len(_tokenized['input_ids'][0]))

输出是:

[CLS] i hate this. not that. [SEP]
9

注意参数tokenizer:max_length=20。如何让 Bert tokenizer 将 11 个 [PAD] 标记附加到这句话中,使其总数为 20

【问题讨论】:

【参考方案1】:

应该设置padding="max_length":

_tokenized = tokenizer(sent, padding="max_length", max_length=20, truncation=True)

【讨论】:

以上是关于拥抱面标记器中的填充如何工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 VBA 根据活动工作表中的单元格自动填充 Excel 表单?

(Vue.js)如何使用数据中数值数组中的选项标记填充选择标记?

SwiftUI Picker 填充问题 - 选择器中的 ForEach 循环不填充

ExtJs Grid通过渲染器中的ajax填充列

JSF 组件渲染器中的 JSF 标记

Java中的JPanel填充