Предсказание следующего символа
В этом упражнении вы напишете функцию для предсказания следующего символа на основе обученной модели. Для предсказания будут использоваться последние 20 символов. Обучение модели будет рассмотрено в следующем уроке — этот шаг является необходимой подготовкой перед ним.
Это первый шаг к созданию правил для генерации предложений, абзацев, коротких текстов и других блоков текста.
Переменные n_vocab, chars_window и словарь index_to_char уже загружены в среду. Также для вас уже созданы следующие функции:
initialize_X(): преобразует текстовый ввод в последовательность индексов нужной формы.predict_next_char(): получает следующий символ с помощью метода.predict()класса модели и словаряindex_to_char.
Это упражнение является частью курса
Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras
Инструкции к упражнению
- Определите функцию
get_next_char()и добавьте параметрыinitial_textиchars_windowбез значений по умолчанию. - Используйте функцию
initialize_X()и передайте переменнуюchar_to_index, чтобы получить вектор из нулей для предсказания. - Используйте функцию
predict_next_char(), чтобы получить предсказание, и сохраните результат в переменнуюnext_char. - Выведите предсказанный символ, применив определённую функцию к заданному
initial_text.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
def ____(model, ____, ____, char_to_index, index_to_char):
# Initialize the X vector with zeros
X = ____(initial_text, chars_window, ____)
# Get next character using the model
____ = predict_next_char(model, X, ____)
return next_char
# Define context sentence and print the generated text
initial_text = "I am not insane, "
print("Next character: {0}".format(____(model, ____, 20, char_to_index, index_to_char)))