Введение 3
Постановка задачи 5
Описание предметной области 7
Обработка естественного языка 7
Выделение отдельных событий из множества сообщений 8
Глава 1. Сбор сообщений. 10
1.1. Обзор API сети Твиттер 10
1.2. Разработка программного продукта 12
1.3. Система хранения 15
1.4. Нереляционные (NoSQL) базы данных 15
1.5. Система хранения сообщений 16
1.6. Организация работы системы сбора сообщений 18
Глава 2. Обработка собранных данных 20
2.1. Приведение слов к нормальной форме 20
2.2. Bag-of-Words и Word2Vec модели 21
2.3. Именованные сущности 25
2.4. Обработка данных 26
Глава 3. Анализ методов кластеризации 29
3.1. DBSCAN[22] 29
3.2. Affinity Propagation[23] 31
3.3 Kmeans[24] 32
3.4. Иерархическая кластеризация 34
3.5. Silhouette coefficient 34
3.6. Интерпретация результатов 35
Выводы 40
Список литературы 41
На сегодняшний день интернет в общем, и социальные сети в частности стали неотъемлемой частью жизни людей. Тяжело найти человека, который ни разу за день не проверяет почту и не читает сообщения от семьи или коллег по работе. Интернет трансформировал обычную жизнь. Благодаря ему, у людей появилась возможность чуть ли не мгновенного общения с помощью аудио, видео или текстовых сообщений с собеседником из другой части света.
Огромную роль в процессе упрощения общения между людьми играют социальные сети. С их помощью можно найти родственников или одноклассников, с которыми давно утеряна связь. Или же найти друзей для общения на интересующую тему. В наше время, с помощью социальных сетей можно делать практически все: покупать товары или услуги, искать информацию о незнакомой местности, общаться с представителями компаний, и так далее. Не удивительно, что они стали неотъемлемой частью жизни каждого.
Такое распространение социальных сетей привлекло в них множество компаний, производящий какой-либо контент, ведь социальные сети стали очень удобным инструментом для его доставки. В том числе, многие новостные компании переориентировались на социальные сети, где они получают гораздо больше просмотров и откликов. С развитием социальных сетей появилась даже новая отрасль - интернет-медиа - компании, которые занимаются журналистикой, не выпуская печатные издания или телевизионные передачи, выпуская свои материалы исключительно в социальных сетях, или же на своих веб-сайтах.
На сегодняшний момент, большинство новостей как локального, так и глобального масштаба люди узнают прежде всего из новостных лент социальных сетей, которыми они пользуются. Часто это сообщения от официальных аккаунтов известных новостных агенств и изданий. Но в социальных сетях также публикуется информация от очевидцев событий, людей, которые оказались рядом с местом события или же являются непосредственными их участниками. С помощью данной информации новостные агенства и экстренные службы могут быстрее узнавать о каких-либо аномалиях или аварийных ситуациях, и оперативнее реагировать на происходящее.
В связи с этим, актуальной становится задача выделения аномальных и общественно значимых событий из потока сообщений в социальных сетях, а также их последующий анализ и выделение особенностей. Решение данной задачи сделает возможным, например, быстрое информирование окружающих о критической или аварийной ситуации.
В рамках данной выпускной квалификационной работы рассмотрены методы для сбора необходимой информации и её обработки, а также проведен сравнительный анализ методов выделения кластеров событий, соответствующих событиям в мире. Результаты данной работы предлагается использовать для построения системы детектирования событий в реальном времени.
В данной работе в рамках задачи выделения актуальных событий из потока сообщений был создан программный продукт для сбора сообщений из сети «Твиттер», организована система хранения полученных сообщений а также организована работа программного продукта в течении длительного времени. Также были опробованы два вида векторного представления полученных текстовых сообщений и проведен сравнительный анализ известных методов кластеризации для выделения кластеров сообщений, объединенных одной темой.
По результатам проведенного анализа был сделан вывод, что для данной задачи наиболее удачным представлением является векторное представление, учитывающее только именованные сущности в тексте сообщения. Наиболее эффективном методом кластеризации из рассмотренных был принят Affinity Propagation на основании наибольшего значения silhouette coefficient.
Полученные кластеры сообщений, в которых содержались хорошо структурированные сообщения от официальных аккаунтов СМИ, содержали достаточно похожие сообщения, в том числе от обычных пользователей.
Тем не менее, присутствовали кластеры, содержащие разрозненные сообщения. В данных кластерах содержались сообщения исключительно от обычных пользователей сети, и часто не выражали никакой мысли или содержали спам или рекламу. Также встречались сообщения, которые просто содержали набор слов или букв. Для более эффективной работы системы кластеризации необходимо отсеивать и фильтровать данные сообщения.
Тем не менее, проведенный анализ позволил выбрать наиболее эффективный метод для выделения актуальных тем. На основе этой работы можно реализовывать автоматическую систему выделения актуальных сообщений, собирающих информацию в реальном времени.