ÎncepețiÎncepe gratuit

Generarea traducerilor engleză-franceză

Știai că banca HSBC a cheltuit odată 10 milioane de dolari pentru a-și rebranduire sloganul, din cauza unei greșeli de traducere?

Vom folosi modelul antrenat pentru a prezice traducerea în franceză a unei propoziții în engleză, folosind model.predict(). Vei primi modelul antrenat (model). Acesta a fost antrenat timp de 50 de epoci pe 100.000 de propoziții și a atins o acuratețe de aproximativ 90% pe un set de validare de peste 35.000 de cuvinte. Este posibil ca acest exercițiu să dureze mai mult să se încarce, deoarece modelul antrenat este încărcat înainte de începerea exercițiului. De asemenea, vei primi un dicționar (fr_id2word) pe care îl poți folosi pentru a converti indicii cuvintelor în cuvinte. În final, vei folosi funcția sents2seqs implementată anterior pentru a preprocesa datele înainte de a le transmite modelului.

Poți folosi help(sents2seqs) pentru a-ți reaminti ce parametri acceptă funcția sents2seqs().

Acest exercițiu face parte din cursul

Traducere automată cu Keras

Vezi cursul

Instrucțiuni pentru exercițiu

  • Preprocesează sursa en_st astfel încât să fie convertită într-un array numpy cu codificare one-hot, folosind funcția sents2seqs definită anterior.
  • Prezice rezultatul pentru en_seq folosind modelul antrenat model.
  • Extrage indicele maxim pentru fiecare predicție din fr_pred folosind np.argmax și atribuie rezultatul variabilei fr_seq.
  • Convertește ID-urile secvenței franceze într-o propoziție folosind list comprehension (nu uita să ignori valorile 0) și atribuie rezultatul variabilei fr_sent.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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")
Editează și rulează codul