提问人:Carlos Muradyan 提问时间:10/17/2023 更新时间:10/17/2023 访问量:13
在增加词汇量后,DistilBert 标记化不会在单词内标记的开头添加磅 (##)
DistilBert tokenization does not add pounds (##) at the start of in-word tokens after increasing vocabulary
问:
我正在用来自新语料库的新令牌来丰富 DistilBert tokenizer。 使用分词器,并基于 Huggingface NLP 课程,通过从单词开头找到“尽可能长的标记”,将其拆分,然后对单词的其余部分执行相同的操作来完成推理。DistilBert
WordPiece
然而,在我的分词器中,我有 、 、 、 标记,但是在标记化检查时,分词器会提出以下标记: .inspect
insp
ec
##ec
##t
['insp', 'ec', '##t']
我希望分词器只返回一个标记:“inspect”。即使它分裂了,我也希望它至少会回来.['insp', '##ec', '##t']
这是一个错误还是我的代码的某些部分不正确?
最小工作示例:
>> from transformers import AutoTokenizer
>> model_checkpoint = 'elastic/distilbert-base-uncased-finetuned-conll03-english'
>> tokenizer = AutoTokenizer.from_pretrained(model_checkpoint)
>> ('inspect' in tokenizer.vocab, 'insp' in tokenizer.vocab, 'ec' in tokenizer.vocab, '##ec' in tokenizer.vocab, '##t' in tokenizer.vocab)
# (True, False, True, True, True)
>> tokenizer.convert_ids_to_tokens(tokenizer.encode('inspect'))
# ['[CLS]', 'inspect', '[SEP]']
>> tokenizer.add_tokens(['insp'])
# 1
>> ('inspect' in tokenizer.vocab, 'insp' in tokenizer.vocab, 'ec' in tokenizer.vocab, '##ec' in tokenizer.vocab, '##t' in tokenizer.vocab)
# (True, True, True, True, True)
>> tokenizer.convert_ids_to_tokens(tokenizer.encode('inspect'))
# ['[CLS]', 'insp', 'ec', '##t', '[SEP]']
答: 暂无答案
评论