Gerando traduções de inglês para francês
Você sabia que o banco HSBC já gastou US$ 10 milhões para refazer seu slogan 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ê receberá o modelo treinado (model). Ele foi treinado por 50 épocas em 100.000 sentenças e alcançou cerca de 90% de acurácia em um conjunto de validação com mais de 35.000 palavras. Este exercício pode demorar um pouco mais para carregar, pois o modelo treinado é carregado antes do início. Além disso, você também terá um dicionário (fr_id2word) que pode usar para converter índices de palavras em palavras. Por fim, você usará a função sents2seqs que implementou antes para pré-processar os dados antes de alimentar o modelo.
Você pode usar help(sents2seqs) para relembrar o que a função sents2seqs() aceita.
Este exercício faz parte do curso
Machine Translation with Keras
Instruções do exercício
- Pré-processe a fonte
en_stpara convertê-la em um arraynumpyone-hot usando a funçãosents2seqsdefinida anteriormente. - Faça a previsão da saída para
en_sequsando omodeltreinado fornecido. - Extraia o índice máximo de cada previsão de
fr_predusandonp.argmaxe atribua afr_seq. - Converta os IDs da sequência em francês em uma sentença usando compreensão de listas (lembre-se de ignorar os 0s) e atribua 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")