Fazendo traduções de inglês para francês
Você sabia que o banco HSBC já gastou um $10 lhão de libras para mudar o slogan deles por causa de um erro de tradução?
Vamos usar o modelo treinado para prever a tradução em francês de uma frase em inglês usando model.predict()
. Você vai receber o modelo treinado (model
). Esse modelo foi treinado por 50 épocas em 100.000 frases, alcançando cerca de 90% de precisão em um conjunto de validação com mais de 35.000 palavras. Esse exercício pode demorar mais pra carregar, porque o modelo treinado é carregado antes do exercício. Além disso, você também vai receber um dicionário (fr_id2word
) que pode usar pra converter índices de palavras em palavras. Por fim, você vai usar a função sents2seqs
, que implementou anteriormente, para pré-processar os dados antes de enviá-los para o modelo.
Você pode usar help(sents2seqs)
para lembrar o que é aceito pela função sents2seqs()
.
Este exercício faz parte do curso
Tradução automática com Keras
Instruções do exercício
- Pré-processe a fonte
en_st
para que ela seja convertida em uma matriznumpy
codificada como onehot usando a funçãosents2seqs
definida anteriormente. - Preveja a saída para
en_seq
usando o modelo treinado fornecidomodel
. - Pega o índice máximo pra cada previsão de
fr_pred
usandonp.argmax
e coloca emfr_seq
. - Converta os IDs da sequência em francês em uma frase usando compreensão de lista (lembre-se de ignorar os zeros) e atribua-a a
fr_sent
.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
en_st = ['the united states is sometimes chilly during december , but it is sometimes freezing in june .']
print('English: {}'.format(en_st))
# Convert the English sentence to a sequence
en_seq = ____(____, en_st, ____=True, reverse=____)
# Predict probabilities of words using en_seq
fr_pred = ____.____(en_seq)
# Get the sequence indices (max argument) of fr_pred
fr_seq = ____.____(fr_pred, axis=____)[0]
# Convert the sequence of IDs to a sentence and print
fr_sent = [____[i] for i in ____ if i != ____]
print("French (Custom): {}".format(' '.join(fr_sent)))
print("French (Google Translate): les etats-unis sont parfois froids en décembre, mais parfois gelés en juin")