Откуда берёт слова
Раз в сутки сын проходит по последним сообщениям выбранного канала и складывает подходящие в свою базу. Повторы отсеиваются, старое со временем вычищается.
В базу не попадают сообщения ботов, команды, ссылки, списки и совсем короткие реплики. Заодно запоминаются картинки из чата, кроме спрятанных под спойлер и из NSFW-каналов.
Как сочиняет
Из сообщений строится цепь Маркова: для каждого слова запоминается, какие слова за ним шли в чате. Фраза собирается по цепочке: берётся начало чьего-то сообщения и дальше на каждом шаге выбирается одно из слов, которые реально встречались после текущего.
Отсюда эффект: каждый кусок фразы кто-то когда-то писал, но вместе получается новый бред. Чем больше и живее чат, тем смешнее результат.
Когда говорит
На каждое сообщение в чате у сына есть небольшой шанс ответить. Если шанс выпал, он либо пишет фразу случайной длины, либо собирает демотиватор: картинку из своей базы с подписью от говорилки. Из сочинённого текста вырезаются упоминания людей.