Membalik urutan kalimat
Di sini Anda akan mempelajari cara membalik urutan kalimat untuk model encoder. Seperti dibahas sebelumnya, membalik kalimat sumber membantu membentuk keterkaitan awal yang kuat antara encoder dan decoder, yang meningkatkan kinerja model. Namun, selalu ingat bahwa manfaatnya bergantung pada pasangan bahasa yang diterjemahkan. Selama keduanya memiliki urutan subjek, predikat (verba), dan objek yang sama, ini akan menguntungkan model.
Dalam latihan ini Anda akan memodifikasi fungsi sents2seqs() agar dapat membalik urutan kalimat bila diperlukan. Pengguna dapat menentukan argumen kata kunci boolean reverse yang melakukan pembalikan teks.
Latihan ini adalah bagian dari kursus
Penerjemahan Mesin dengan Keras
Petunjuk latihan
- Tulis tanda tangan fungsi
sents2seqs()dengan menambahkan argumen kata kunci barureverseyang nilai bakunyaFalse. - Balik urutan ID sekuens yang dikembalikan pada dimensi waktu (menggunakan sintaks
::-1), sehingga ID kata pertama menjadi yang terakhir. - Panggil
sents2seqs()dan balik urutansentencesyang diberikan serta biarkan semua nilai parameter baku lainnya tetap tidak berubah.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
sentences = ["california is never rainy during july ."]
# Add new keyword parameter reverse which defaults to False
def ____(input_type, sentences, onehot=False, pad_type='post', ____=____):
encoded_text = en_tok.texts_to_sequences(sentences)
preproc_text = pad_sequences(encoded_text, padding=pad_type, truncating='post', maxlen=en_len)
if reverse:
# Reverse the text using numpy axis reversing
preproc_text = preproc_text[:, ____]
if onehot:
preproc_text = to_categorical(preproc_text, num_classes=en_vocab)
return preproc_text
# Call sents2seqs to get the padded and reversed sequence of IDs
pad_seq = ____('source', ____, ____=____)
rev_sent = [en_tok.index_word[wid] for wid in pad_seq[0][-6:]]
print('\tReversed: ',' '.join(rev_sent))