Программа пишет политические речи

    Многие замечали, что речи политиков имеют довольно стандартный формат, они похожи друг на друга. Нужно несколько раз повторить основные тезисы, используя стандартные формулировки. Такое впечатление, что есть алгоритм, который задаёт структуру таких речей.

    В связи с этим возникает вопрос: может ли компьютер генерировать подобные тексты самостоятельно?

    Валентин Кассарниг (Valentin Kassarnig) из университета Массачусетса доказал, что такое возможно. Он опубликовал программу (репозиторий на гитхабе), которая делает именно это: генерирует политические речи, удивительно похожие на настоящие. Подробнее о генераторе политических текстов автор рассказывает в научной статье.

    В разработке генератора Валентин использовал базу из почти 4000 фрагментов политических дебатов в Конгрессе США. В базу вошло более 50 000 предложений текста, в каждом из которых в среднем 23 слова. Кассарниг также классифицировал каждое выступление по политической партии (республиканцы/демократы), а также по принципу положительного/отрицательного отношения к теме обсуждения.

    Впрочем, самое важное в том, как анализировать эту базу. Автор пробовал разные варианты, но в итоге остановился на N-граммах.

    N-грамма — последовательность из n элементов. В данном случае, это последовательность слов и фраз.

    Сначала он разметил в текстах все части речи (существительное, глагол, прилагательное и т.д.). Затем использовал следующий алгоритм: в базе ищутся все 6-граммы и вычисляется вероятность появления определённого слова или фразы, в зависимости от того, какие пять стоят перед ним. «Это позволяет нам очень быстро определить все слова, какие могут появиться после пяти известных предыдущих слов, и какова вероятность появления каждого из них», — говорит Кассарниг.

    Процесс генерации текстов следует из этого алгоритма. Программе указывают политическую направленность речи: это должна быть речь республиканского или демократического кандидата. Алгоритм использует базу 6-граммов для этой категории, чтобы выбрать полный набор 5-граммов, которые используются для начала таких речей. Потом случайным образом выбирается один из этих 5-граммов, вычисляется наиболее вероятное слово, завершающее 6-грамм. Ну, а потом она начинает предсказывать слово за словом до конца текста.

    Есть ещё пару трюков, конечно. Например, программа знает вероятность упоминания определённой темы в речи — и какие темы будут присутствовать рядом с этой.

    Результаты на удивление хороши.

    Пример текста (англ.)
    Mr. Speaker, for years, honest but unfortunate consumers have had the ability to plead their case to come under bankruptcy protection and have their reasonable and valid debts discharged. The way the system is supposed to work, the bankruptcy court evaluates various factors including income, assets and debt to determine what debts can be paid and how consumers can get back on their feet. Stand up for growth and opportunity. Pass this legislation.

    Кассарниг изучил результаты и считает, что грамотность и плавность перехода от предложения к предложению очень даже неплохие.

    Так что англоязычные политики получили в свои руки инструмент, чтобы быстренько составлять речи, если вдруг нужно внезапно выступить перед аудиторией, а им нечего сказать.

    Программа может также генерировать другие тексты. Например, посты для блога и новостные заметки :).

    Поскольку исходный код опубликован в открытом доступе, то любые улучшения и форки поощряются.
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 21

      +14
      Благодарю тебя, товарищ Валентин Кассарниг! Теперь ничто не сдерживает меня от пути в большую политику!
      0
      http://www.explainxkcd.com/wiki/index.php/1068:_Swiftkey и, следовательно, https://blog.swiftkey.com/swiftkey-on-xkcd/
        +7
        Я в юности делал на таком же принципе генератор легко запоминающихся паролей — загнал в него кучу английских и русских текстов с lib.ru и для каждой буквы вес рандома опирался на статистику ее встречи после предыдущих двух (N=3 в терминологии статьи)
        В итоге получались пароли типа: zingledi, actalflo, raliseed, bachumen, ficharea, metistra и т.д.

        Но идея использовать такой же принцип для слов — великолепна. Осталось дождаться кого-нибудь, кто сможет натравить на все это дело нейронную сеть и создать идеального блоггера.
          +1
          Лучше идеального политика.
            0
            Я тоже в школьные годы сделал генератор легко запоминающихся паролей, только генерировал задом наперёд, потому что в английском разных окончаний меньше, чем разных начал слова.

            А потом я прочитал о такой программе в «Жемчужинах программирования» (гл. 15.3), и там тоже было о генерации текстов из слов или фраз.
            +29
            Ничего нового:
            Универсальный код речей
              +3
              Есть и в художественном варианте — вспомните знаменитое Остапо-Бендерское Незаменимое Пособие ...
                0
                Ой, а можно полную версию мануала? Нет, правда — «расширив и углубив», можно создать такой чат-бот — блеск!
                Пожалуйста, если есть что выложить — выложите! Не обязательно по политике — интересна любая информация! Ссылки, исходники, алгоритмы…

                За синтетическим программным трепом — будущее!
                  +3
                  Действительно, и как тут не вспомнить корчеватель?
                  +22
                  Если кто-то не верил, что любого чиновника можно заменить скриптом на питоне, то вот.
                    +2
                    Пока что это только западных чиновников касается. Наши покреативнее будут. Они умудряются постоянно такие идеи выдавать, какие не то что скрипту, но даже и человеку ещё не всякому создать по силам.
                    А главное, какова эффективность! Тут как интервью с очередным чиновником, рассказывающим о новых инициативах и законопроектах, так у всего рунета подгорать начинает. Даже не представляю себе, как должен выглядеть скрипт, способный на такое.
                      +2
                      Да просто допуск по вероятности снизить и эффект не отличить:)
                      С инициативой сложнее. Придется генерить несколько текстов и оценивать программой из соседнего софта, про сарказм, и отбирать соответственно те, которые прошли едва-едва.
                    +1
                    Черномырдина все равно не сможет переплюнуть =)))
                      +1
                      Прекрасно. Раньше хоть политкорм для паствы писал (чисто по биологическим признакам) человек. Теперь корм генерирует робот, но паства будет продолжать кушать все равно, ибо буллшит синтетический оказался «идентичен натуральному» :)

                      PS ошибся уровнем коммента — предназначался исходной статье )
                      +1
                      Евгений Лукин. С нами бот.
                        0
                        У нас это было задание на неделю на втором курсе универа, а тут целая статья. Да, с русским языком всё несколько сложнее, ибо результат становится куда лучше, если слова сначала привести к начальной форме и провести замену по словарю синонимов. В противном случае база для русского языка сильно разрастается, а результат остаётся не очень вменяемым.
                          0
                          Теперь еще надо сделать программу, которая будет слушать политические речи:)
                            0
                            Евгений Лукин, Любовь Лукина, «Авария» :)
                            0
                            Ну не все политические речи такие уж сложные для воспроизведения.
                            Есть, например, такой замечательный политик как Петр Полячкин

                            Only users with full accounts can post comments. Log in, please.