Частина 1: Полювання за скарбом
Нещодавно ви виграли повністю оплачувану подорож на квітучий тропічний острів. Під час прогулянки ви знайшли стародавню карту скарбів, що вказує на великий скарб, із кількома таємними повідомленнями, записаними за допомогою 1 і 0. Щойно пройшовши цей курс, ви одразу впізнаєте, що це послідовність векторів у one-hot кодуванні. Вам також пощастило знайти відображення «слово ↔ індекс», щоб знати, яке слово відповідає якому ID.
Тепер потрібно розшифрувати таємне повідомлення і з'ясувати, що саме каже ця карта. Вам надано treasure_map — матрицю розміру кількість речень × кількість слів × довжина one-hot вектора. Також надано словник Python index2word, який відображає ID у слово.
Ця вправа є частиною курсу
Machine Translation з Keras
Інструкції до вправи
- Отримайте ідентифікатори слів для one-hot векторів у
treasure_map(вимірність one-hot вектора — це остання вимірність). - Отримайте довжину послідовності (тобто кількість кроків часу) з
treasure_mapі присвойте її зміннійseq_len. - Отримайте ID слова в
i-му реченні на позиціїt. - Додайте рядок зі словом (тобто не ID слова), що відповідає
wid, до спискуwords.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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))