Bert Tokenizer add_token 功能无法正常工作

Bert Tokenizer add_token function not working properly

tokenizer add_tokens 没有添加新的标记。 这是我的代码:

  from transformers import BertTokenizer

  bert_tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')

  new_tokens = []
  text = open("parsed_data.txt", "r")
  for line in text:
     for word in line.split():
        new_tokens.append(word) 

  print(len(new_tokens))      # 53966
  print(len(bert_tokenizer))  # 36369
  bert_tokenizer.add_tokens(new_tokens)
  print(len(bert_tokenizer))  # 36369

是的,如果令牌已经存在,则跳过它。顺便说一句,在更改分词器之后,您还必须更新模型。请参阅下面的最后一行。

bert_tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
tokenizer.add_tokens(my_new_tokens)

model.resize_token_embeddings(len(bert_tokenizer))