HuggingFace Transformers: BertTokenizer меняет персонажей

Я загрузил норвежскую BERT-модель с https://github.com/botxo/nordic_bert и загрузил ее, используя:

import transformers as t

model_class = t.BertModel
tokenizer_class = t.BertTokenizer

tokenizer = tokenizer_class.from_pretrained(/PATH/TO/MODEL/FOLDER)
model = model_class.from_pretrained(/PATH/TO/MODEL)
model.eval()

Это работает очень хорошо, однако, когда я пытаюсь токенизировать данное предложение, некоторые нордические символы, такие как "ø" и "æ", остаются прежними, тогда как все слова с символом "å" заменяются на "a". Например:

s = "æ ø å løpe få ærfugl"
print(tokenizer.tokenize(s))

Урожайность:

['æ', 'ø', 'a', 'løp', '##e', 'fa', 'ær', '##fugl']

Спасибо

1 ответ

Решение

Он работал с использованием BerttokenizerFast и установкой strip_accents = False. Похоже, что ошибка была в unicode.normalize в функции акцентов полосы.

  • Естественно, нужно изменить файл vocab.txt, чтобы он соответствовал формату токенизатора Bert.
Другие вопросы по тегам