Управляй смыслом с помощью умной обработки текста. Графовый Грааль - сервис анализа социальных сетей для бизнеса

Сообщение об ошибке

  • User warning: The following module is missing from the file system: captcha. For information about how to fix this, see the documentation page. in _drupal_trigger_error_with_delayed_logging() (line 1143 of D:\home\site\wwwroot\includes\bootstrap.inc).
  • User warning: The following module is missing from the file system: image_captcha. For information about how to fix this, see the documentation page. in _drupal_trigger_error_with_delayed_logging() (line 1143 of D:\home\site\wwwroot\includes\bootstrap.inc).
  • Notice: Undefined offset: 1 в функции user_node_load() (строка 3697 в файле D:\home\site\wwwroot\modules\user\user.module).
  • Notice: Trying to get property of non-object в функции user_node_load() (строка 3697 в файле D:\home\site\wwwroot\modules\user\user.module).
  • Notice: Undefined offset: 1 в функции user_node_load() (строка 3698 в файле D:\home\site\wwwroot\modules\user\user.module).
  • Notice: Trying to get property of non-object в функции user_node_load() (строка 3698 в файле D:\home\site\wwwroot\modules\user\user.module).
  • Notice: Undefined offset: 1 в функции user_node_load() (строка 3699 в файле D:\home\site\wwwroot\modules\user\user.module).
  • Notice: Trying to get property of non-object в функции user_node_load() (строка 3699 в файле D:\home\site\wwwroot\modules\user\user.module).
user_picture

Автор: Anonymous

Анализ популярности украинских кандидатов в президенты

UPD июль 2014. Мы подготовили новую статью с более репрезентативными данными.
В статье есть интерактивные графы, вы можете просматривать атрибуты узлов и "зумить" граф.

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

  • обработка естественного языка,
  • анализ социальных сетей и теория графов

Комментарии собирались с помощью поиска по ключевым словам, которыми являются фамилии и прозвища кандидатов в президенты. Сбор велся с ограничением по географии: только в украинских блогах: в самих блогах и в комментариях из блогов. Период сбора данных: с 1 апреля 2014 по 24 мая 2014 (официальный период предвыборной кампании кандидатов в президенты). За все время было собрано 37650 постов с упоминанием кандидатов, которые написали 2268 авторов. Список источников также довольно широк: в него входят такие известные платформы как Livejournal.com, Vkontakte.ru, Liveinternet и в меньшей степени Facebook и Twitter.

Первый этап: получение данных по ключевым словам.

Перед исследованием мы сформулировали две гипотезы, два ключевых вопроса, на которые было интересно получить ответы: 1. Можно ли хотя бы приблизительно предсказывать результаты выборов, собирая и анализируя результаты упоминаний кандидатов в социальных сетях?

2. Можно ли выявить топовых блогеров, которые влияют на общество, и, если, да, то каких кандидатов они обсуждают преимущественно? Ниже представлен фрагмент программного кода парсинга данных на языке Python. Программа структурирует полученную информацию и сохраняет следующие поля:

 

  1. Заголовок комментария
  2. Ссылка на комментарий
  3. Текст комментария
  4. Автор комментария
  5. Блог, где размещен комментарий
  6. Дата публикации комментария
  7. Дата сохранения комментария в системе (базе данных)
        for site in set(sites):
            item = UkrPresidentItem()
            item['comment_text'] = unicode(" ".join(site.xpath('div/div/div').extract()))
            if u'Добкин' or u'Добкін' or u'Допу' or u'Допа' in item['comment_text']:
                item['Target'] = unicode('Dobkin')
                item['Label'] = unicode(" ".join(site.xpath('h3/a').extract()))  #comment_title
                item['Source'] = (" ".join(site.xpath('ul/li[2]/a/@href').extract())).split(" ", 1)[0] #comment_author
                item['Type'] = "Directed"
                item['Weight'] = "1"
                item['comment_blog'] = " ".join(site.xpath('ul/li[3]/text()').extract())
                item['comment_url'] = " ".join(site.xpath('h3/a/@href').extract()) #h3/a/@href
                item['comment_dateposted'] = " ".join(site.xpath('ul/li/text()').extract()) 
                item['comment_datesaved'] = datetime.now(tz=None)
                items.append(item)

Для формирования графа в программном коде используются служебные поля:

  1. Label – подпись к узлу
  2. Source – «источник», автор комментария
  3. Target – «цель», кандидат, которого упомянул в тексте автор комментария
  4. Weight – вес ребра
  5. Type – тип графа, значение Directed делает граф ориентированным

Данные сохраняются в no-SQL базу данных MongoDB. Результат можно просматривать в специальной программе Robomongo:

Второй этап: анализ графа.

