Методы анализа и обработки данных из социальных сетей

МЕТОДЫ АНАЛИЗА И ОБРАБОТКИ ДАННЫХ ИЗ СОЦИАЛЬНЫХ СЕТЕЙ

Т. В. Батура, Ф.А. Мурзин, A.B. Проскуряков, Д. О. Сперанский*

Институт систем информатики им. А. П. Ершова СО РАН, 630090, Новосибирск, Россия * Новосибирский национальный исследовательский государственный университет,

630090, Новосибирск, Россия

УДК 519.68; 681.513.7; 316.472.45; 007.51/52

Статья посвящена проблемам анализа и обработки данных, получаемых из социальных сетей. Были изучены некоторые формальные характеристики социальных сетей, введены соответствующие понятия, модели и методы, которые могут быть полезны для анализа информации, получаемой из социальных сетей. Для анализа межличностных отношений предлагается использовать так называемый анализ предпочтений. Предложены различные модификации динамической теории Латане социального влияния применительно к рассматриваемым задачам. В работе также предложено обобщение алгоритма реферирования новостных и обзорных статей с использованием Link Grammar Parser. Рассмотрена возможность применения этого алгоритма для оценки релевантности сообщений, оставляемых в социальных сетях, статьям, публикуемым в Интернете. Данный подход является полезным при решении задачи определения источника распространения информации. В статье кратко описан разработанный программный комплекс, позволяющий извлекать информацию из социальных сетей, проводить обработку, анализ и визуализацию данных.

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

This work focuses on the data processing and analysis of online social networking services. We examine several formal definitions of various characteristics (numerical and structural) and introduce appropriate concepts, models and methods that could be useful for the analysis of information obtained from social networks. Preference analysis is proposed for the study of interpersonal relations. Various modifications of Latane's dynamic theory of social impact are proposed. The generalization of the summarization algorithm of news articles and reviews using the Link Grammar Parser proposed in article. We have considered the possibility of applying this algorithm to assess the relevance of posts to the articles published on the Internet. This approach is useful in solving the problem of determining the source of information dissemination. The paper briefly describes a software system developed by us allowing to carry out extracting, processing, analyzing and visualizing data from online social networking services.

Key words: social networks analysis, data mining, Latane's social impact theory, interpersonal relationships, source of information dissemination.

Введение. Современный мир теперь уже сложно представить без социальных сетей.

Они являются удобным средством общения между людьми, кроме того, открывают новые

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

В статье предложены различные количественные характеристики, графы и множества, которые могут быть вычислены или построены на основе информации, полученной из социальных сетей. Для анализа межличностных отношений предлагается использовать так называемый анализ предпочтений [3, 4], Авторами была предпринята попытка адаптировать динамическую теорию Латане социального влияния [5, 6] к социальным сетям, что позволяет вычислять уровень влияния окружающих людей на мнение конкретного человека.

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

