我使用变形器标记器,并使用API:get_special_tokens_mask创建了掩码。My Code
在RoBERTa Doc中,此API的返回是“在[0,1]范围内的整数列表:特殊标记为0,序列标记为1”。但是我似乎此API返回“ 0表示序列令牌,1表示特殊令牌”。可以吗?
您确实是正确的。我在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中报告此问题,或者理想情况下请您自己提供拉动请求以解决此问题;-)