Обработка естественного языка

Президентские дебаты. Нужно ли нам наблюдать за ними, чтобы получать информацию?

Анализ демократических президентских дебатов 2020 года с помощью обработки естественного языка

Раньше я никогда не уделял много времени просмотру партийных дебатов о кандидатах в президенты, я обычно ждал президентских дебатов. Хотя в этом году решил настроиться и понаблюдать. Я становился все более разочарованным после каждой дискуссии, потому что кандидаты почти не отвечали на вопросы! Я заметил несколько вещей - кандидаты сосредоточились на своем прошлом, своей позиции по некоторым темам и нападали на других кандидатов, а затем иногда они отвечали на заданный вопрос. Я перестал смотреть остальные дебаты, потому что борьба усилилась и не было похоже, что на какие-либо вопросы были даны ответы. Если они не отвечают на вопросы, тогда зачем смотреть? Ответ на вопрос, а не требование ?? Не знаю - согласно вики-дискуссии:

[W] Здесь кандидаты раскрывают свои политические взгляды и предложения по государственной политике, а также критикуют их потенциальным избирателям.

Вики поясняет, что модератор задает вопрос, на который «должен быть дан ответ» одному или всем кандидатам… Вот и все! Нет реальных требований или баллов по поводу того, был ли дан ответ на вопрос или нет. Кстати, мне было бы интересно увидеть дебаты, в которых, если правила не соблюдались (включая ответ на заданный вопрос), кандидат был отклонен.

Конечно, я должен смотреть, чтобы получить столь необходимую информацию для принятия обоснованного решения. Но это заставило меня задуматься - поскольку кандидаты имеют тенденцию не отвечать на поставленный вопрос полностью, а стараются поделиться своей позицией по темам, которые для них важны. Какие темы (или повестку дня) они пытаются затронуть? Среди этих тем - какое сообщение они пытаются донести? Наконец, учитывая мое разочарование от наблюдения за этими дебатами и отсутствия ответов, могу ли я получить эту информацию, ДЕЙСТВИТЕЛЬНО не наблюдая за дебатами? Если я не хочу их смотреть, где я могу получить информацию? Facebook? Твиттер? Нету НЛП.

Используя обработку естественного языка, я попытался уловить некоторые из этих выводов из дискуссии.

  • Какие темы были затронуты кандидатами и их мнение по этим темам?
  • Что было общего между кандидатами?
  • Какие чувства или эмоции были почерпнуты из ответов кандидата?

Данные

Использованные данные были стенограммами первых шести демократических дебатов 2019 года (июль - декабрь). Информация о данных ниже.

дата: дата обсуждения
место: место обсуждения
дебаты: порядковый номер обсуждения ( первые 2 обсуждения проходили в течение 2 дней)
выступающие: выступающий
диалог: диалог выступающего. Это непрерывный ответ или диалог говорящего. Это будет одна группа предложений или слов, как показано в расшифровке.
word_count: количество слов в диалоге
кандидата: двоичный, если докладчик был кандидатом,
отозван: двоичный, если кандидат отозвал / приостановил свою кампанию по состоянию на 31.12.2019.
avg_word_length : avg длина слов в диалоге

Ниже представлен конвейер, созданный для определения тем, а также для определения сходства кандидатов и построения графика. Для его конвейера использовался spaCy, для моделирования тем и встраивания слов - Gensim, а для уменьшения размерности - научное обучение. В это обсуждение не будет включаться много кода, однако я пройдусь по этому конвейеру и предоставлю некоторые высокоуровневые объяснения некоторых методов, которые использовались в анализе.

Предварительная обработка текста

Текст каждого фрагмента диалога был предварительно обработан только для кандидатов. Вопросы модератора были сброшены. Идея заключалась в том, чтобы определить темы кандидатами, поскольку они не всегда отвечают на заданный вопрос. Каждый ответ / диалог был лемматизирован, были удалены стоп-слова, токенизированы, и были записаны n-граммы.

Лемматизация и удаление стоп-слов
Лемматизация пытается определить предполагаемую часть речевого значения слова в предложении в контексте предложения или документа. Результатом является удаление флективных окончаний и возврат базовой или «словарной формы» слова (лемма). «Бег» становится «бегом».

