Попередня обробка в Keras
Другий за важливістю модуль Keras — це keras.preprocessing. Ви побачите, як використовувати ключові модулі та функції, щоб підготувати сирі дані до коректної вхідної форми. Keras надає можливості, які замінюють підхід зі словником, який ви вивчили раніше.
Ви використаєте модуль keras.preprocessing.text.Tokenizer, щоб створити словник слів за допомогою методу .fit_on_texts() і перетворити тексти на числові ідентифікатори, що відповідають індексу кожного слова в словнику, за допомогою методу .texts_to_sequences().
Далі використайте функцію .pad_sequences() з keras.preprocessing.sequence, щоб зробити всі послідовності однакового розміру (це потрібно для моделі): додайте нулі до коротких текстів і обріжте довгі.
Ця вправа є частиною курсу
Recurrent Neural Networks (RNNs) для моделювання мови з 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]))