Nlp 拥抱变形金刚:改变角色

Nlp 拥抱变形金刚:改变角色,nlp,huggingface-transformers,huggingface-tokenizers,Nlp,Huggingface Transformers,Huggingface Tokenizers,我已从下载了挪威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() 这非

我已从下载了挪威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来工作。在strip accents函数中,错误出现在unicode.normalize中

  • 当然,必须修改vocab.txt文件,使其与Bert标记器格式匹配

它通过使用BerttokenizerFast并设置strip_accents=False来工作。在strip accents函数中,错误出现在unicode.normalize中

  • 当然,必须修改vocab.txt文件,使其与Bert标记器格式匹配

当您检查vocab.txt时,您将看到
å
不是令牌。因此标记器无法生成它。
å
是一个单词吗?因为
å
是其他令牌的一部分。我设法解决了它,å确实在vocab.txt中,所以问题不存在。它通过使用BerttokenizerFast并设置strip_accents=False来工作。当我运行
grep^åvocab.txt
时,它不会返回任何内容。这意味着vocab.txt中没有
å
。您下载并使用过挪威模式吗?它是基于挪威语的单词和字符。按ctrl键f并在vocab中找到å,奇怪的是,
å
当然在挪威模式的vocab.txt中(准确地说是975次),但这并不意味着它也是一个标记(即词汇表条目)。我还仔细研究了它,认为它与huggingface标记器不完全兼容,因为提供的vocab.txt只包含子词标记(用###标记表示),而没有单个词(根据huggingface条目的定义,这些条目不以##开头)。他们也不是指hugginface,而是指官方的google bert github,它有自己的标记器并使用tensorflow。当你检查vocab.txt时,你会发现
å
不是一个标记。因此标记器无法生成它。
å
是一个单词吗?因为
å
是其他令牌的一部分。我设法解决了它,å确实在vocab.txt中,所以问题不存在。它通过使用BerttokenizerFast并设置strip_accents=False来工作。当我运行
grep^åvocab.txt
时,它不会返回任何内容。这意味着vocab.txt中没有
å
。您下载并使用过挪威模式吗?它是基于挪威语的单词和字符。按ctrl键f并在vocab中找到å,奇怪的是,
å
当然在挪威模式的vocab.txt中(准确地说是975次),但这并不意味着它也是一个标记(即词汇表条目)。我还仔细研究了它,认为它与huggingface标记器不完全兼容,因为提供的vocab.txt只包含子词标记(用###标记表示),而没有单个词(根据huggingface条目的定义,这些条目不以##开头)。他们也不是指hugginface,而是指官方的GoogleBertGithub,它有自己的标记器并使用tensorflow。