Generera engelsk-franska översättningar
Visste du att HSBC-banken en gång spenderade 10 miljoner dollar på att byta slogan – på grund av ett översättningsmisstag?
Vi använder den tränade modellen för att förutsäga den franska översättningen av en engelsk mening med hjälp av model.predict(). Du får tillgång till den tränade modellen (model). Den har tränats i 50 epoker på 100 000 meningar och uppnådde ungefär 90 % noggrannhet på ett valideringsset med över 35 000 ord. Det kan ta lite längre tid att ladda övningen eftersom den tränade modellen läses in i förväg. Du får också tillgång till en ordbok (fr_id2word) som du kan använda för att konvertera ordindex till ord. Slutligen använder du funktionen sents2seqs som du implementerade tidigare för att förbehandla datan innan den matas in i modellen.
Du kan använda help(sents2seqs) för att påminna dig om vad sents2seqs() accepterar som indata.
Den här övningen är en del av kursen
Maskinöversättning med Keras
Övningsinstruktioner
- Förbehandla källan
en_stså att den konverteras till en one-hot-kodadnumpy-array med den tidigare definierade funktionensents2seqs. - Förutsäg utdata för
en_seqmed den tillhandahållna tränademodel. - Extrahera det maximala indexet för varje förutsägelse i
fr_predmed hjälp avnp.argmaxoch tilldela resultatet tillfr_seq. - Konvertera de franska sekvens-ID:na till en mening med listomfattning (kom ihåg att ignorera nollor) och tilldela resultatet till
fr_sent.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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")