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
Instrucțiuni pentru exercițiu
- Preprocesează sursa
en_stastfel încât să fie convertită într-un arraynumpycu codificare one-hot, folosind funcțiasents2seqsdefinită anterior. - Prezice rezultatul pentru
en_seqfolosind modelul antrenatmodel. - Extrage indicele maxim pentru fiecare predicție din
fr_predfolosindnp.argmaxși atribuie rezultatul variabileifr_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")