Берт-многоязычный в pytorch - PullRequest
0 голосов
/ 21 июня 2019

Я использую Bert Embedded для французских текстовых данных.и у меня проблема с загрузкой модели и словаря.

Я использовал следующий код для токенизации, который хорошо работает, но чтобы получить словарь, он дает мне китайские слова !!

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]

Iожидаемые французские слова в словаре, но я получаю китайские слова, я должен указать язык где-нибудь в коде?

1 Ответ

0 голосов
/ 26 июня 2019

Вы получаете текст на китайском языке, потому что вы ищете определенный диапазон слов из словаря [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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...