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

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