Предобработка данных в Keras
Второй по важности модуль Keras — это keras.preprocessing. Вы узнаете, как использовать основные модули и функции для подготовки исходных данных к нужному формату входных данных. Keras предоставляет инструменты, которые заменяют словарный подход, рассмотренный ранее.
Вы будете использовать модуль keras.preprocessing.text.Tokenizer, чтобы создать словарь слов с помощью метода .fit_on_texts(), а затем преобразовать тексты в числовые идентификаторы — индексы каждого слова в словаре — с помощью метода .texts_to_sequences().
После этого примените функцию .pad_sequences() из модуля keras.preprocessing.sequence, чтобы привести все последовательности к одинаковому размеру (это необходимо для работы модели): короткие тексты будут дополнены нулями, а длинные — обрезаны.
Это упражнение является частью курса
Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras
Инструкции к упражнению
- Импортируйте
Tokenizerиpad_sequencesиз соответствующих модулей. - Обучите объект
tokenizerна образцах данных, хранящихся вtexts. - Преобразуйте тексты в последовательности числовых индексов с помощью метода
.texts_to_sequences(). - Приведите тексты к одинаковому размеру с помощью дополнения (padding).
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Import relevant classes/functions
from tensorflow.keras.preprocessing.text import ____
from tensorflow.keras.preprocessing.sequence import ____
# Build the dictionary of indexes
tokenizer = Tokenizer()
tokenizer.fit_on_texts(____)
# Change texts into sequence of indexes
texts_numeric = tokenizer.____(texts)
print("Number of words in the sample texts: ({0}, {1})".format(len(texts_numeric[0]), len(texts_numeric[1])))
# Pad the sequences
texts_pad = ____(texts_numeric, 60)
print("Now the texts have fixed length: 60. Let's see the first one: \n{0}".format(texts_pad[0]))