ВЕСТНИК ЮГОРСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
_2012 г. Выпуск 3 (26). С. 62-65_
УДК 004.912
АВТОМАТИЗИРОВАННЫЙ АНАЛИЗ АКТИВНОСТЕЙ ПОЛЬЗОВАТЕЛЕЙ СОЦИАЛЬНЫХ СЕТЕЙ ДЛЯ ВЫЯВЛЕНИЯ ОБЩЕСТВЕННОЙ РЕАКЦИИ
В. В. Бурлуцкий, Л. И. Хасаншин
Развитие Интернет-ресурсов социальных сетей, таких как MySpace, Facebook, Вконтакте и т. п., за последние годы позволило задействовать огромное число людей во всевозможном обмене информацией и данными. Прежние устоявшиеся форматы Интернет общения вроде чатов и форумов имели более анонимную ориентированность и исключали своего рода социальные аспекты общения, к тому же они, как правило, имели строго тематическую направленность, чем, в общем, и отличаются от социальных сетей. Пользователи социальных сетей чаще используют настоящие имена и с большим энтузиазмом делятся персональными данными, что, в свою очередь, рождает интерес в статистических исследованиях, а также в некоторых экономических, политических и социологических сферах деятельности.
В компьютерной лингвистике, в частности, в обработке естественного языка (natural language processing) существуют как весьма значительные прорывы, так и крупные фундаментальные проблемы. К прорывам можно отнести вопрос-ответные системы, такие как Siri и IBM Watson, данные системы могут распознавать человеческую речь и отвечать на вопросы. К фундаментальным проблемам можно отнести структурирование знаний об окружающем мире, так называемая AI-полная задача, то есть сделать компьютер таким же умным, как человек, формализовать опыт и знания, накапливаемые человеком в течение жизни, для понимания текстов и генерирования ответов. В сфере анализа активностей пользователей социальных сетей можно применять более конкретные задачи, такие как определение тональности, то есть выделение эмоциональной окраски высказывания, выделение фактов из текста, подсчет частоты употребления слов и др. [1]. Стоит отметить, что большая часть этих задач имеют известные ограничения в точности и в общем случае не решаются полностью.
В основу реализованного проекта легла идея об использовании для исследования наиболее структурированной и достоверной части данных в социальных сетях - данных из новостных групп информационных агентств или СМИ. И затем, опираясь на эту относительно структурированную информацию, применить алгоритмы информационного поиска к связанными с каждой отдельной новостью реакциями пользователей. То есть идея заключалась в том, чтобы определить наиболее употребляемые слова в новостных темах по заданной поисковой фразе, исходя из предположения, что наиболее употребляемые слова будут отражать общее отношение и ассоциации людей к данному вопросу. Таким образом, общий алгоритм работы системы заключается в задаче: из новостей определенной группы выбрать те, в которых присутствует поисковая фраза, после чего создать список самых употребляемых пользователями в комментариях лексем. В дальнейшем этот список лексем подвергается семантической фильтрации, отбрасывающей служебные и стоп-слова, не представляющие интереса в данном анализе.
С технической точки зрения проект можно разделить на 3 основных модуля: сбора данных, обработки и анализа собранных данных и визуализации результата. Ядро проекта реализовано на языке Python, с использованием фреймворка Django, которые де-факто являются стандартными средствами разработки в данной области исследований.
При реализации модуля сбора информации из социальной сети «Вконтакте» использовались два основных метода: запрос информации с помощью API интерфейса, предусмотренного разработчиками для взаимодействия с другими программными средствами, и получением данных, обращаясь непосредственно к страницам сайта по протокол HTTP. Использование API ограничивается тем, что администратор группы или пользователь должны дать разрешение на обработку их данных, это требует предварительных согласований с администраторами групп, и привлечением большого числа пользователей. Второй метод не требует раз-
В. В. Бурлуцкий, Л. И. Хасаншин. Автоматизированный анализ активностей пользователей социальных сетей.
решений, но позволяет обратиться только к информации, разрешенной для неавторизованного пользователя. Исходя из этого, было принято решение на начальном этапе использовать протоколу HTTP и впоследствии переходить к варианту с использованием API.
Как уже было сказано выше, все группы «Вконтакте» имеют одну строгую структуру, что облегчает работу с парсингом (в контексте обработки страниц подразумевается выделение из страницы только необходимой информации), это позволяет для всех групп использовать один алгоритм. Однако в «Вконтакте», впрочем, как и в других социальных сетях, предусмотрен механизм ограничения по количеству запросов к страницам, что существенно ограничивает скорость сбора данных. Для решения этой проблемы был использован алгоритм сбора в несколько потоков, который позволяет обойти это ограничение до определенного предела. Из каждой группы последовательно скачиваются тексты всех новостей и комментариев, даты их публикаций, количество пользователей нажавших кнопку «Мне нравится» («Лайк»), данные оставивших комментарии пользователей (рис. 1). Для организации хранения данных выбор пал на СУБД PostgreSQL в силу наличия многофункциональной и свободно распространяемой версии этой системы.
Рисунок 1. Структура собираемых данных
Все модули системы работают независимо друг от друга, а их взаимодействие организуется через базу данных, поэтому обработка и анализ могут работать как параллельно сбору, так и последовательно. Обработка сообщений реализуется с помощью библиотеки NLTK, имеющей ряд готовых семантических и синтаксических инструментов для обработки естественного языка. Обработка проходит в несколько этапов. На первом этапе сообщения разбиваются на слова, эта операция называется токенизацией. Не знакомым с обработкой естественного языка может показаться, что требуется выделить последовательности, разделенные пробелом, но здесь существуют некоторые сложности, например, интерпретация знаков препинания. Они могут быть как частью слова (в аббревиатурах), а могут быть частью предложений. Также следует различать устойчивые биграммы вроде "Mr. Johnson" или "ФК Москва" и т. п. На этом же этапе исключаются знаки препинания и все «стоп-слова», то есть служебные слова, такие как предлоги, союзы, местоимения. На втором этапе у каждой лексемы отсекается окончание. Эта операция называется стеммингом. В данном проекте был применен алгоритм стемминга Портера [2], этот алгоритм не использует баз основ слов, а лишь, применяя последовательно ряд правил, отсекает окончания и суффиксы, основываясь на особенностях языка, в связи с чем работает быстро, но не всегда безошибочно. Выбор именно этого алгоритма был связан с ограниченностью как во времени, так и в ресурсах для реализации данной обработки. Третьим этапом является подсчет одинаковых лексем и их упорядочение по количеству употреблений. Для предотвращения повторяющихся расчетов информация о частоте употреблений сохранялась в базе данных.
Визуализация информации была реализована с помощью шаблонной системы Django и Javascript библиотеки HighCharts для диаграмм. Пример диаграммы можно увидеть на рисунке 2. На момент написания статьи были реализованы следующие диаграммы: динамика
Информационные технологии в социально-экономических системах
комметируемости новостей с искомой фразой, динамика появления новостей с искомой фразой. Также реализованы рейтинги новостей по количеству комментариев и количеству пользователей, нажавших «Мне нравится», и рейтинг употребления лексем в обсуждениях к новостям с искомой фразой (рис. 3).
Рисунок 2. Пример диаграммы
В. В. Бурлуцкий, Л. И. Хасаншин. Автоматизированный анализ активностей пользователей социальных сетей...
\Deiiueffa
Лексемы в комментариях-
Главная лексемы частота
Диаграмма росс стран 370 351
Рейтинг сиз 172
руеек 15В
Частота народ 135
- - С ВО 123
ддц гонор 117
ВиУШ дума 112
люб 9S
лад 39
ДРУГ
деле 79
мир 79
влэст 74
леник 73
Вернуться
© Khasanshin ünar2012
Рисунок 3. Пример рейтинга лексем по запросу «Россия»
В заключение несколько слов о перспективах развития системы. В модуле сбора данных планируется сделать больший упор на тесную связь с социальной сетью и пользователями с помощью API доступа, это позволит существенно увеличить как производительность системы, так и объем собираемых данных. Модуль обработки и анализа необходимо дополнить новыми видами и алгоритмами обработки естественного языка, соответственно, расширить и модуль визуализации.
ЛИТЕРАТУРА
1. Manning, C., Raghavan P., Schütze H. Introduction to Information Retrieval. - Cambridge University Press, 2008.
2. Ландэ, Д. В. Интернетика: Навигация в сложных сетях: модели и алгоритмы [Текст] / Д. В. Ландэ, А. А. Снарский, И. В. Безсуднов. - M. : Либроком (Editorial URSS), 2009.