Menghasilkan terjemahan Inggris–Prancis
Tahukah Anda bahwa bank HSBC pernah menghabiskan $10 juta untuk melakukan rebranding slogannya karena kesalahan terjemahan?
Kita akan menggunakan model terlatih untuk memprediksi terjemahan bahasa Prancis dari kalimat bahasa Inggris menggunakan model.predict(). Anda akan disediakan model terlatih (model). Model ini telah dilatih selama 50 epoch pada 100.000 kalimat dan mencapai akurasi sekitar 90% pada himpunan validasi berisi lebih dari 35.000 kata. Latihan ini mungkin memerlukan waktu lebih lama untuk dimuat karena model terlatih dimuat terlebih dahulu sebelum latihan. Selain itu, Anda juga akan diberikan sebuah kamus (fr_id2word) yang dapat digunakan untuk mengonversi indeks kata menjadi kata. Terakhir, Anda akan menggunakan fungsi sents2seqs yang telah Anda implementasikan sebelumnya untuk melakukan prapemrosesan data sebelum diberikan ke model.
Anda dapat menggunakan help(sents2seqs) untuk mengingat kembali apa saja yang diterima oleh fungsi sents2seqs().
Latihan ini adalah bagian dari kursus
Penerjemahan Mesin dengan Keras
Petunjuk latihan
- Praproses sumber
en_stsehingga dikonversi menjadi arraynumpyber-enkode one-hot menggunakan fungsisents2seqsyang telah didefinisikan sebelumnya. - Prediksi keluaran untuk
en_seqmenggunakanmodelterlatih yang disediakan. - Ekstrak indeks maksimum untuk setiap prediksi
fr_predmenggunakannp.argmaxdan tetapkan kefr_seq. - Konversi ID urutan bahasa Prancis menjadi sebuah kalimat menggunakan list comprehension (ingat untuk mengabaikan 0) dan tetapkan ke
fr_sent.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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")