据我了解,GPT-2 和 BERT 使用的是字节对编码,这是一种子字编码。由于使用了很多开始/结束标记,例如 <|startoftext|> 和 ,因此我认为编码器应该将标记编码为一个整体。
但是,当我使用 pytorchBertTokenizer时,编码器似乎也将令牌分成几块。这是正确的行为吗?
from pytorch_pretrained_bert import BertTokenizer, cached_path
tokenizer = BertTokenizer.from_pretrained('bert-base-cased', do_lower_case=False)
tokenizer.tokenize('<s> This is a sentence <|endoftext|>')
结果是:
['<',
's',
'>',
'This',
'is',
'a',
'sentence',
'<',
'|',
'end',
'##oft',
'##ex',
'##t',
'|',
'>']