Bắt đầu ngayBắt đầu miễn phí

Đảo ngược câu

Tại đây bạn sẽ học cách đảo ngược câu cho mô hình encoder. Như đã thảo luận, đảo ngược câu nguồn giúp hình thành kết nối ban đầu chặt chẽ giữa encoder và decoder, từ đó cải thiện hiệu năng của mô hình. Tuy nhiên, luôn nhớ rằng lợi ích này còn phụ thuộc vào cặp ngôn ngữ bạn đang dịch. Miễn là chúng có cùng trật tự chủ ngữ, động từ và tân ngữ, mô hình sẽ được hưởng lợi.

Trong bài này bạn sẽ chỉnh hàm sents2seqs() để có thể đảo câu khi cần. Người dùng có thể truyền một đối số từ khóa kiểu boolean reverse để thực hiện đảo chuỗi ký tự.

Bài tập này là một phần của khóa học

Machine Translation với Keras

Xem khóa học

Hướng dẫn bài tập

  • Viết chữ ký hàm sents2seqs() bằng cách thêm đối số từ khóa mới reverse với giá trị mặc định là False.
  • Đảo ngược các ID của chuỗi trả về theo chiều thời gian (dùng cú pháp ::-1), sao cho ID từ đầu tiên trở thành cuối cùng.
  • Gọi sents2seqs() và đảo ngược sentences đã cho, giữ nguyên tất cả các tham số mặc định khác.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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))
Chỉnh sửa và Chạy Mã