В связи с этим возникает вопрос: может ли компьютер генерировать подобные тексты самостоятельно?
Валентин Кассарниг (Valentin Kassarnig) из университета Массачусетса доказал, что такое возможно. Он опубликовал программу (репозиторий на гитхабе), которая делает именно это: генерирует политические речи, удивительно похожие на настоящие. Подробнее о генераторе политических текстов автор рассказывает в научной статье.
В разработке генератора Валентин использовал базу из почти 4000 фрагментов политических дебатов в Конгрессе США. В базу вошло более 50 000 предложений текста, в каждом из которых в среднем 23 слова. Кассарниг также классифицировал каждое выступление по политической партии (республиканцы/демократы), а также по принципу положительного/отрицательного отношения к теме обсуждения.
Впрочем, самое важное в том, как анализировать эту базу. Автор пробовал разные варианты, но в итоге остановился на N-граммах.
N-грамма — последовательность из n элементов. В данном случае, это последовательность слов и фраз.
Сначала он разметил в текстах все части речи (существительное, глагол, прилагательное и т.д.). Затем использовал следующий алгоритм: в базе ищутся все 6-граммы и вычисляется вероятность появления определённого слова или фразы, в зависимости от того, какие пять стоят перед ним. «Это позволяет нам очень быстро определить все слова, какие могут появиться после пяти известных предыдущих слов, и какова вероятность появления каждого из них», — говорит Кассарниг.
Процесс генерации текстов следует из этого алгоритма. Программе указывают политическую направленность речи: это должна быть речь республиканского или демократического кандидата. Алгоритм использует базу 6-граммов для этой категории, чтобы выбрать полный набор 5-граммов, которые используются для начала таких речей. Потом случайным образом выбирается один из этих 5-граммов, вычисляется наиболее вероятное слово, завершающее 6-грамм. Ну, а потом она начинает предсказывать слово за словом до конца текста.
Есть ещё пару трюков, конечно. Например, программа знает вероятность упоминания определённой темы в речи — и какие темы будут присутствовать рядом с этой.
Результаты на удивление хороши.
Кассарниг изучил результаты и считает, что грамотность и плавность перехода от предложения к предложению очень даже неплохие.
Так что англоязычные политики получили в свои руки инструмент, чтобы быстренько составлять речи, если вдруг нужно внезапно выступить перед аудиторией, а им нечего сказать.
Программа может также генерировать другие тексты. Например, посты для блога и новостные заметки :).
Поскольку исходный код опубликован в открытом доступе, то любые улучшения и форки поощряются.