Пятый раздел посвящен анализу непосредственно текстовых сообщений, В Интернете существует довольно большое количество новостных и обзорных статей. Естественно предположить, что в некоторых случаях они являются источниками информации, обсуждаемой на форумах и в социальных сетях. Поэтому представляет интерес задача оценки релевантности текста статей сообщениям, оставляемым пользователями. За основу взят алгоритм реферирования статей, описанный в работе [7], Предложено обобщение этого алгоритма, и рассмотрена возможность его применения для определения релевантности. Для проведения экспериментов в рамках данного исследования был создан программный комплекс для извлечения, обработки и анализа пользовательских данных, В частности, в системе имеется модуль, позволяющий извлекать данные из крупнейших социальных сетей (Twitter, Faeebook, „ВКонтакте"), Кроме того, этот модуль имеет возможность функционального расширения практически на любую социальную сеть в зависимости от предоставляемого API,

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

Обозначим T — сообщение (,,твит") социальной сети, u — пользователя сети, который может создавать и пересылать сообщения. Одноместные характеристики:

Followers_Count(u) — количество людей, которые читают сообщения данного пользователя (т.е. подписчиков этого пользователя);

Friends^Count (u) — количество друзей у данного пользователя (пользователь сам заносит некоторых людей в список друзей);

Retweets (T) — количество пересылок данного сообщения. Множества:

Followers (u) — подписчики данного пользователя; Friends (u) — друзья данного пользователя;

Mentions (u) — имена пользователей, упоминаемые в сообщениях данного пользователя;

Hashtags (u) — хэштеги, которые встречаются в сообщениях данного пользователя;

Urls (u) — внешние ссылки, которые встречаются в сообщениях данного пользователя,

Хэштег — это слово или набор слов, записанных без пробелов, начинающихся с символа „#". Является одной из форм метаданных. Короткие сообщения в блогах или социальных сетях типа Faeebook, Twitter или Instagram могут быть помечены символом перед ключевыми словами или фразами, не содержащими пробелов. Они встречаются в любых предложениях, например: „Ах, как жалко, что закончилась ^Юлимпиада2014! " Хэштеги позволяют группировать похожие сообщения. По заданному хэштегу можно найти набор сообщений, содержащих его.

Числовые характеристики, ассоциированные с множествами:

Count_Mentionsu (v) — количество упоминаний пользователя v пользователем u;

Count_Hashtagsu (v) — количество употреблений хэштега v пользователем u;

Count_Urlsu (v) — количество упоминаний внешней ссылки v пользователем u;

Count_Retweetsu (u1) — количество сообщений, пересланных пользователем u, полученных от пользователя ui.

При анализе процессов, происходящих в коллективах, в исследованиях по социологии, психологии, экономике часто рассматривают трехместные отношения предпочтения [3], Согласно [4], запись if^ j означает, что i предпочтительнее j то мнению k. Критерии предпочтительности могут быть самыми различными: профессионализм, который можно разбить на разные виды деятельности, что породит спектр новых критериев; умение руководить людьми; коммуникабельность; восприимчивость к инновациям; психологическая устойчивость и т, д. На базе этих отношений складывается неформальная структура коллектива, важность выявления которой в ряде случаев не требует комментариев.

Трехместные отношения:

Mentionsu (u1, u2) — пользователь u упоминает пользователя u1 то реже, чем u2;

Hashtagsu (h1, h2) — пользователь u употребляет хэштег h1 то реже, чем хэштег h2;

Urlsu (url1, url2) — пользователь u упоминает ссылку url1 то реже, чем ееылку url2;

Retweetsu (u1, u2) — пользователь u пересылает сообщения, полученные от пользователя

u1 u2

Числовые характеристики, ассоциированные с трехместными отношениями:

N _Mentionsu (u1,u2 ) = Count _ M entions u (u1) — Count _ Mentions u (u2) ;

N_Hashtagsu (h1, h2) = Count_Hashtagsu (h1) — Count_Hashtagsu (h2) ;

N_Urlsu (url1,url2) = Count_Urlsu (url1) — Count_Urlsu (url2) ;

Retweetsu (u1,u2) = Count_Retweetsu (u1) — Count_Retweetsu (u2).

Можно считать, что приведенные выше функции также позволяют определять силы влияния различных факторов. Например, функция N_Mentionsu (u1,u2) позволяет вы-

u1 u2 u

uu u1 u2

N_Mentionsu (u1,u2) = 7 — 1 = 6. Насколько информативна функция Retweetsu (u1,u2), пока не ясно.

2. Анализ отношения предпочтения. В данном разделе приведены краткие сведения из работы [4] с целью показать, каким образом проводится так называемый анализ предпочтений. Решение такого рода задачи осуществляется в два этапа.

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

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

Такого рода пути можно выделить в упомянутом выше графе. Важным также является

"

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

2,1, Описание данных и алгоритма. Введем следующие обозначения: п — количество участников группы (коллектива); Ak- индивидуальная анкета (1 ^ k ^ n). Индивидуальная анкета представляет собой булеву (содержащую только нули и единицы) антисимметричную матрицу с нулями на главной диагонали, т, е, имеем

Ak = (ak), (1 ^ г, j ^ n)akj = 0, (г = j ^ aj = j ,

где черта обозначает отрицание 0 = 1, I = 0, Значению элемента aj = 1 матрицы Ak соответствует отношение i\k j. Совокупность таких анкет Ak, (1 ^ k ^ n) образует входное множество данных,

Ak

Gk = {Ok, Ik) ,Gk = {1,.. .,n}, {i,j) e Ik o i^j.

Матрица Ak является для Gk матрицей смежности.

Результирующая матрица Q = (qki) вводится по правилу qki = YJ¡=1 aj, т.е. в k-й

" k г

k

Opinion = qki.

Величину Rating = Y^k=1 qki назовем рейтингом г-го участника группы. Она отражает

суммарное мнение всего коллектива о данном участнике,

Q

G = {G, I, w), G = {1,..., n}, {i,j) e I o i = j.

Вес ребра определяется по формуле ) = Заметим, что данный граф являет-

ся полным. Каждые две вершины соединены парой ребер противоположной ориентации,

которые могут иметь различный вес. Таким образом, алгоритм построения графа, являющегося нашей целью, полностью описан,

2,2, Анализ построенного графа. Для послойного анализа построенного графа рассмотрим подграфы с вершинами, веса которых больше наперед заданной величины. Пусть для каждого натурального числа £

Очевидно, что Ь1 ^ £2 ^ С*1 Э Сь, у С = С. Граф С1 будем называть срезом уровня ¿. Обычно для формирования более весомых связей требуется большее время. Поэтому, рассматривая С* для различных ¿, можно видеть динамику развития связей во времени. Хотя иногда весомые связи могут образоваться очень быстро, например, как результат приглашения высококвалифицированного специалиста со стороны.

Для того чтобы выделить „пути наибольшей симпатии", необходимо решить некоторый вариант задачи о коммивояжере. Это не очень удобно, если граф содержит большое количество вершин, В таком случае сначала можно рассматривать некоторый срез при подходящем ¿. Часть вершин в нем оказывается изолированной и отбрасывается. Полученный граф дополняется ребрами до полного, а веса наследуются, т, е, рассматриваются только значимые участники коллектива, но связи между ними учитываются все.

Переходим к графу И = {г Е С\3] (1(1,]) ^ I)}. Для того чтобы не усложнять обозначения, будем считать, что мы работаем с исходным графом.