Анализируя популярность кандидатов в блогосфере стоит рассмотреть 4 визуализации одного и того же графа, отражающих структурные особенности сетевых взаимодействий пользователей:

  1. Взвешенный граф популярности кандидатов
  2. Взвешенный граф активности комментаторов и блогеров
  3. Распределенный граф популярности кандидатов
  4. Распределенный граф активности комментаторов и блогеров

Рассмотрим сначала сводный взвешенный граф популярности кандидатов. В результате обработки постов и комментариев видно, что представленность кандидатов в блогосфере распределена следующим образом: абсолютным лидером по числу упоминаний является Тимошенко. Следующими топовыми кандидатами являются Порошенко и Ярош.

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

При этом Порошенко, которому социологические опросы предсказывали победу на президентских выборах был не очень популярен в блогосфере в первые 2 недели предвыборной кампании. Возможная причина заключается в том, что Порошенко не делал громких заявлений в масс-медиа и не приходил на топовые политические ток-шоу, такие как Шустер-LIVE и «Свобода слова». Однако он смог набрать вес и по итогам двух месяцев вышел на второе место.

Посмотреть граф в интерактивном интерфейсе

Полная картина лидеров упоминаний выглядит следующим образом:

 

Итак, теперь у нас достаточно данных, чтобы подтвердить первую гипотезу, а именно: исследование в целом позволяет предсказать исход предвыборной президентской кампании на Украине.

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

Рассмотрим теперь взвешенный граф активности комментаторов: размер и цвет узлов указывает на количество постов и комментариев с упоминанием того или иного кандидата, которые данный пользователь оставил. Чем больше и краснее узел (кружок), тем чаще данный автор упоминал кандидатов, стрелки от узла указывают, кого именно он упоминал.

Еще одно важное наблюдение: на графе визуально можно выделить кластеры авторов, которые обсуждают одних и тех же кандидатов. Первый большой кластер включает в себя Тимошенко и Порошенко. Голубые узлы авторов, которые находятся близко вокруг узлов кандидатов это те блогеры, которые в своих публикациях упоминают преимущественно только этих двух кандидатов. Данный факт можно интерпретировать как то, что эти авторы схожи в некоторой степени в своих политических предпочтениях. А вот Ляшко и Царев находятся в противоположных "углах" графа - их электорат не пересекается совсем. Итак, кластеры помогают оценить схожесть, пересечение интересов аудитории, или наоборот, идентифицируют группы людей, которые имеют противоположные взгляды.

Посмотреть граф в интерактивном интерфейсе

На графе активности комментаторов и блогеров можно выделить лишь нескольких лидеров, которые пишут много и часто:

  1. http://www.v-n-zb.livejournal.com/
  2. http://www.mikle1.livejournal.com/
  3. http://www.andriy-lopata.livejournal.com/

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

Примечание: мы удалили из топа узел ua-lj.livejournal.com так как весь блог автора заполнен постами с ФИО различных людей и, таким образом, не несет полезной информации. В интерактивном интерфейсе можно подробнее посмотреть статистику распределения упоминаний кандидатов по каждому автору. Например, топовый блогер http://www.v-n-zb.livejournal.com/ 211 раз упоминал Тимошенко, всего же за весь период различных кандидатов он упомянул 639 раз.

 

На примере Тимошенко рассмотрим параметры узлов. Справа в информационной панели отображаются служебные данные по узлу, в том числе параметр Взвешенная входящая степень 7325 указывает, что фамилия «Тимошенко» встречалась в комментариях и постах 7325 раз (перепосты и цитирования учитываются). Ниже расположен список авторов, которые упоминали Тимошенко, а также количество упоминаний в скобках для каждого пользователя. Например, пользователь v-n-zb.livejournal.com за все время сбора данных упомянул Тимошенко 211 раз (о чем выше уже сказано), а щелкнув по имени автора можно снова перейти к просмотру его параметров.

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

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

Посмотреть граф в интерактивном интерфейсе

Чем более равномерно и полно охватывает автор в своих постах кандидатов, тем больше его узел на данном графе. Стоит отметить, что авторы-лидеры по упоминаниям на этом графе совсем другие, чем на графе активности блогеров выше. На этом графе узел автора, который упомянул 10 кандидатов в своих публикациях будет по размеру в 2 раз больше, чем другой автор, который упомянул только 5 кандидатов. При этом по абсолютному количеству второй автор может быть впереди, и, таким образом, данная характеристика показывает кругозор того или иного автора, спектр его политических интересов. Например, блогер carabaas.livejournal.com по абсолютному числу упоминаний находится на 23м месте с 108, но по охвату он в топе. Эту информацию можно использовать с тем, чтобы эффективно и точно выделять тех блогеров, на которых можно влиять с целью распространять нужные мнения по сети. Итак, теперь мы можем подтвердить и вторую гипотезу: выявлять топовых блогеров, которые влияют на общество можно, и, более того, можно определять каких кандидатов они обсуждают преимущественно, каков спектр их охвата.

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

Icon tags