Подготовка выходного текста
В этом упражнении вы подготовите выходные тексты для использования в модели перевода. Помимо преобразования текста в последовательности индексов, потребуется также выполнить унитарное кодирование (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]))