Пусть I = [%1,.. .гк) — некоторый маршрут в графе С. Весом маршрута I называется величина

Напомним, что если г1 = гк, то маршрут называется замкнутым. Будем использовать также следующие обозначения: к Е I — вершина к содержится в маршруте ¡; ¡1 С ¡2 — маршрут ¡1 является частью маршрута /2; ЕиЬ (к,1) = {%\ (к,1) С 1} — вход го вершины к в маршрут I.

Один из вариантов задачи о коммивояжере может быть сформулирован как задача поиска максимального замкнутого маршрута без самопересечений, такого, что т (¡) достигает максимума, т, е, данный маршрут должен проходить через все вершины. При этом

С

такой маршрут существует, но, вообще говоря, их может быть несколько. Обозначим множество всех таких маршрутов Ь (С). По определению ЕП (к, С) = {ЕпЬ (к, ¡) \1 Е Ь (С)} — множество входов из вершины к в граф С,

Элементы Ь (С) называются „путями наибольшей симпатии"; ЕиЬ (к, С) показывает,

к

этим путям.

Отметим еще одно обстоятельство. Реально могут выявляться парадоксальные цепочки, в которых нарушается транзитивность предпочтений. Например: „а лучше Ь", „Ь лучше с", но „с лучше а". Можно ввести абсолютную и относительную меры транзитивности. Абсолютная мера определяется по формуле

