如何在 python 分词器库中设置词汇量?

How to set vocabulary size in python tokenizers library?

我想安装我自己的分词器并将其进一步用于预训练模型,但是,在安装新的分词器时,似乎无法选择词汇量大小。所以当我调用 tokenizer.get_vocab() 时,它总是 returns 一个包含 30000 个元素的字典。我该如何改变它?这是我的工作:

from tokenizers import Tokenizer
from tokenizers.models import BPE
tokenizer = Tokenizer(BPE(unk_token="[UNK]"))

from tokenizers.trainers import BpeTrainer
trainer = BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"])

from tokenizers.pre_tokenizers import Whitespace
tokenizer.pre_tokenizer = Whitespace()

tokenizer.train(['transcripts.raw'], trainer) # Here there are no additional arguments for some reason

你可以做的是使用 BpeTrainervocab_size 参数,默认设置为 30000:

trainer = BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"], vocab_size=10)

更多信息,您可以查看docs