Токенизация
Токенизация слов - это разбиение строки или документа на список слов или токенов. Токенизатор spaCy использовался для создания токенов в конвейере spaCy. Полученные токены затем использовались для словаря gensim.

n-граммы
Распространенным методом сохранения некоторой концепции порядка слов в тексте является использование нескольких последовательных слов длиной n (n-грамм). Идея состоит в том, что соседние слова, которые встречаются вместе, дают другое значение, чем любое из них само по себе, например, «Изменение климата» по сравнению с двумя словами «Климат» и «Изменение». Gensim's Phrases & Phraser были использованы для создания n-граммов длиной от 2 до 6. Формула, лежащая в основе модели, оценивает вхождение любых двух слов, встречающихся вместе, пример показан ниже.

Итак… о чем они говорили?
Теперь, когда у нас остались токенизированные слова и фразы кандидата, мы можем использовать gensim, чтобы выяснить, какие темы охватывают эти кандидаты. В частности, мы будем использовать скрытое распределение Дирихле (LDA), популярный метод моделирования тем, который находит похожие слова или темы в документах и ​​группирует документы вместе в соответствии с темой. Более подробно о LDA можно прочитать здесь.

Спойлер, я не специалист по дебатам. Кажется, что модераторы приходят со списком вопросов, охватывающих заранее определенные темы, но наблюдали ли вы когда-нибудь дискуссию, где модератор задает конкретный вопрос, а кандидат перенаправляет, говоря что-то вроде «Спасибо за вопрос, я думаю, что американец люди действительно хотят знать, что это ... ', а вопрос даже не получил ответа или ответа? Обычно кандидат ссылается на то, что он уже сказал, или на один из уже рассмотренных или предложенных планов. Итак, какие темы на самом деле охватывают кандидаты? Агентству LDA был дан диалог с кандидатом, а не вопросы или диалог от модераторов.

Проще говоря, модель находит некоторые естественные группы предметов (тем). Слова связаны с темами в зависимости от того, насколько хорошо это слово попадает в эту тему, а затем связываются темы с документами на основе того, каких тем затрагивает каждый документ.

Модель определила пять всеобъемлющих тем в форме группы слов, которые охватили кандидаты. Эти группы слов, топ-15 слов по теме и моя их интерпретация приведены ниже. Темы имеют цветовую кодировку, чтобы лучше идентифицировать темы, к которым эти слова относятся в исходном диалоге.

Интересной находкой здесь является то, что многие темы и ключевые слова могут пересекаться с некоторыми общими темами, которые мы, возможно, уже определили. Например, «Экономика» является такой широкой темой и может включать внешнюю политику в том, что касается торговли, оплаты труда рабочих, рабочих мест, стоимости образования, стоимости здравоохранения и т. Д. Учитывая, что LDA не назначает название темы, только впечатляющие слова, я просмотрел эти темы и разработал следующие названия тем.

Тема 0 | Неравенство богатства, образование
Эта тема, кажется, сосредоточена на разнице в оплате труда учителей, налогах на богатых, всеобщем образовании, задолженности по студенческим ссудам и HBCU.

Тема 1 | Внешняя политика, изменение климата, вооруженные силы

Тема 2 | Дональд Трамп, личные вопросы, намерения кандидата, демократия
Эта тема была очень широкой с точки зрения конкретных областей, хотя, что интересно, во всем была общая тема. Эта тема была посвящена личным / индивидуальным увлечениям, политике или фокусу, который кандидат хочет выделить в себе, и тому, как этот фокус поможет им победить на президентских выборах Дональда Трампа. Эти темы включали законодательство о контроле над огнестрельным оружием, права женщин, иммиграцию, рассказ об одном из участников избирательной кампании и многое другое.

Тема 3 | Торговля, Технологии, Международные отношения / Политика / Люди
Что касается торговли, эта тема в значительной степени была посвящена торговле и политике в отношении Китая. С технологической точки зрения эта тема была посвящена большим данным, искусственному интеллекту и тому, как технологии связаны с рынком труда и экономикой.

Тема 4 | Здравоохранение, фармацевтические компании, страховые компании