С* = {С, Р) , I* = {{г,]) Е I\т(%,]) = 1} ,С* =

к-1

3=1

f (k) = Card{(ii, %2, ¿з) \ii м- i2 ^ ¿з, ii м- ¿3},

к к к

где Card — количество элементов в множестве.

Относительная мера может быть определена, например, так: Fk = f (k)/n3. Крупномасштабное нарушение транзитивности обычно свидетельствует о неустойчивости коллектива. Мелкомасштабное же нарушение обычно всегда присутствует. Более того, в большом коллективе постоянно образуются и распадаются малозначимые связи. Переходя на соответствующий уровень, можно элиминировать их и далее провести достаточно качественный анализ,

3. Теория Латане социального влияния и ее модификация. Далее рассмотрим, каким образом можно адаптировать теорию социального влияния, предложенную Латане [5, 6], к социальным сетям, Латане подчеркивал важность трех атрибутов отношений между получателем информации и источником: сила — это статус вовлекаемых агентов; расстояние между агентами — физическое или психологическое; количество источников, влияющих на получателя.

Согласно теории социального влияния, уровень влияния, испытываемого агентом, может быть выражен следующей формулой

I = -se - t ja0

j=i,j=i ij

где Ii — количество социального давления, направленного па агента i; Oi — мнение ¿-го агента (±1) по отношению к данному вопросу, значение +1 соответствует поддержке, и — 1 соответствует сопротивлению предложению; Si — сила социального влияния (Si ^ 0); в — сопротивляемость агента к изменениям (в > 0); dij — расстояние между агентами i и j (dij ^ 1); а — степень ослабления расстояния (а ^ 2); N — общее число взаимодействующих агентов.

Значение постоянной в обычно принимается равным 2 в соответствии с величиной, использованной в исследованиях Латане, Большее значение этой постоянной означает, что для изменения мнения требуется большее давление, меньшее значение соответствует

а

а

много большая величина давления, dij

показатель легкости общения (передачи информации). При задании данной величины могут учитываться возрастные, национальные, конфессиональные и другие различия, Фор-

dij

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

Для анализа социальных сетей мы предлагаем модификацию формулы Латане в следующем виде:

