pytorch 中的 Bert-多语言

Bert-multilingual in pytorch

我正在为法语文本数据使用 bert 嵌入。我在加载模型和词汇时遇到问题。

我使用以下代码进行标记化,效果很好,但为了获取词汇,它给了我中文单词!

tokenizer = BertTokenizer.from_pretrained('bert-base-multilingual-cased')
text = "La Banque Nationale du Canada fête cette année le 110e anniversaire de son bureau de Paris."
marked_text = "[CLS] " + text + " [SEP]"
tokenized_text = tokenizer.tokenize(marked_text)
list(tokenizer.vocab.keys())[5000:5020]

我希望词汇表中有法语单词,但我得到的是中文单词,我应该在代码中的某处指定语言吗?

您正在获取中文文本,因为您正在查找词汇表 [5000:5020] 中与中文文本相对应的特定范围的单词。此外,bert -base-multilingual-cased 接受了 104 种语言的培训。

如果你想进一步验证你的代码,你可以使用这个:

tokenizer = BertTokenizer.from_pretrained('bert-base-multilingual-cased')
text = "La Banque Nationale du Canada fête cette année le 110e anniversaire de son bureau de Paris."
marked_text = "[CLS] " + text + " [SEP]"
tokenized_text = tokenizer.tokenize(marked_text)

与您的代码相同,后跟:

token_no=[]
for token in tokenized_text:
    #print(tokenizer.vocab[token]) ### you can use this to check the corresponding index of the token
    token_no.append(tokenizer.vocab[token])


### The below code obtains the tokens from the index, which is similar to what you were trying, but on the correct range.
new_token_list=[]
for i in token_no:
    new_token_list.append(list(tokenizer.vocab.keys())[i])

#print(new_token_list); ### you can use it if you want to check back the tokens.