НачатьНачать бесплатно

Часть 1: Охота за сокровищами

Недавно вам повезло выиграть полностью оплачиваемую поездку на роскошный тропический остров. Прогуливаясь по острову, вы обнаружили старинную карту сокровищ с таинственным посланием, записанным с помощью единиц и нулей. Пройдя этот курс, вы сразу же узнаёте в нём последовательность унитарно закодированных (onehot) векторов. К счастью, рядом оказалось и соответствие слов их идентификаторам.

Теперь вам нужно расшифровать послание и понять, что говорит эта карта. В вашем распоряжении — treasure_map: матрица размерностью количество предложений × количество слов × длина унитарного вектора. Также доступен словарь Python index2word, который сопоставляет идентификатор соответствующему слову.

Это упражнение является частью курса

Машинный перевод с Keras

Посмотреть курс

Инструкции к упражнению

  • Получите идентификаторы слов для унитарно закодированных векторов в treasure_map (размерность унитарного вектора — последняя).
  • Получите длину последовательности (то есть количество временных шагов) из treasure_map и присвойте результат переменной seq_len.
  • Получите идентификатор слова в i-м предложении на позиции t.
  • Добавьте в список words слово типа String (а не его идентификатор), соответствующее переменной wid.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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))
Редактировать и запускать код