LDA Insights

Включая ключевые слова, принадлежащие теме, модель также возвращает наиболее доминирующую тему в ответе и общий процентный вклад этой темы в этот ответ. Он рассчитывается по количеству ключевых слов в теме и общему количеству слов в этом ответе. Взгляните на результат в кадре данных ниже.

Графики выше показывают, что тема 2, или «личные проблемы», была самой доминирующей темой среди ответов в целом. В этом есть смысл, если кандидаты сосредоточены на том, чтобы отличаться от других.

Сделайте это лучше: эта модель была создана с использованием всех ответов, полученных от всех кандидатов, чтобы понять, какие общие темы были затронуты дебатами. Однако это можно улучшить, потому что (я полагаю) кандидаты не собираются вместе, чтобы выработать стратегию тем, которые они будут рассматривать в качестве группы перед дебатами, они выбираются модераторами или организаторами. У кандидатов, скорее всего, будут разные темы или повестки дня, которые они выберут в зависимости от своей стратегии. Я думаю, это подчеркивается тем фактом, что тема «личные вопросы» включает такое разнообразие тем, к которым обращаются не все кандидаты, такие как контроль над огнестрельным оружием, иммиграция и права женщин, и является темой большинства для каждого кандидата. Чтобы получить более конкретную группу тем по кандидатам, аналогичная модель может быть разработана для каждого кандидата индивидуально, чтобы определить темы, которые они затрагивают в дебатах.

Можем ли мы проанализировать весь диалог кандидата и определить его мысли по теме?
После фильтрации по кандидату и теме с последующей сортировкой по вкладу в эту тему. Мы можем легко просмотреть самые популярные ответы на определенную тему и кандидата. Это может дать хорошее представление о точке зрения кандидата на эту тему. Взгляните на ответ Джея Инсли, который является основным вкладом Джея Инсли по теме 1, изменение климата / внешняя политика. Из аннотации ниже мы можем получить представление о мыслях Инсли об изменении климата, о том, насколько важна для него эта тема, и о его подходе.

Давайте возьмем это для тестового прогона. The New York Times опубликовала статью об Эми Клобучар, в которой резюмировала, «кто она такая» и какие проблемы с ее подписью. Некоторые пункты из того, что я прочитал в статье, и ссылки в статье приведены ниже. Можно ли получить аналогичное резюме, просмотрев самые популярные ответы по каждой теме?

Ниже приведены несколько наиболее популярных ответов Эми Клобучар по каждой теме.

Приведенные выше выдержки касаются многих моментов, которые резюмируются в статье NYT. В том числе то, что она со Среднего Запада, мысли о снижении стоимости лекарств, сохранении частной страховки с опцией государственного, пересмотре / возобновлении международных отношений, выплате учителям и многом другом. С нетехнической точки зрения, сравнивая эту статью NYT и ответы на самые популярные вопросы по темам, мы можем получить хорошее представление о важных для кандидата вопросах / темах.

Насколько похожи кандидаты?

Благодаря этому анализу я обнаружил, что есть много способов ответить на этот вопрос. Например, схожесть распределения их тем выше, схожесть смысла их слов, частота употребления слов, если это частота - это строго наиболее частое или логарифмическое отношение шансов между кандидатами? Я посмотрел на несколько из них.

Кандидаты на кластеризацию
t-распределенное стохастическое соседнее встраивание (t-SNE) - это метод уменьшения размерности, который проецирует данные в низкоразмерное пространство таким образом, чтобы сохранялась кластеризация в многомерном пространстве.

Данные были обработаны, чтобы показать распределение тем, распределение доминирующих тем по всему диалогу (или ответам), затем размеры были уменьшены до 2, в результате получился фрейм данных, который можно построить. Мы можем визуализировать кластеры кандидатов друг с другом на основе общего распределения тем для всех их ответов. Какие кандидаты говорили на похожие темы?

Какие кандидаты в целом говорили на похожие темы?

Как читать график t-SNE: оси x и y не имеют важной информации, релевантная информация находится в относительных расстояниях между точками. t-SNE захватывает структуры с идеей, что соседние точки во входном пространстве будут иметь тенденцию быть соседями в низкоразмерном пространстве.

