Вопрос слишком широкий, чтобы ответить в одном ответе, но я попытался упомянуть несколько вещей, которые будут полезны для продолжения вашего исследования в этой области.
Что такое генерация текста?
Упомянутая вами проблема в литературе в основном распознается как генерация текста .Учитывая часть текста (например, последовательность символов, слов или абзацев) для модели, модель пытается завершить оставшуюся часть текста.Чем лучше ваша модель, тем лучше будет семантически и синтаксически структура сгенерированного текста.
Само поколение текстов является типом Language Modeling проблема.Языковое моделирование является основной проблемой для многих обработчиков естественного языка (НЛП).Обученная языковая модель учитывает вероятность появления слова на основе предыдущей последовательности слов, использованных в тексте.Что это значит?Например, в предложении: A cat sits on the ...
вероятность того, что следующее слово будет mat
, больше, чем water
.Эта простая идея является основной интуицией языкового моделирования.См. главу 4 этой книги для подробного объяснения этой темы.
Различные виды языкового моделирования:
Для языкового моделирования предлагаются различные виды подхода, которые в основном подразделяются на Статистические и Нейронные языковая модель.Для сравнения этих двух подходов загляните в этот пост в блоге.
В последнее время использование нейронных сетей при разработке языковых моделей стало доминирующим способом, поскольку:
Нелинейные модели нейронных сетей решают некоторые недостатки традиционных языковых моделей: ониПозволяют создавать условия для постоянно увеличивающихся размеров контекста только с линейным увеличением числа параметров, они устраняют необходимость в ручном проектировании откатов заказов и поддерживают обобщение в различных контекстах.
Страница 109, Методы нейронной сети в обработке естественного языка, 2017.
Различные виды нейронной сети для языкового моделирования:
Aсвязка архитектуры нейронных сетей, предложенная для языкового моделирования с использованием: рекуррентной нейронной сети , нейронной сети с прямой связью , свертка нейронной сети и т. д., которые имеют свои плюсы и минусы,Согласно здесь современный эталон, достигнутый моделями RNN.
RNN называются рекуррентными, потому что они выполняют одну и ту же задачу для каждого элемента последовательности, с выходомзависит от предыдущих вычислений.Еще один способ думать о RNN - это то, что у них есть «память», которая собирает информацию о том, что было рассчитано до сих пор.Посетите здесь для получения более подробной информации о RNN.
Как реализовать RNN для генерации текста?
См. Официальный пример в Tensrflow здесь.