bert-language-model - Huggingface BERT Tokenizer 添加新 token

标签 bert-language-model huggingface-transformers huggingface-tokenizers

我正在将 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]}
所以我的问题是;将新 token 添加到标记器以便我可以将它们与 tokenizer.encode_plus() 和 tokenizer.batch_encode_plus() 一起使用的正确方法是什么?

最佳答案

我在 github 上打开了一个错误报告.显然我只需要将“special_tokens”参数设置为“True”。

tokenizer.add_tokens(["somecompanyname"], special_tokens=True)
output: 30522

关于bert-language-model - Huggingface BERT Tokenizer 添加新 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64669365/

相关文章:

pytorch - Huggingface bert 表现出较差的准确性/f1 分数 [pytorch]

pytorch - 使用经过训练的 BERT 模型、拥抱脸来预测原始文本的情感

python - 标记化和编码数据集使用过多 RAM

nlp - bert怎么是双向的?

python - 类型错误 : '<' not supported between instances of 'torch.device' and 'int'

bert-language-model - 来自转换器的 BERT 句子嵌入

nlp - 如何使用变压器模型获得词汇表外单词的词嵌入?

huggingface-transformers - 抱脸变形金刚: Loading model from path error

python - Google Colab 中的 BERT 多类文本分类

python-3.x - 获取BERT中 '[UNK]'的值