Если точки разделены во входном пространстве, в данном случае - совершенно другое распределение тем, t-SNE хотела бы разделить их в низкоразмерном пространстве. Но необязательно фиксировать, насколько они разделены, только то, что они разделены.

Что это обозначает? Мы можем видеть, что Байден и Делейни находятся рядом друг с другом на сюжете, и их распределение тем очень похоже, как показано в прилагаемой таблице. Если мы предположим, что кандидат с ограниченным эфирным временем говорит на темы, которые для него наиболее важны, мы сможем получить довольно хорошее представление о том, какие кандидаты имеют аналогичную важность темы.

Было бы интересно увидеть распределение модераторов по темам и определить, какие кандидаты наиболее далеки от этого распределения.

Кластеризация по использованным словам

Кластеризация кандидатов на основе распределения по темам не дает большого количества информации. Мы видим несколько групп кандидатов, у которых были общие черты в обсуждаемых темах. Но как насчет сходства мыслей по этим темам? Мы рассмотрим слова и их встраивание.

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

Doc2Vec - это неконтролируемый алгоритм для генерации векторов для предложений / абзацев / документов, подобных вектору слова. Подробнее о Doc2Vec можно прочитать здесь. Концепция Doc2Vec заключается в том, что предсказание соседних слов для данного слова в значительной степени зависит от окружающих слов и документа (в данном случае, всех возможных ответов по данной теме). Векторы этих слов и / или документов (кандидатов) можно измерить и получить оценку сходства.

Существует две разные модели Doc2Vec: модель векторов абзацев с распределенной памятью (PV-DM) и версия вектора абзацев с распределенным набором слов (PV-DBOW). Модель PV-DM предсказывает одно слово из окружающих входных данных встраивания слов, а модель PV-DBOW предсказывает несколько слов из одного входа. Были использованы обе модели, и полученные вложения объединены вместе, см. Пример ниже.

Замечательно то, что теперь мы можем посмотреть на сходство между векторами-кандидатами и сходство между векторами-кандидатами и векторами слов. Давайте посмотрим, какие слова тесно связаны с кандидатом. Ниже каждый вектор документа (кандидата) из модели DBOW сравнивается со всеми векторами слов в модели и перечисляет 10 лучших векторов для каждого кандидата.

Насколько похожи были кандидаты по определенной теме?

Наконец, мы можем визуализировать этот вопрос, отфильтровав по теме и кандидату и используя Doc2Vec. Затем мы можем использовать t-SNE для результирующих векторов и построить график каждого кандидата.

Тема 0 | Неравенство в достатке, образование

Тема 1 | Внешняя политика, изменение климата, вооруженные силы

Тема 2 | Дональд Трамп, личные вопросы, намерения кандидата, демократия

Тема 3 | Торговля, технологии, международные отношения / политика / люди

Тема 4 | Здравоохранение, фармацевтические компании, страховые компании

Мы не ограничены только визуализацией этих встраиваний, модель может дать нам сходство между двумя векторами-кандидатами для конкретной темы. Мы можем количественно оценить и визуализировать, насколько похожи кандидаты в целом и по темам.

Сделайте это лучше: другие сходства и визуализации могут быть выполнены с помощью частот слов и логарифмических соотношений шансов.

Анализ настроений

Наблюдая за этими дебатами, кажется, что эмоции играют большую роль в дополнение к сказанному. Какие кандидаты использовали эмоциональный язык, чтобы вызвать эмоциональный отклик у аудитории? Насколько уверен был кандидат? Если кандидат проявил счастье, удивление, отвращение, страх или другие эмоции, может ли это также повлиять на решение о том, за кого вы можете голосовать? Я так думаю. Имея это в виду, я решил включить анализ настроений, интерпретацию и классификацию эмоций при анализе дебатов. Я использовал разные подходы при анализе настроений и взглянул на тон, положительные, отрицательные и другие эмоции, см. Пример ниже.

Эмоции можно считать отрицательными, если кандидаты объясняют свои мысли или политику, например, реакцию Эндрю Янга на экономику при президенте Трампе:

