Generación de traducciones inglés-francés
¿Sabías que el banco HSBC gastó una vez $10 millones en renovar su eslogan debido a un error de traducción?
Utilizaremos el modelo entrenado para predecir la traducción al francés de una frase en inglés utilizando model.predict()
. Se te proporcionará el modelo entrenado (model
). Este modelo se ha entrenado durante 50 épocas con 100 000 frases, lo que ha permitido alcanzar una precisión de alrededor del 90 % en un conjunto de validación de más de 35 000 palabras. Este ejercicio puede tardar más en cargarse, ya que el modelo entrenado se carga antes que el ejercicio. Además, también se te proporcionará un diccionario (fr_id2word
) que podrás utilizar para convertir índices de palabras en palabras. Por último, utilizarás la función « sents2seqs
» que has implementado anteriormente para preprocesar los datos antes de introducirlos en el modelo.
Puedes utilizar help(sents2seqs)
para recordar qué acepta la función sents2seqs()
.
Este ejercicio forma parte del curso
Traducción automática con Keras
Instrucciones del ejercicio
- Preprocesa la fuente
en_st
para que se convierta en un arreglonumpy
codificado como onehot utilizando la funciónsents2seqs
definida anteriormente. - Predice el resultado de
en_seq
utilizando el modelo entrenado proporcionadomodel
. - Extrae el índice máximo para cada predicción de
fr_pred
utilizandonp.argmax
y asígnalo afr_seq
. - Convierte los ID de secuencia franceses en una frase utilizando la comprensión de listas (recuerda ignorar los 0) y asígnalos a
fr_sent
.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
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")