Generare traduzioni Inglese–Francese
Sapevi che la banca HSBC ha speso una volta 10 milioni di dollari per riposizionare il suo slogan a causa di un errore di traduzione?
Useremo il modello addestrato per prevedere la traduzione in francese di una frase inglese usando model.predict(). Ti verrà fornito il modello addestrato (model). Questo modello è stato addestrato per 50 epoche su 100.000 frasi e ha raggiunto circa il 90% di accuratezza su un insieme di validazione con oltre 35.000 parole. Potrebbe volerci più tempo per caricare questo esercizio perché il modello addestrato viene caricato prima dell’esercizio. Inoltre, ti verrà fornito un dizionario (fr_id2word) che puoi usare per convertire gli indici delle parole in parole. Infine, userai la funzione sents2seqs che hai implementato in precedenza per preprocessare i dati prima di passarli al modello.
Puoi usare help(sents2seqs) per ricordarti cosa accetta la funzione sents2seqs().
Questo esercizio fa parte del corso
Traduzione automatica con Keras
Istruzioni dell'esercizio
- Preprocessa la sorgente
en_stin modo che venga convertita in un arraynumpyone-hot encoded usando la funzionesents2seqsdefinita in precedenza. - Prevedi l’output per
en_sequsando ilmodeladdestrato fornito. - Estrai l’indice massimo per ogni previsione di
fr_predusandonp.argmaxe assegnalo afr_seq. - Converti gli ID della sequenza francese in una frase usando una list comprehension (ricorda di ignorare gli 0) e assegnala a
fr_sent.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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")