Inizia subitoInizia gratis

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

Visualizza corso

Istruzioni dell'esercizio

  • Preprocessa la sorgente en_st in modo che venga convertita in un array numpy one-hot encoded usando la funzione sents2seqs definita in precedenza.
  • Prevedi l’output per en_seq usando il model addestrato fornito.
  • Estrai l’indice massimo per ogni previsione di fr_pred usando np.argmax e assegnalo a fr_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")
Modifica ed esegui il codice