关于拥抱面部变形金刚中的get_special_tokens_mask

时间:2020-05-10 04:57:44

标签: tokenize huggingface-transformers

我使用变形器令牌生成器,并使用以下API创建了掩码:get_special_tokens_mask。
My Code

RoBERTa Doc中,此API的返回结果是“ [0,1]范围内的整数列表:特殊标记为0,序列标记为1”。但我似乎该API返回“ 0表示序列令牌,1表示特殊令牌”。
可以吗?

1 个答案:

答案 0 :(得分:0)

您确实是正确的。我在2.7版和2.9版(在撰写本文时)都进行了测试,在两种情况下,我的确得到了相反的结果(常规字符为0,特殊字符为1字符。

作为参考,这是我测试的方式:

import transformers

tokenizer = transformers.AutoTokenizer.from_pretrained("roberta-base")
sentence = "This is a special sentence."

encoded_sentence = tokenizer.encode(sentence)
# [0, 152, 16, 10, 780, 3645, 4, 2]
special_masks = tokenizer.get_special_tokens_mask(encoded_sentence)
# [1, 0, 0, 0, 0, 0, 0, 0, 0, 1]

我建议您在their repository中报告此问题,或者理想情况下请您自己提供拉动请求以解决该问题;-)