Введение

Генератор бессмысленных текстов. "Диссоциативная пресса" – это генератор пародий (компьютерная программа, создающая бессмысленный текст). Генерируемый текст создается на основе другого текста с использованием метода марковских цепей. Название является пародией на "Associated Press" и психологический термин "диссоциация" (хотя бессвязная речь чаще встречается при афазии и шизофрении – которые, тем не менее, часто путают с диссоциативным расстройством идентичности у неспециалистов). Реализация алгоритма доступна в Emacs. Другая реализация доступна как модуль Perl в CPAN под названием Games::Dissociate.

Алгоритм

Алгоритм начинается с печати последовательности слов (или букв) из исходного текста. Затем он ищет в исходном тексте совпадение последних напечатанных слов или букв. Если найдено несколько совпадений, выбирается случайное из них, и печатается текст, следующий за выбранным совпадением. После того, как напечатано заранее заданное количество текста, процедура поиска повторяется для вновь напечатанного фрагмента. Поскольку слова и фразы обычно появляются в определенных грамматических контекстах, полученный текст часто выглядит грамматически корректным, а если исходный текст выдержан в едином стиле, результат кажется схожим по стилю и тематике, и читателю требуется некоторое усилие, чтобы понять, что он не является подлинным. Однако случайность процесса сборки лишает его логической связности – слабо связанные между собой части соединяются бессмысленно, создавая забавный, абстрактный и случайный результат.

История

Алгоритм диссоциированной прессы описан в HAKMEM (1972) № 176. Название "диссоциированная пресса" впервые стало известно в связи с реализацией Emacs. Брайан Хейс обсудил алгоритм травести в журнале Scientific American в ноябре 1983 года. В статье был представлен искажённый отрывок из произведения Уильяма Фолкнера:
"Когда он забрался на стол, он вошёл. Он никогда не выходил из моего кармана в качестве меры защиты компании от бунтов и кровопролития. И когда он сказал: «Вы мне говорите про билет на автобус, не говоря уже о том, чтобы составлять истории болезни. Тогда закон вернётся с ножом!» Хью Кеннер и Джозеф О’Рурк из Университета Джона Хопкинса обсудили свой генератор травести на основе таблиц частот для микрокомпьютеров в журнале BYTE в ноябре 1984 года. В статье был включён исходный код на Turbo Pascal для двух версий генератора, одна из которых использовала алгоритм Хейса, а другая – алгоритм Hellbat Клода Шеннона. Мюррей Лессер предложил скомпилированную версию на BASIC в журнале в июле 1985 года, в сентябре 1985 года Питер Уэйнер предложил версию, использующую древовидные структуры данных вместо таблиц частот, а в декабре 1985 года Нил Дж. Рубенкинг предложил версию, написанную на Turbo Pascal, которая хранила информацию о частоте в B-дереве.