首页 > 解决方案 > 编码错误:用越南语从头开始训练 BERT

问题描述

我遵循本教程如何使用 Transformers 和 Tokenizers 从头开始​​训练新的语言模型

在 Section 2. Train a tokenizer 中,通过我自己的越南文本数据进行训练后,我查看生成的 .vocab 文件,所有的标记都变成了这样:

"ĠÄij":268,"nh":269,"ủ":270,"Ãł":271,"Ġch":272,"iá»":273,"á":274,"Ġl":275,"Ġb":276,"Æ°":277,"Ġh":278,"ế":279,

有什么办法解决这个问题吗?

标签: encodingtokenizebert-language-modelhuggingface-transformershuggingface-tokenizers

解决方案


您可以使用 ByteLevel 解码器(ByteLevelBPETokenizer 使用的部分)读取这些令牌,如下所示:

a = tokenizer.encode("thầy giáo rất tốt.").tokens
print(a)
>> ['<s>', 'thầy', 'Ġgiáo', 'Ġrất', 'Ġtá»ijt', '.', '</s>']

from tokenizers.decoders import ByteLevel
decoder = ByteLevel()
decoder.decode(a)
>> <s>thầy giáo rất tốt.</s>

推荐阅读