Generování překladů z angličtiny do francouzštiny
Věděl/a jsi, že banka HSBC jednou utratila 10 milionů dolarů za rebranding svého sloganu kvůli chybě v překladu?
Natrénovaný model použijeme k předpovědi francouzského překladu anglické věty pomocí model.predict(). K dispozici máš natrénovaný model (model), který byl trénován po dobu 50 epoch na 100 000 větách a dosáhl přibližně 90% přesnosti na validační sadě čítající více než 35 000 slov. Načítání tohoto cvičení může trvat déle, protože se před jeho spuštěním nahrává natrénovaný model. Dále máš k dispozici slovník (fr_id2word), který slouží k převodu indexů slov na slova samotná. Nakonec využiješ funkci sents2seqs, kterou jsi implementoval/a dříve, k předzpracování dat před jejich předáním modelu.
Pomocí help(sents2seqs) si můžeš připomenout, jaké vstupy funkce sents2seqs() přijímá.
Toto cvičení je součástí kurzu
Machine Translation with Keras
Pokyny k cvičení
- Předzpracuj zdrojovou větu
en_sttak, aby byla převedena na onehot zakódované polenumpypomocí dříve definované funkcesents2seqs. - Předpověz výstup pro
en_seqpomocí poskytnutého natrénovaného modelumodel. - Extrahuj index s nejvyšší hodnotou pro každou předpověď v
fr_predpomocínp.argmaxa výsledek ulož dofr_seq. - Pomocí list comprehension převeď ID francouzské sekvence na větu (nezapomeň ignorovat 0) a výsledek ulož do
fr_sent.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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")