pytorch中的多语言

时间:2019-06-21 17:51:48

标签: python python-3.x pytorch multilingual bert-language-model

我正在将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]

我希望词汇中有法语单词,但我有中文单词,我应该在代码中指定语言吗?

1 个答案:

答案 0 :(得分:0)

您正在获取中文文本是因为,您正在从词汇表[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.