如何在 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
你可以做的是使用 BpeTrainer
的 vocab_size
参数,默认设置为 30000:
trainer = BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"], vocab_size=10)
更多信息,您可以查看docs。
我想安装我自己的分词器并将其进一步用于预训练模型,但是,在安装新的分词器时,似乎无法选择词汇量大小。所以当我调用 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
你可以做的是使用 BpeTrainer
的 vocab_size
参数,默认设置为 30000:
trainer = BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"], vocab_size=10)
更多信息,您可以查看docs。