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

Подготовка выходного текста

В этом упражнении вы подготовите выходные тексты для использования в модели перевода. Помимо преобразования текста в последовательности индексов, потребуется также выполнить унитарное кодирование (one-hot encoding) каждого индекса.

Английские тексты загружены в переменную en_sentences, обученный токенизатор — в переменную output_tokenizer, а размер английского словаря — в переменную en_vocab_size.

Функция для выполнения первых шагов преобразования выходного языка (преобразование текстов в последовательности индексов) уже создана. Она доступна в среде как transform_text_to_sequences() и принимает два параметра: sentences — список предложений на английском языке, и tokenizer — обученный объект Tokenizer из модуля keras.preprocessing.text.

numpy загружен как np.

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

Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras

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

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

  • Передайте переменные en_sentences и output_tokenizer в функцию transform_text_to_sequences(), чтобы инициализировать переменную Y.
  • Используйте функцию to_categorical() для унитарного кодирования предложений. Укажите переменную en_vocab_size в качестве числа классов.
  • Преобразуйте временный список в массив numpy и измените его форму до (num_sentences, sentences_len, en_vocab_size).
  • Выведите исходный текст и преобразованный.

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

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

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