我正在将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]
我希望词汇中有法语单词,但我有中文单词,我应该在代码中指定语言吗?
答案 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.