RoBERTa tokenizer出现奇奇怪怪的“G”

在用Transformer RoBERTa的时候,使用RoBERTaTokenizer,分词之后每个token前面会出现奇奇怪怪的“G”(上面还有个点号,其实试unicode 字符\u0120)
在这里插入图片描述
原因是RoBERTa和GPT-2等一样,词表用的是BPE(original BPE paper by Sennrich et al),它不同于我们用的普通BERT的tokenizer,即WordPiece vocabulary,把未知的word不停按照subword分下去(比方说“#T”,"##ok",按照分的级数确定前面“#”的个数)

其实在下载RoBERTa的时候就会发现,它和普通BERT相比,下载文件有点不一样
普通BERT:
在这里插入图片描述
RoBERTa:
在这里插入图片描述
RoBERTa的vocab里面打开会发现所有的word前面都会有个"G",同时它还多了个merge.txt
在这里插入图片描述
还有为什么会出现“G”?
在这里插入图片描述

有关tokenization:
机器如何认识文本 ?NLP中的Tokenization方法总结

参考资料

github-为什么会出现“G”
github-为什么要有merge.txt
Difficulty in understanding the tokenizer used in Roberta model
Tokenization issue with RoBERTa and DistilRoBERTa