Iu = —в • Count _Mentionsu(ui) — ^^ ^^-—-u( ^——.

' j ' j ' j 111- 7/-i

i=i i=i j=2

i>j

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

il = —в • max {Count _Mentionsu

i=1 i=1 j=U pa

i>j

Также можно учитывать влияние только наиболее упоминаемого и следующего за ним по частоте упоминания:

о п N и,  / м

lu = —ß • max {Count_Mentionsu(ui)\ — min min

1 j=u

i>j

Î=1 i=l j=2 [ pa

Здесь p (ui ,Uj ) — расстояние между пользо вателями щи Uj. В этой формуле учитываются все пользователи, упоминаемые и, т. е, считается, что все они на него влияют. Расстояние можно, например, задать отношением „подписчик — подписчик подписчика — подписчик подписчика подписчика и т. д. " Так как эти выкладки производятся отпоси-

U

лезнодорожной метрикой:

/ \ Г \\и — Uj II , Ui — и = X

p (Ui, Uj) = < j| ,, ,, j ' w , ,

[ \\Ui — U\\ + \\Uj — U\\ , Ui — U = X

XU

Ui Uj

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

U

Uj

в следующий момент времени уже стать подписчиком.

Внешнее влияние, например, влияние СМИ, также может быть учтено, если в основную формулу Латане добавить дополнительное слагаемое ,,—OiOMSMi", где SMi — сила влияния внешних источников на агента i (SMi > 0); OM — мнение внешнего источника (±1), Для учета влияния масс-медиа Латане получил [5, 6] итоговую формулу

Ii = —SiP — OiOM SMi — ^^ j O-•

j=1,j=i i,j

Обычно внешний источник также моделируется как агент, но „ вне окружающей среды " и с расстоянием 1 до каждого агента ввиду своей „вездесущей" природы. Вели чина SMi

меняется в зависимости от агента, так как каждый человек испытывает различное давле-

"

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

N \Hashtags(u)\ \Hashtags(u)\

Iu = —в • ^^ CoUnt _ M entions u (щ) — ^^ ^^ Hashtags(U)(hi,ij ) —

i=l i=l i=2

i>j

^^ N_Mentionsu

- h h pa(ui,uj) ' i>j

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

Аналогично получаем формулу, в которой учитываются все пользователи и внешние

u

N IUrls(u)l IUrls(u)l

Iu = —в • ^^ Count_Mentionsu(ui) — ^^ ^^ Urlsu(urli,urlj) —

i=l i=l j=2

i>j

N_Mentionsu

j=2 Pa(ui,uj) '

i=1 j=2 4

i>j

4. Некоторые интересные множества пользователей социальной сети и их характеристики. При анализе социальных сетей интерес представляет следующая ситуация, Предположим, что две рассмотренные группы людей употребляют лексику двух разных типов. Ребра в графах соответствуют взаимным цитированиям или другим критериям, связанным с использованием лексики, В качестве весов вершин берутся частоты использования слов. Веса ребер также могут быть определены посредством различных частот слов, используемых ими одновременно. Иначе говоря, интересно пытаться учесть семантическую составляющую сообщений пользователей, т, е, случай, когда разными словами описано одно и то же явление, событие и пр. В этом случае важно рассматривать не только пересечение данных графов или их симметрическую разность, но также некоторые другие подграфы, точнее, некоторые подмножества вершин. Например, множество вершин, „достаточно близких" к пересечению. Формальные определения даны ниже.

Предположим, имеются два графа Gi = (Vi,Ei),i = 1, 2, где Vi — множество вершин графа Gi, Ei — множество ребер графа Gi. Естественным образом определяются объединение V1 U V2, пересечение V1 П V2 и симметрическая разность V1AV2 = (V1 U V2) \ {V1 П V2) = = (V1\V2) U (V2\V1).

Обозначим для краткости H = V1 nV2, adj(x, y) о E(x, y)VE(y, x). Введем еще несколько обозначений: Adj(x) = {y : adj(x,y)} — множество вершин, смежных с вершиной x; AdjH(x) = Adj(x) П H — множество вершин, смежных с вершиной x и лежащих в H; CAdj(x) = Adj(x)\AdjH(x) — множество вершин, смежных с вершиной x и лежащих H

Далее считаем, что заданы две функции: ui : Vi ^ N — функция, задающая веса вершин; ri : Ei ^ N — функция, задающая веса ребер.

Можно определить весовую функцию ш : V1 U V2 ^ N для вершин, заданную на объединении графов

u

ш1 (x), если x Е V1\V2

ш2(x), если x Е V2\V1

U1(x) + Ш2 (x) ,,

—, если x Е V1 П V2

2

Аналогично может быть определена функция г : Е\ и Е2 ^ N. Теперь можем записать числовые характеристики некоторых подграфов:

а = Шг(х),Хг = ^^ (х), X = ^^ ш(х),^ = ^^ т(х),

хеУ4 хеУ1 П У2 хвУг П У2 хеУгАУ2

в = 52 гг(е),в(х) = г(х,У),7(х)= £ г(х,У)-

е<^Е1 уеЛсЦ

Рассмотрим множества V'[ = {х' € У : Зх € Н (ас1](х,х'))}. Наибольший интерес представляет множество тех вершин, которые сопряжены с вершинами из пересечения, а сами лежат вне него Ь = (У{ и У2)\Н.

Наиболее интересными числовыми характеристиками являются следующие.

1, Толерантность вершины

Т(х) = 0м-, • £ ш(у).

\а\ — а2\

11 2 уелС]И

2, Степень защиты вершины

&(х) = • £ ш(у).

|а - а21 уеСТ^х)

3, Совместность множеств VI и У2

< = £ ш(х)+ £ т(х) - £ Б(х).

хен хеУ1АУ2 хеУ1АУ2

Приведенные выше формулы можно обобщить таким образом, чтобы учесть веса ребер, 1, Толерантность вершины с учетом весов ребер

т'

1а 1 - а2| р (х) ^

уелС]Н

2, Степень защиты вершины с учетом весов ребер

уеслс]

3, Совместность множеств У и У2 с учетом весов ребер:

< = £ ш(х)+ £ т'(х) - £ &(х).

хен хеУ1АУ2 хеУ1АУ2

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

Рис. 1. Общая схема алгоритма

оставляемыми пользователями в сети. Тогда набор твитов одного или нескольких пользователей (к примеру, за какой-то период времени) в некотором смысле можно считать „рефератом" обзора или новости. Для этого необходимо оценить релевантность сообщения статье. Естественно, что в таком „реферате" может содержаться информация как из исходной статьи, так pi из других источников.

Ниже приведено обобщение алгоритма реферирования [7] новостных pi обзорных статей, баз Pipy ющееся на основе ргспользованрш срштаксргческого анализатора Link Grammar Parser. Рассмотрена возможность примененрш этого алгоритма к задаче оценкрг релевант-hoctpi сообгценрш статьям.

5.1. Базовый алгоритм определения релевантности сообщений новостным и обзорным статьям. Базовый алгоритм определенрш релевантнострг описан в вышеупомянутой работе [7] pi coctopit ргз несколькргх этапов.

1. Проводргтся предваррггельная обработка статьи, могут удаляться отдельные элементы, спецргальные обозначенрш, неподдержргваемые сршволы.

2. Вычргсляются веса слов.

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

4. Вычисляется оценка релевантности топиков pi сообщения.

5. Вычисляется окончательная оценка.

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

Считаем, что текст статьи представляет собой последовательность предложенрш, каждое PI3 которых coctopit Pi3 слов. Тогда статью можем представить в виде графов, вершины которых — слова, а направленные ребра показывают очередность следования слов. Пример построения графа приведен на рис. 2.

Для вычр1сленрш весов слов будем рассматривать такие графы. Веса слов можно вычислять различными способами. В частности, в работе [7] предлагается вычислять их по формуле:

jjjr , ч 1 - Л _ v-^ W

W(V!] = — + Л £ ,

vj ein(vi Г j

где N — количество вершин в графе; In (vk) — множество вершин, соединенных входящими в vk связям и; Out (vk) — множество вершин, соединенных исходящими из vk связями; Л — коэффициент затухания.

Чтобы разбить статью на топики, воспользуемся иерархическим методом кластеризации, например, Group-Average Agglomerative Clustering. Схожесть предложений определяется количеством совместно встречающихся слов. Схожесть топиков вычисляется по следующей формуле:

Sim(Ti,Tj)= IT U T |(\Г1 U T I -1) £ £ Sim(Sn).

\ г j\(\ г j\ ) SneTiuTj iSmeTi{jTj;

На каждом шаге мы объединяем наиболее схожие топики. Вес топика определяется весами входящих в него слов. Для работы алгоритма кластеризации также используется формула Ланса-Вильямса.

5.2. Модель определения релевантности с использованием Link Grammar Parser. Обобщим теперь данный алгоритм pi попытаемся учитывать синтаксическую структуру предложений. Для этого на третьем этапе перед тем, как вычислять веса топиков, воспользуемся результатом работы системы Link Grammar Parser. Link Grammar Parser — это синтаксический анализатор английского языка, базирующийся на оригинальной теории синтаксиса английского языка. Программная система приписывает заданному предложению синтаксическую структуру, состоящую из множества помеченных связей, соединяющих пары слов. Пример синтаксического разбора предложения анализатором приведен на рис. 3. Подробное описание этого Link Grammar Parser можно найти в [8].

Поставим в соответствие предложению Si граф (Vi ,Ei), получаемый в результате

работы Link Grammar Parser. В этом графе V¿ — множество с л ов, a Ei — множество

троек < vt ,v2,t >, где vt ,v2 E V,i — вершины, at — тип связи. Таким образом, мы

имеем Gt— графы предложений. Следующим эта пом построим граф G (V, E),

полученный объединением графов предложений Gt Здесь V = (J Vi — множе-

1 <к

ство всех слов, встреченных в предложениях; E — множество четверок < vt ,v2,t,n >, где, как и прежде, vt ,v2 E Vi — вершины, t — тип связи, а дополнительный параметр n = \{i : < vt ,v2,t >E Ei}\ — количество раз, когда встретилась тройка < vt ,v2,t >.

-Хр-

-Ss*g-

+ -

I

I

-----jp___

----DD----

NN- +—Dmc — +—Mr—+--Dmcw-- +----Sp — + — PP-- +—MVp-- +

I III III

million customers.n whose addresses.n have.v changed.v (¡¡firing tl

Рис. 3. Пример синтаксического разбора предложения в системе Link Grammar Parser

+N

I I

past.a 3

Определим LinkLengthу как взвешенную сумму чисел, которые соответствуют силе связей между ^ и у где весовыми коэффициентами являются соответствующие значения функции IV, определяющей вес для типов грамматических связей:

LinkLength j = ^^ nW (t).

Определим PathLengthу, которая будет выступать в качестве весов ребер в окончательном графе. Этот показатель характеризует легкость перехода от одного слова к другому:

PathLength у

ЫикЬвидШ^

Дня каждой вершины вычислим ОоЛепезз СеЩгаШу — величину, обратную к среднему геодезическому расстоянию до остальных вершин

г ( \ N - 1

Ос Ы =

Y, dG(vi, Vj)'

Vj €V,vj =vi

Дня каждой вершины вычислим относительное изменение показателя Clotheness Centralitv

' Dff ( ) С М - C2 (Vi)|

Diff ] =-сШ)-.

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

Sim (Vi) = (Diffav9 < 0, 5 Л Diff (vi) < 0, 5) V (Dif favg > 0, 5 Л Diff (vi) < Dif favg).

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

Score (T) = l{v * V : Sim (v)}|

SCOre (T )= \Set (T)| .

<Vi,Vj ,t,n>EE

Окончательная оценка — это взвешенная сумма оценок дня тоников — вычисляется но формуле:

Score = £ W (T) Score (T).

T

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

6. Программная реализация. В процессе исследований был разработан программный комплекс, содержащий модули извлечения информации из социальных сетей, обработки, анализа и визуализации данных. Все модули реализованы на языке Python для широкого круга операционных систем, на которых может работать комплекс. Структура программного комплекса показана на рис, 1,

Модуль извлечения данных имеет возможность извлекать данные, в первую очередь, из крупнейших социальных сетей: Twitter, Faeebook, „ВКонтакте", Для доступа к каждой из них используется интерфейс прикладного программирования (API), авторизация производится при помощи протокола OAuth, На данный момент этот модуль имеет возможность функционального расширения практически на любую социальную сеть, в зависимости от предоставляемого API,

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

реализации ограничение на доступ к серверам Twitter составляло не более 350 запросов в

"

имеют ограничение в 3 запроса в секунду. Серверы Faeebook не имеют каких-либо ограничений на количество запросов, однако каждый запрос обрабатывается ими в течение 1-2 секунд. Для преодоления этих трудностей было решено использовать прокси серверы (на данный момент в модуль можно загружать их список). Также ввиду возможности модуля работать практически на любой операционной системе довольно легко увеличить количество машин, на которых работает модуль, т, е, можно использовать распределенную обработку.

Извлеченные данные пользователей можно разделить на три категории: собственно пользовательские данные, такие как имя, ник, время регистрации; сообщения пользователей; связи между пользователями. После извлечения модуль обработки данных производит поиск маркеров хэштегов, упоминаний пользователей, ссылок и т, д. Далее производится нормализация текста сообщений в зависимости от настроек: либо с помощью стеммера Портера [9] (для большей скорости обработки), либо морфологическая нормализация на основе алгоритмов АОТ [10] с использованием библиотеки PyMorphy. Для хранения данных используется документоориентированная база данных MongoDb,

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

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

"

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

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

Был разработан программный комплекс, позволяющий извлекать информацию из социальных сетей, проводить обработку, анализ и визуализацию данных. Модуль извлечения данных имеет возможность извлекать данные, в первую очередь, из крупнейших социальных сетей: Twitter, Facebook, „ВКонтакте",

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

Для определения источника распространения информации предлагается использовать обобщенный алгоритм оценки релевантности сообщений, оставляемых в социальных сетях, статьям, публикуемым в Интернете, Чтобы учесть синтаксическую структуру текста, предлагается использовать результат работы синтаксического анализатора Link Grammar Parser,

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

Список литературы

1. Charu С. Aggarwal Social network data analytics. 2011.

2. Батура Т. В. Методы анализа компьютерных социальных сетей. // Вестник НГУ. Серия: Информационные технологии. Новосибирск. 2012. Т. 10. Вып. 4. С. 13-28.

3. Роджерс Э., Агарвала-Роджерс Р. Коммуникации в организациях. М.: Экономика, 1980.

4. Крючков В. Н., Мурзин Ф. А., Нартов Б. К. Исследование связей в коллективах и сетях ЭВМ на основе анализа предпочтений // Проблемы конструирования эффективных и надежных программ. Новосибирск. 1995. С. 136-141.

5. Nowak A., Szamrej J., LatanE В. From private attitude to public opinion: a dynamic theory of social impact // Psychological Review. 1990. V. 97. P. 362-376.

6. LatanE, B. The psychology of social impact // American Psychologist. 1981. V. 36. P. 343-356.

7. Kumar N., Srinathan K., Varma V. Using graph based mapping of co-occurring words and closeness centralitv score for summarization evaluation // CICLing Proc. of the 13th Intern. Conf. on Computational Linguistics and Intelligent Text Proc. 2012. P. 353-365.

8. Sleator D., Temperley D. Parsing English with a Link Grammar. Pittsburgh: School of Computer Science Carnegie Mellon University, 1991.

9. WlLLETT P. The Porter stemming algorithm: then and now // Program: Electronic Library and Information Systems. 2006. V. 40. N 3. P. 219-223.

10. Автоматическая Обработка Текста [Электрон, ресурс]. 2012. Режим доступа: http://aot.ru/.

11. Gephi, an open source graph visualization and manipulation software [Электрон, ресурс]. 2012. Режим доступа: https://gephi.org/.

Батура, Татьяна Викторовна — канд. физ.-мат. наук, науч. сотр. Института систем информатики им. А. П. Ершова СО РАН; e-mail: t,at,iana.v.batura@gm,ail.com, Мурзин Федор Александрович — канд. физ.-мат. наук, зам. дир. по науч. работе Института систем информатики им. А. П. Ершова СО РАН; e-mail: murzin@iis.nsk.su Проскуряков Алексей Викторович — асп. Института систем информатики им. А. П. Ершова СО РАН; e-mail: alexey.proskuryakov@gmail. com Сперанский Данил, Олегович — студент Новосибирского национального исследовательского государственного университета; e-mail: speranskydanil@gmail.com

Дата поступления: 15.05.2014