【发布时间】:2021-12-15 05:36:45
【问题描述】:
我有一些文本,我想对其执行 NLP。为此,我下载了一个预训练的标记器,如下所示:
import transformers as ts
pr_tokenizer = ts.AutoTokenizer.from_pretrained('distilbert-base-uncased', cache_dir='tmp')
然后我用我的数据创建自己的标记器,如下所示:
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)
现在是我感到困惑的部分...我需要更新预转录标记器 (pr_tokenizer) 中的条目,它们的键与我的标记器 (tokenizer) 中的相同。我已经尝试了几种方法,所以这里是其中一种:
new_vocab = pr_tokenizer.vocab
v = tokenizer.get_vocab()
for i in v:
if i in new_vocab:
new_vocab[i] = v[i]
那我现在该怎么办?我在想这样的事情:
pr_tokenizer.vocab.update(new_vocab)
或
pr_tokenizer.vocab = new_vocab
都不行。有谁知道这样做的好方法吗?
【问题讨论】:
标签: python python-3.x nlp huggingface-transformers huggingface-tokenizers