Часть 1: Модель обращения текста — энкодер
Реализация простой модели обращения текста — отличный способ разобраться в механике архитектуры энкодер-декодер и понять, как её части взаимодействуют между собой. Сейчас вы реализуете часть энкодера такой модели.
Реализация энкодера разбита на два упражнения. В этом упражнении вы определите вспомогательную функцию words2onehot(). Функция words2onehot() должна принимать список слов и словарь word2index, а затем преобразовывать список слов в массив векторов унитарного кода (one-hot). Словарь word2index доступен в рабочей области.
Это упражнение является частью курса
Машинный перевод с Keras
Инструкции к упражнению
- Преобразуйте слова в идентификаторы с помощью словаря
word2indexвнутри функцииwords2onehot(). - Преобразуйте идентификаторы слов в векторы унитарного кода (one-hot) длиной
3(используя аргументnum_classes) и верните полученный массив. - Вызовите функцию
words2onehot(), передав словаI,likeиcats, и присвойте результат переменнойonehot. - Выведите слова и соответствующие им векторы унитарного кода с помощью функций
print()иzip(). Функцияzip()позволяет перебирать несколько списков одновременно.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
import numpy as np
def words2onehot(word_list, word2index):
# Convert words to word IDs
word_ids = [____[w] for w in ____]
# Convert word IDs to onehot vectors and return the onehot array
onehot = ____(____, num_classes=3)
return ____
words = ["I", "like", "cats"]
# Convert words to onehot vectors using words2onehot
onehot = ____(____, ____)
# Print the result as (, ) tuples
print([(w,ohe.tolist()) for ____,____ in zip(words, ____)])