Phần 1: Săn kho báu
Gần đây bạn trúng một chuyến du lịch đến hòn đảo nhiệt đới xanh tươi với mọi chi phí đã được thanh toán. Khi đang dạo quanh, bạn tìm thấy một bản đồ kho báu cổ chỉ tới một kho báu lớn, trên đó có vài thông điệp bí mật được viết bằng các số 1 và 0. Vừa học xong khóa học này, bạn lập tức nhận ra đó là một chuỗi các vector onehot. Bạn còn may mắn tìm được ánh xạ từ–sang–chỉ mục để biết từ nào tương ứng với ID nào.
Giờ bạn cần giải mã thông điệp bí mật để biết bản đồ đang nói gì. Bạn được cung cấp một treasure_map, là một ma trận có kích thước số câu x số từ x độ dài vector onehot. Bạn cũng được cung cấp từ điển Python index2word ánh xạ một ID sang một từ.
Bài tập này là một phần của khóa học
Machine Translation với Keras
Hướng dẫn bài tập
- Lấy các ID từ cho các vector onehot trong
treasure_map(chiều của vector onehot là chiều ở cuối cùng). - Lấy độ dài chuỗi (tức là số bước thời gian) từ
treasure_mapvà gán vàoseq_len. - Lấy ID từ ở câu thứ
itại vị trí thứt. - Thêm chuỗi ký tự là từ (tức là không phải ID của từ) tương ứng với
widvào danh sáchwords.
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.
# Get the word IDs from the treasure map
word_ids = ____.____(____, axis=____)
# Get the sequence length from the treasure map
seq_len = treasure_map.shape[____]
for i in range(treasure_map.shape[0]):
words = []
for t in range(seq_len):
# Get the word ID for the i-th sentence and t-th position
wid = word_ids[i, ____]
if wid != 0:
# Append the word corresponding to wid
words.append(____[____])
print("Instruction ", i+1, ": ", ' '.join(words))