Подготовка входного текста
В видео вы видели, как подготавливать входные и выходные тексты. Цель этого упражнения — показать распространённую практику: использовать максимальную длину предложений для дополнения (паддинга) всех остальных. Это позволяет не терять никакую информацию.
Поскольку модели RNN требуют, чтобы все входные данные имели одинаковый размер, паддинг — удобный способ выровнять все предложения: более короткие дополняются нулями, а более длинные остаются без изменений.
Кроме того, вместо отдельных символов вы будете использовать слова в качестве токенов — это стандартный подход для моделей NMT.
Португальские тексты загружены в переменную pt_sentences, а обученный токенизатор — в переменную input_tokenizer.
Это упражнение является частью курса
Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras
Инструкции к упражнению
- Примените метод
.split()к каждому предложению, чтобы разбить его по пробелам и определить количество слов. - Используйте метод
.texts_to_sequences(), чтобы преобразовать текст в последовательность индексов. - Примените полученную максимальную длину предложений для их дополнения (паддинга).
- Выведите первое преобразованное предложение.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Get maximum length of the sentences
pt_length = max([len(sentence.____) for sentence in pt_sentences])
# Transform text to sequence of numerical indexes
X = input_tokenizer.____(pt_sentences)
# Pad the sequences
X = pad_sequences(X, maxlen=____, padding='post')
# Print first sentence
print(pt_sentences[0])
# Print transformed sentence
print(____)