Сегодня в Америке ВВП и прибыль корпораций находятся на рекордно высоком уровне. Также на рекордных максимумах? Депрессия, финансовая незащищенность, задолженность по студенческим займам. Даже самоубийства и передозировки наркотиков. Стало настолько плохо, что наша ожидаемая продолжительность жизни в стране за последние три года снизилась, потому что впервые в истории Америки число самоубийств и передозировок наркотиков превысило количество смертей от транспортных средств. - Эндрю Ян

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

Используя анализ настроений, мы можем ответить еще на несколько вопросов.

Становились ли дебаты более негативными со временем?

Так действительно казалось, наблюдая за дебатами. Однако, судя по данным, в целом дебаты были положительными, хотя и были некоторые различия. Кажется, что каждая дискуссия начиналась положительно, затем имела тенденцию к отрицательному, прежде чем возобновилась. Эта восходящая тенденция может быть связана с несколькими факторами, сглаживание этой кривой пересекает дебаты, увеличивая позитивное настроение с начала следующих дебатов. Модераторы также часто задают очень положительный вопрос в конце дебатов, например: «… мы хотели бы, чтобы вы рассказали нам о вашей дружбе, которая удивит нас, и о том, какое влияние она оказала на вас и ваши убеждения ».. Окончание дебатов - это также момент для заключительных заявлений каждого кандидата, которые также в большинстве своем носят позитивный характер.

Вот распределение положительных / отрицательных настроений и в высшей степени субъективно по дебатам. Нейтральные индикаторы убраны. В течение первых шести дебатов было получено около 140 таких ответов, что составляет 1,4% от общего числа ответов. Для сравнения, 22% всех ответов кандидатов в течение первых шести дебатов были отрицательными (независимо от субъективности) и 38% были положительными.

Какие кандидаты были наиболее положительными / отрицательными?

Какой кандидат был наиболее уверенным?

Джо Байден был самым уверенным: 31% его ответов были определены как уверенные. Мы можем увидеть, как другие тона проявились в исполнении Джо в дебатах ниже.

Подведение итогов дебатов

Я думаю, что с учетом того, как машинное обучение, в частности НЛП, развивает анализ, подобный этому, можно было бы извлечь значимые данные из дебатов. Мы смогли ответить на довольно много вопросов о кандидатах и ​​дебатах. В идеале размещение этой информации на информационной панели было бы весьма полезным для получения сводной информации о конкретных дебатах или кандидате, включая мысли по темам, эмоциональное состояние и многое другое, без необходимости наблюдать за многими неответами или негативными моментами в дебатах. .

Ниже я создал очень грубый макет кандидата. Какую информацию вы бы добавили в этот тип приборной панели? Было бы полезно сравнить кандидатов и извлечь значимую информацию, чтобы вы могли принять обоснованное решение?

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

Идеи по улучшению этого анализа

Есть некоторые области, в которых нужно улучшить и получить дополнительную информацию с помощью этих стенограмм и ответить на дополнительные вопросы с помощью различных методов обработки естественного языка. Например, я предполагаю, что кандидаты постоянно корректируют свою стратегию во время сезона дебатов. Если, например, у кандидата схожие взгляды / позиции по вопросам, чем у другого кандидата, как показано на наших графиках, работают ли они, чтобы дистанцироваться? Было бы интересно посмотреть, как сходство между кандидатами изменится по мере продолжения сезона дебатов.

Хотя есть еще много факторов, способствующих успешному выдвижению кандидатуры от партии, объединение этих данных с результатами первичных демократических выборов по округам или штатам, чтобы, возможно, пролить свет на то, какие темы были наиболее важными. Имеет ли значение «дистанцирование» или отличие от другого кандидата?

Как менялось распределение тем в ходе дебатов? Какой процент утверждений был подтвержден как истинные / ложные? На какой процент вопросов фактически ответил кандидат? Какие геополитические образования / лица / организации / политики больше всего упоминались конкретным кандидатом?

На какие дополнительные вопросы вы хотели бы ответить или изучить стенограммы дебатов?

Если есть интерес, я могу опубликовать код и более подробно остановиться на описанных выше методах, предоставить исследовательский анализ данных и опубликовать репозиторий GitHub для этого проекта.