ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Pré-processe a fonte en_st para que ela seja convertida em uma matriz numpy codificada como onehot usando a função sents2seqs definida anteriormente.
  • Preveja a saída para en_seq usando o modelo treinado fornecido model.
  • Pega o índice máximo pra cada previsão de fr_pred usando np.argmax e coloca em fr_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")
Editar e executar o código