我正在将 Huggingface BERT 用于 NLP 任务。我的文本包含被分成子词的公司名称。
tokenizer = BertTokenizerFast.from_pretrained('bert-base-uncased')
tokenizer.encode_plus("Somespecialcompany")
output: {'input_ids': [101, 2070, 13102, 8586, 4818, 9006, 9739, 2100, 102], 'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0], 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1]}
现在我想将这些名称添加到标记器 ID 中,这样它们就不会被拆分。
tokenizer.add_tokens("Somespecialcompany")
output: 1
这将标记器的长度从 30522 扩展到 30523。
因此,所需的输出将是新 ID:
tokenizer.encode_plus("Somespecialcompany")
output: 30522
但是输出和以前一样:
output: {'input_ids': [101, 2070, 13102, 8586, 4818, 9006, 9739, 2100, 102], 'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0], 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1]}
所以我的问题是;将新标记添加到标记器的正确方法是什么,以便我可以将它们与 tokenizer.encode_plus() 和 tokenizer.batch_encode_plus() 一起使用?