HuggingFace 变形金刚:BertTokenizer 改变角色

HuggingFace Transformers: BertTokenizer changing characters

我已经从 https://github.com/botxo/nordic_bert 下载了挪威 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']

谢谢

它通过使用 BerttokenizerFast 并设置 strip_accents = False 来工作。错误出现在带重音函数的 unicode.normalize 中。

  • 当然,必须更改 vocab.txt 文件以使其与 Bert 分词器格式匹配。