MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Tulis tanda tangan fungsi sents2seqs() dengan menambahkan argumen kata kunci baru reverse yang nilai bakunya False.
  • Balik urutan ID sekuens yang dikembalikan pada dimensi waktu (menggunakan sintaks ::-1), sehingga ID kata pertama menjadi yang terakhir.
  • Panggil sents2seqs() dan balik urutan sentences yang 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))
Edit dan Jalankan Kode