Підготовка вихідного тексту
У цій вправі ви підготуєте вихідні тексти для використання в моделі перекладу. Окрім перетворення тексту на послідовності індексів, потрібно також застосувати one-hot кодування до кожного індекса.
Англійські тексти завантажено у змінну en_sentences, навчений tokenizer — у змінну output_tokenizer, а розмір англійського словника — у en_vocab_size.
Крім того, уже створено функцію для перших кроків перетворення вихідної мови (перетворення текстів у послідовності індексів). Функцію завантажено в середовище як transform_text_to_sequences(); вона має два параметри: sentences, куди очікується список речень англійською, і tokenizer, куди очікується навчений об'єкт Tokenizer з модуля keras.preprocessing.text.
numpy завантажено як np.
Ця вправа є частиною курсу
Recurrent Neural Networks (RNNs) для моделювання мови з Keras
Інструкції до вправи
- Передайте змінні
en_sentencesіoutput_tokenizerдо функціїtransform_text_to_sequences(), щоб ініціалізувати зміннуY. - Використайте функцію
to_categorical(), щоб застосувати one-hot кодування до речень. Використайте змінну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]))