Подготовка текстовых данных для подачи в модель
Ранее вы научились создавать словари для преобразования индексов в слова и обратно. В этом упражнении вы разобьёте текст на символы и продолжите подготовку данных для обучения с учителем.
Разбиение текста на символы может показаться необычным, однако этот подход широко применяется для генерации текста. Процесс подготовки данных остаётся прежним — меняется лишь способ разбиения.
Вы создадите обучающие данные: список фрагментов текста фиксированной длины и соответствующих им меток — следующих символов.
Вы продолжите работать с набором данных, содержащим цитаты Шелдона из сериала «Теория большого взрыва». Данные доступны в переменной sheldon_quotes.
Функция print_examples() выводит пары данных, чтобы вы могли увидеть результат преобразования. Используйте help() для получения подробной информации.
Это упражнение является частью курса
Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras
Инструкции к упражнению
- Задайте значение
stepравным2, аchars_window— равным10. - Добавьте следующий фрагмент текста в переменную
sentences. - Добавьте нужную позицию текста
sheldonв переменнуюnext_chars. - Используйте функцию
print_examples(), чтобы вывести10фрагментов текста и следующих символов.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create lists to keep the sentences and the next character
sentences = [] # ~ Training data
next_chars = [] # ~ Training labels
# Define hyperparameters
step = ____ # ~ Step to take when reading the texts in characters
chars_window = ____ # ~ Number of characters to use to predict the next one
# Loop over the text: length `chars_window` per time with step equal to `step`
for i in range(0, len(sheldon_quotes) - chars_window, step):
sentences.____(sheldon_quotes[i:i + chars_window])
next_chars.append(sheldon_quotes[____])
# Print 10 pairs
print_examples(____, ____, 10)