Генерация предложения с контекстом
В этом упражнении вы поэкспериментируете с предварительно обученной моделью для генерации текста. Модель уже загружена в среду в переменной model, а также доступны функции initialize_params() и get_next_token().
Последняя использует предварительно обученную модель для предсказания следующего символа и возвращает три переменные: следующий символ next_char, обновлённое предложение res и сдвинутый текст seq, который будет использоваться для предсказания следующего символа.
Вам предстоит определить функцию, которая принимает предварительно обученную модель и строку — начало генерируемого предложения — в качестве входных данных. Это удобный способ генерировать текст с учётом контекста. Ограничение в 100 символов приведено в качестве примера — в своих приложениях вы можете использовать другие ограничения (или вовсе обойтись без них).
Это упражнение является частью курса
Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras
Инструкции к упражнению
- Передайте переменную
initial_textв функциюinitialize_params(). - Задайте условия для остановки цикла: когда счётчик достигнет 100 или будет найдена точка (
r'.'). - Передайте начальные значения
res,seqв функциюget_next_token(), чтобы получить следующий символ. - Выведите на экран пример фразы, сгенерированной определённой функцией.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
def generate_phrase(model, initial_text):
# Initialize variables
res, seq, counter, next_char = initialize_params(____)
# Loop until stop conditions are met
while counter < ____ ____ next_char != r'.':
# Get next char using the model and append to the sentence
next_char, res, seq = get_next_token(model, ____, ____)
# Update the counter
counter = counter + 1
return res
# Create a phrase
print(____(model, "I am not insane, "))