Chuẩn bị văn bản đầu ra
Trong bài tập này, bạn sẽ chuẩn bị các văn bản đầu ra để dùng cho mô hình dịch. Bên cạnh việc biến đổi văn bản thành các dãy chỉ số, bạn cũng cần one-hot encode từng chỉ số.
Các văn bản tiếng Anh được nạp vào biến en_sentences, bộ tokenizer đã fit nằm trong biến output_tokenizer và kích thước từ vựng tiếng Anh nằm trong en_vocab_size.
Ngoài ra, một hàm để thực hiện các bước đầu của việc biến đổi ngôn ngữ đầu ra (chuyển văn bản thành dãy chỉ số) đã được tạo sẵn. Hàm này được nạp trong môi trường với tên transform_text_to_sequences() và có hai tham số: sentences nhận một danh sách câu tiếng Anh và tokenizer nhận một đối tượng Tokenizer đã fit từ mô-đun keras.preprocessing.text.
numpy đã được nạp với tên np.
Bài tập này là một phần của khóa học
Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras
Hướng dẫn bài tập
- Truyền các biến
en_sentencesvàoutput_tokenizervào hàmtransform_text_to_sequences()để khởi tạo biếnY. - Dùng hàm
to_categorical()để one-hot encode các câu. Dùng biếnen_vocab_sizelàm số lớp. - Chuyển danh sách tạm thời thành mảng numpy và reshape để có dạng
(num_sentences, sentences_len, en_vocab_size). - In ra văn bản thô và phiên bản đã biến đổi.
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.
# Initialize the variable
Y = transform_text_to_sequences(____, ____)
# Temporary list
ylist = list()
for sequence in Y:
# One-hot encode sentence and append to list
ylist.append(____(sequence, num_classes=____))
# Update the variable
Y = np.array(ylist).reshape(____, Y.shape[1], en_vocab_size)
# Print the raw sentence and its transformed version
print("Raw sentence: {0}\nTransformed: {1}".format(____, Y[0]))