Приложение для поиска людей по интересам на основе информации из социальных сетей

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 04.12.2019
Размер файла 2,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

ПРАВИТЕЛЬСТВО РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

«ВЫСШАЯ ШКОЛА ЭКОНОМИКИ»

Факультет компьютерных наук

Департамент больших данных и информационного поиска

Выпускная квалификационная работа

на тему «Приложение для поиска людей по интересам на основе информации из социальных сетей»

по направлению подготовки 09.03.04 «Программная инженерия»

Выполнила О.А. Крылова

Москва 2019

Реферат

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

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

Abstract

One of the main problems of searching people according to their interests is a huge amount of unverified information that could be provided by different searching systems and dating apps. In this paper a web-based app that helps to find required people in a very short time based on public information from their social network profiles and chain of friends is provided. The app is to provide users with the ability of getting more information about the person found. Considering different priorities and searching filters, the app makes the most suitable list of potential companions that will make the process of searching people much easier.

Keywords -social networks, web application, interests, Dating, morphological analysis, automated text analysis, computer linguistics

Основные определения, обозначения и сокращения

API (Application Programming Interface) - набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением или операционной системой для использования во внешних программных продуктах.

HTTP - протокол прикладного уровня передачи данных. Основой HTTP является технология «клиент-сервер».

IP-адрес - уникальный сетевой адрес узла в компьютерной сети.

JSON - текстовый формат обмена данными, основанный на JavaScript, формат записи которого представлен в виде пар «имя свойства»: «значение».

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

Авторизация - предоставление возможностей в соответствии с положенными пользователю правами.

Аутентификация - процедура проверки подлинности.

Ветвь - элемент дерева, представляющий соединение между узлами.

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

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

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

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

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

Морфологический синтез - это процесс генерации форм заданных слов (лексем) с определенными грамматическими значениями.

Омонимия - сходство слов в звуковом отношении при различии значений.

Социальная сеть - платформа, онлайн-сервис и веб-сайт, предназначенные для построения, отражения и организации социальных взаимоотношений в Интернете.

Узел - элемент дерева.

Введение

В современном мире у людей часто возникает потребность в поиске какого-либо человека. Это может быть потенциальный собеседник с общими интересами или хобби, может быть специалист в конкретной области, эксперт, который поможет решить волнующую человека проблему, дать необходимую ему консультацию. В том или ином случае есть набор параметров и критериев, по которым нужно быстро найти подходящего человека. Зная эти критерии, можно, например, искать кого-либо через специализированные по интересам ресурсы, которых в настоящее время множество. К примеру, приложение Smackactive создано для тех, кто увлекается спортом, TourBar для любителей путешествий, а приложение Sizzl для ценителей определенного вида бекона. Такие приложения обычно быстро находятся с помощью поисковых систем. Но не на каждый интерес и требование к потенциальному собеседнику или профессиональному партнеру возможно найти специализированный сервис, т.к. сами критерии поиска могут быть специфичными. Это связано с тем, что у всех людей различаются требования даже к качеству работы специалистов, а поиску товарищей (чтобы пойти в поход, собрать команду для участия в спортивных мероприятиях и т.д) уделяется особенное внимание, поэтому часто возникает необходимость знать о человеке достаточно нетривиальные факты.

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

Задача поиска подходящих собеседников очень распространена, поэтому существует множество сервисов, с помощью которых можно это сделать. На данный момент приложения, где можно найти единомышленников и подходящих по интересам людей, в основном делятся на два типа: социальные сети общего характера и сервисы, ориентированные конкретно на знакомства. Первые, как правило, более популярны и содержат в себе не только краткую анкету о человеке, но и историю его активности, стену, фотоальбомы, музыку и другие материалы. К примеру, самая популярная социальная сеть общего характера Facebook [60] насчитывает порядка 2+млрд активных пользователей, в то время как лидер европейских сервисов онлайн-знакомств POF (Plentyoffish) [39] только 135+млн зарегестрированных пользователей, а популярный в России сайт для знакомств Badoo [1] около 350+ млн созданных анкет.

Независимо от назначения приложений и их типа, большинство из них имеет существенный недостаток: для их использования необходима либо регистрация в самом приложении с обязательным заполнением анкеты пользователя, либо регистрация через социальную сеть общего характера с заполнением предложенной данным приложением анкеты дополнительно для создания личного кабинета пользователя. В общем случае, регистрация в приложении и заполнение полей с личными данными занимает немало времени и является обязательной. Более того, существуют приложения с платной регистрацией (LinkYou [18]), но в настоящее время на рынке их абсолютное меньшинство. Гораздо больше сервисов имеют бесплатный, но ограниченный набор функций, который можно расширить, оформив, например, месячную подписку, и тем самым, присвоить своему аккаунту более высокий статус, сделать доступными желаемые возможности приложения.

Из недостатков приложений для знакомств и поиска людей по интересам, которых существует огромное количество, можно еще выделить недоступность для использования российскими пользователями некоторых сервисов. Например, приложение, организованное и поддерживаемое волонтерами MeetIn [42] довольно популярно (100+тыс пользователей) и пользуется хорошей репутацией. Оно ориентировано на поиск людей и групп людей по конкретному городу. В выборочном списке городов нет российских, что делает невозможным использование данного приложения на территории России. Социальные сети общего характера (Facebook, ВКонтакте, Twitter), в свою очередь, поддерживают не только российских пользователей, но и имеют миллионную аудиторию по всему миру.

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

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

Для достижения цели в работе необходимо решить следующие задачи:

1) Проанализировать предметную область

2) Проанализировать аналоги и существующие решения

3) Разработать алгоритм поиска людей по интересам в социальных сетях

4) Спроектировать архитектуру приложения

5) Реализовать все возможности приложения

Работа состоит из следующих частей: три главы, заключение, список литературы и приложения.

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

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

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

В заключении приводятся результаты работы.

Глава 1. Анализ проблемы и инструментов поиска людей по интересам

1.1 Задача поиска людей

поиск интерес социальная сеть

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

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

1.2 Анализ приложений для поиска людей по интересам

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

1.2.1 Типы приложений для поиска людей

1.2.1.1 Стандартные поисковые системы

Стандартные поисковые системы (Yandex [5], Mail.ru [14], Google [33], Rambler [47] и др.) являются простым способом поиска людей, так как не требуют обязательной регистрации в самих системах. Однако, результаты, которые можно получить таким способом - это, в основном, либо открытые профили различных социальных сетей, либо устаревшая и «пустая» информация, которая имеет свойство копиться в Интернете. Также это могут быть веб-сайты, представляющие конкретных людей и их интересы, например, одностраничные сайты в качестве портфолио профессионалов. В любом случае, результаты, скорее всего, будут слишком обширными и слишком неконкретными, и их невозможно будет проверить. К тому же, в поисковых системах нет специализированного поиска людей по интересам, а это означает, что некоторых людей, а точнее их страницы в различных социальных сетях, можно найти только посредством введения запроса, включающего конкретно имя и фамилию человека, в некоторых случаях возраст, место жительства, работы и учебы.

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

1.2.1.2 Сервисы, ориентированные на поиск людей по интересам

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

1) Тематические сервисы

Тематические сервисы - это приложения, изначально направленные на определенную категорию людей. Например, приложение Smacktive [38] предназначено для поиска людей для занятия каким-нибудь видом спортивной деятельности. Это может быть фитнес, спортивный зал или утренняя пробежка. В приложении FarmersOnly [49] знакомятся фермеры, студенты-аграрии и те, кто предпочитает жить в провинции. Приложение Sizzl [48] для любителей определенного вида бекона, приложение Tall Friends [55] для тех, чей рост выше среднего. Существуют также приложения для любителей ездить на лошадях (Equestrian Cupid) [37], для людей, которые хотят познакомиться в самолёте (WingMan) [58], для владельцев собак (Tindog) [50], для ценителей бороды (Bristlr) [45].

2) Нетематические сервисы

У сервисов, ориентированных на поиск людей, не всегда есть тематика. Как правило, в таких приложениях требуется более подробная анкета человека в личном кабинете пользователя. Она может состоять из категорий интересов, которые предлагает само приложение. Например, таким образом устроена анкета в приложении MeetUp [43]. Приложение MeetUp создано для поиска групп людей, которые увлекаются одной темой. При регистрации приложение предлагает выбрать интересы - Мода и стиль, Танцы и движение, Общение, Разработка ПО и другие. На основе выбранных интересов приложение подбирает сообщества людей и планируемые встречи, связанные с одной из выбранных тем. Похожим образом осуществляется поиск в приложении WeGoDo [32]: категории приложения, например, «горный велосипед» или «собаки» служат основой для поиска людей с похожими интересами или хобби. В некоторых приложениях можно искать группы людей с одинаковыми интересами по ключевым темам вручную, как в приложении GroupSpaces [59], но чаще используются именно категории.

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

1.2.1.3 Социальные сети общего характера

Социальные сети общего характера (Facebook [60], ВКонтакте [10], Одноклассники [13]) тоже могут служить платформой для поиска людей по интересам. Профиль человека в социальной сети общего характера содержит не только информацию о нем в специальных разделах «интересы», «о себе», «карьера», «любимые книги» и т.д., но еще и историю публикаций, которая иногда может принести об интересах человека больше информации, чем анкета профиля с специальными разделами. В таких социальных сетях можно искать сообщества, профили людей и посты.

1) Сообщества в социальных сетях

В социальных сетях существуют сообщества, то есть объединения некоторых людей, связанных единым интересом. Сообщества могут иметь юмористический контент, политический контент, это может быть новостная лента или даже фан-клуб какого-нибудь актера. В них вступают люди, заведомо заинтересованные тематикой сообщества, поэтому некоторые нередко ищут собеседников именно через такие группы. В данных сервисах сообщества можно находить через ключевые слова или темы. Совпадения с ключевым словом или темой будет искаться в названии сообщества и в его описании, также в некоторых приложениях (Facebook) существуют теги, которые позволяют определить тематику сообщества. Сообщества характерны не только для социальных сетей общего характера: некоторые приложение (например, MeetUp) ориентированы конкретно на поиск сообществ людей, связанных единым интересом, либо групп людей, которые планируют провести встречу или тренинг (т.е. какое-то мероприятие) на определенную тему.

2) Профили в социальных сетях

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

3) Посты в социальных сетях

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

1.2.1.4 Форумы

Помимо сообществ в социальных сетях и других сервисах существуют очень похожие по своей сути объединения людей с подбором статей на определенные темы, которые находятся на специализированных форумах или тематических сайтах. Форум - это место в сети Интернет, где люди общаются на какие-либо темы, делятся идеями. Это Интернет-портал, сочетающий в себе обширную базу информации, разделов и комментариев к статьям в соответствующих разделах. Там происходит обмен ценной информацией и последующее обсуждение ее участниками. Цель форума или тематического сайта не в поиске собеседников или товарищей, а в потреблении полезных данных, которые относится к тематике, а возможно, и публикация своих идей и соображений на интересующую тему [12]. Например, форум Drom.ru [36] создан для автомобилистов, автолюбителей и для тех, кто следит за тенденциями в мире авто, кто хочет получить ответы на свои вопросы или хочет высказать свое мнение насчет чего-либо в данной тематике. Сайт включает в себя разделы по продаже авто, запчастям и товарам, отзывам, различным статьям, автопутешествиям, новостям и т.д. Форум CyberForum [35] - это объединение IT-специалистов, включающих программистов и системных администраторов. Основные разделы касаются программирования, веб-программирования, электроники и бытовой техники, софта, науки. Форум предназначен не только для продвинутых пользователей и специалистов, но и для новичков - раздел «электроника для начинающих». CyberForum содержит большое количество тем и обсуждений (более 2 млн [21]), которые касаются программирования и любых вопросов о программном обеспечении, и их может просмотреть абсолютно любой пользователь. На большинстве форумов нет обязательной регистрации, то есть пользователь сможет просмотреть любую тему и комментарии к ней, не создавая личный кабинет. Но для того, чтобы отправить сообщение другому пользователю, оставить комментарий под темой или создать свою, личный кабинет необходим. В связи с наличием тематики, на таких сайтах тоже можно найти людей, которые в дальнейшем смогут стать как собеседниками, так и консультантами по волнующим вопросам.

1.2.1.5 Сервисы для поиска людей по социальным сетям

Существуют также сервисы, которые позволяют искать людей в различных социальных сетях. Например, сервис VK.BARKOV.NET [2] позволяет искать профили, группы, посты с различными критериями в социальных сетях ВКонтакте и Одноклассники на выбор. Среди критериев для поиска конкретных пользователей используются те же критерии, что и при поиске пользователя непосредственно в социальной сети. В целом сервис имеет много преимуществ по сравнению с поиском внутри самой социальной сети. Например, сервис сможет найти все ссылки на стене пользователя или группы, сможет определить активность на странице конкретного пользователя или группы, т.е. предоставить список людей, которые когда-либо проявляли любую активность на стене (отметки «нравится»/публикация записи с ссылкой на другого пользователя или сообщество/комментарии). Сервис сможет собрать список авторов на стене конкретного сообщества, которые публиковали посты с выбранным ключевым словом, а также сами посты, сможет найти группы с такой же целевой аудиторией, как у указанной, собрать администраторов указанной группы и т.д.

Еще один популярный сервис, это Поиск людей компании Яндекс [5]. Яндекс ищет людей по 4 критериям: возраст, проживание, учеба, работа. Список социальных сетей для поиска состоит на данный момент из 11 позиций: Instagram, ВКонтакте, Одноклассники, Facebook, Foursquare, Google+, LinkedIn, LiveJournal, Twitter, Мой Круг, Мой Мир. Поиск можно производить сразу по всем социальным сетям, некоторые критерии оставить пустыми.

Среди сервисов для поиска людей по социальным сетям существуют те, которые ориентированы на поиск клиентов. Например, сервис Socparcing [4] анализирует социальные сети Facebook, ВКонтакте, Twitter и Одноклассники на наличие постов с ключевыми словами, которые может ввести пользователь. Также этот сервис предлагает выбрать сферу, в которой можно искать подходящие посты; дату публикации; страну, город и область; пол автора поста и желаемый диапазон его возраста. Чтобы просмотреть публикации, которые были выложены раньше 7-дней назад, нужно оформлять платную подписку.

1.2.2 Возможности приложений для поиска людей по интересам

1.2.2.1 Категории интересов и ключевые слова

Поиск людей по интересам осуществляется разными способами. Например, некоторые приложения используют в качестве интересов ключевые слова, которые вводятся пользователем вручную, другие приложения используют категории интересов (см. п. 1.2.1.2), которые пользователь в праве выбрать из предлагаемого приложением списка категорий.

1.2.2.2 Использование геопозиции

Некоторые приложения для поиска собеседника используют геопозицию пользователя. Использование геопозиции довольно популярно среди сервисов, ориентированных на знакомства, потому что некоторым людям удобно искать рядом с собой компанию для занятий спортом или танцами, а иногда возможно даже того, кто присоединится к перерыву на кофе или простой прогулке, что обычно требуется сделать в очень ограниченные сроки. Приложения защищают точное местоположение пользователя в силу конфиденциальности данных, показывая только примерную область на картах. Указанные функции есть в таких приложениях для знакомств как Badoo [1] или Tinder [52]. Однако на этом не ограничиваются все возможности, которые может предоставить данная технология. К примеру, французское приложение HAPPN [53] подыскивает подходящий профиль, основываясь на количестве пересечений людей в одних и тех же местах в реальном мире. Сервис анализирует маршрут пользователя и подбирает ему того, с кем он переходил дорогу в одном месте, с кем зашел в один магазин или проехал на одном и том же общественном транспорте.

1.2.2.3 Распознавание изображений

Для поиска результатов с подходящим под ключевые темы контентом, иногда используется распознавание изображений. Например, Facebook в своем поиске по записям пользователей использует такую технологию [24]. Это делает результаты более наполненными, а количество результатов таким образом увеличивается. Существуют приложения для поиска людей, которые используют данную технологию, но с другой целью. Сервисы Tinder и Badoo находят людей внутри своей системы по загруженной фотографии. То есть, если человек сделал фотографию кого-то в реальной жизни, он может загрузить ее в один из таких сервисов и найти страницу профиля этого человека, либо похожих на него. А приложения FindFace [15] и NameTag [57] по загруженной фотографии ищут профили в популярных социальных сетях ВКонтакте, Facebook и LinkedIn [44]. Такая функция вызывает неоднозначную реакцию со стороны общества, т.к. с одной стороны, такие программы могут распознавать лица прохожих без их разрешения, что является серьезным нарушением конфиденциальности. С другой стороны, распознавание лиц прохожих может сделать процесс знакомства гораздо проще, помочь лучше понимать людей, находящихся вокруг.

1.2.2.4 Доступность для российских пользователей

Сервисов, через которые можно найти подходящего человека (социальные сети общего характера, форумы, поисковые системы, сайты и мобильные приложения для знакомств), огромное количество, однако, не все они могут использоваться российскими пользователями. Приложение MeetIn, которое создано волонтерами и абсолютно бесплатно, создано для поиска людей в своем городе, а также просмотра событий и ближайших городских мероприятий, которые могут быть интересны. Чтобы найти людей и события, достаточно выбрать свой город из предоставленного списка. В списке городов нет российских, что делает невозможным использование данного приложения с целью найти людей или мероприятия в российских городах. Приложение для любителей бекона Sizzl недоступно на территории России. Это касается и Smacktive, приложения для ценителей спорта. Социальная сеть для профессионалов LinkedIn запрещена на территории России, поэтому потеряла большую часть российских пользователей [17].

1.2.2.5 Платформы приложений

Приложения, через которые можно найти людей по интересам, существуют на различных платформах. Один сервис может быть адаптирован как под мобильное приложение, так и под веб-приложение. Есть даже такие сервисы, которые на данный момент являются работоспособными только на платформе GoogleGlass (NameTag [57]). Как правило, сервисы используют несколько платформ, потому что тема поиска людей по интересам популярна среди всех пользователей, как ios так и android операционных систем, а также пользователей веб-приложений, версий ПК и мобильных версий в том числе. Это делается еще с целью предоставления пользователю выбора удобной для него платформы. Т.е. для некоторых, например, веб-сервис предпочтительнее мобильного приложения или наоборот.

В Приложении А представлено сравнение аналогов предлагаемого решения FriendFinder. Приложение FriendFinder не использует списки категорий интересов, вместо этого дает возможность вводить ключевые слова/ критерии вручную, что решает проблему их специфичности. Приложение не использует технологию поиска по геопозиции, т.к. данная задача этого не требует. Также приложение использует не только методы обработки текстовой информации, но и распознавание объектов на изображениях, что сделает поиск людей по интересам более полным. Приложение использует веб-платформу, потому что процесс автоматического подбора собеседников и, в частности, обработки информации может проходить не мгновенно, как этого ожидали бы пользователи мобильного приложения. Однако, приложение FriendFinder сэкономит пользователю время на отсеивание недостоверной информации с помощью предлагаемой цепочки друзей до найденного человека и на прохождение обязательной регистрации с заполнением анкеты для личного кабинета пользователя, а также поможет найти больше результатов за счёт использования информации из социальных сетей общего характера в силу их популярности. Приложение будет ориентироваться на российских пользователей и будет использовать методы обработки текстовой информации на основе морфологических словарей русского языка.

1.2.3 Проблемы при поиске людей

Существует несколько затруднений, которые препятствуют простому и однозначному поиску людей по каким-либо критериям.

1) Избыточность информации

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

2) Специфические критерии поиска

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

3) Приоритеты поиска

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

4) Регистрация в приложениях

Проблемой является и обязательная регистрация в большинстве приложений, которые ориентированы на знакомства. В таких приложениях регистрация может осуществляться через социальную сеть общего характера (Facebook, ВКонтакте), но все равно будет предложена анкета для заполнения нужной данному приложению информации. Это существенно замедляет процесс поиска нужного собеседника, особенно если для этой цели используется несколько приложений. В некоторых случаях используется платная регистрация (LinkYou [18]), что еще сильнее увеличивает время, которое требуется на поиск подходящего человека, или вообще препятствует его использованию.

В связи с обозначенными проблемами, можно сказать, что социальные сети общего характера больше всего подходят для решения задачи поиска людей по интересам. Такие социальные сети в настоящее время очень популярны и уже стали неотъемлемой частью жизни общества. По данным статьи «Социальные сети в 2018 году: глобальное исследование», опубликованной в блоге WebCanape [23], на таких площадках, в отличие от каких-либо других, пользователи гораздо охотнее делятся личными данными, профессиональными навыками, достижениями и интересами в целом. В сервисах есть возможность, во-первых, выстроить цепочку из своих друзей/знакомых для обозначения достоверной информации о найденном человеке, опрашивая каждого человека в этой цепочке, если потребуется. Во-вторых, в таком случае не будет требоваться дополнительной регистрации и заполнения дополнительных полей для составления анкеты в личном кабинете приложения, что существенно уменьшит время на процесс поиска людей по интересам в целом. Для обозначений самих критериев и интересов лучше использовать ручной ввод, это позволит избежать невозможности выбора необходимого критерия в случае его специфичности. Для получения открытой информации из социальных сетей общего характера существуют различные API и библиотеки [3], которые позволяют это сделать. Сама функция поиска внутри таких социальных сетей, которая предоставляется данными приложениями, не решает все перечисленные проблемы поиска людей по интересам, поэтому следует использовать API для получения открытой информации профилей из этих сервисов, затем обрабатывая и анализируя ее нужным образом.

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

1.3 Анализ социальных сетей

Анализ социальных сетей очень популярен начиная с конца 20 века после появления таких сервисов как Facebook, Twitter, Youtube и др [8]. Сначала он использовался для социальных исследований, теоретический компонент которых можно найти в работах социологов Эмиль Дюркгейм и Георг Зиммель [27]. Они уделяли внимание важности понимания развития отношений между участниками какого-либо социального взаимодействия. В начале ХХ века термин «социальная сеть» означал сложные наборы отношений (как межличностных, так и международных) между членами социальных систем [27]. Сейчас этим термином называется онлайн-сервис или веб-сайт, который представляет социальные взаимоотношения в сети Интернет [6].

1.3.1 Направления анализа социальных сетей

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

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

1.3.1.1 Структурное направление

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

1.3.1.2 Ресурсное направление

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

1.3.1.3 Нормативное направление

Нормативное направление исследует уровень доверия между участниками сети, правила и нормы, которые могут влиять на поведение участников. При таком подходе анализируются социальные роли участников, связанные с каким-либо ребром сети [8]. Это могут быть профессиональные взаимоотношения (руководитель-подчиненный), отношения друзей или, например, семьи. Индивидуальные и сетевые ресурсы участника, а точнее их комбинация, образует так называемый «сетевой капитал».

1.3.1.4 Динамическое направление

Динамическое направление рассматривает вопросы структурного изменения в социальной сети с течением времени [8]. Такой подход исследует, почему в социальной сети появляются и исчезают ребра или каковы изменения структуры сети при каких-либо внешних воздействиях.

1.3.2 Задачи анализа социальных сетей

Анализ социальных сетей используется для решения множества задач [27]: структурный анализ и анализ поведения связей для определения наиболее важных компонентов и связей сети; поиск и определение сообществ в социальных сетях - регионов сети, в которых взаимодействие между участниками проходит очень активно; анализ содержания социальных сетей (общей информации, текста, мультимедиа); анализ текстовой информации в социальной сети - ее специфики, содержания, контента; анализ расстановки тегов (отметок) пользователем к различным объектам; поиск экспертов и групп специалистов в каких-либо областях; конфиденциальность в социальных сетях; визуализация социальных сетей и т.д. Анализ социальных сетей помогает решать обширный круг задач, где могут применяться знания из абсолютно разных областей.

1.3.3 Сбор информации из социальных сетей

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

1.3.3.1 Информация в социальных сетях

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

1) Личная информация профиля

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

2) Стена профиля

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

3) Материалы профиля

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

4) Сообщества профиля

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

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

1.3.3.2 Проблемы при сборе информации из социальных сетей

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

1) Закрытость данных

Часто доступ к данным какого-либо профиля предоставляется только авторизированному пользователю. То есть, если пользователь не зарегестрирован в социальной сети и не авторизован в ней, то доступ к каким-либо данным может быть ограничен [25].

2) Ограничения методов API

Программные интерфейсы API социальных сетей имеют ограниченную функциональность. Некоторые методы могут использоваться только при получении определенных прав, некоторые методы по своей сути запрещают доступ к чему-либо [51]. Например, API социальной сети Одноклассники не позволяет получать список друзей пользователя.

3) Ограничение на количество запросов

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

4) Изменения в API

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

5) Блокировки пользователя и ограничения доступа

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

1.3.3.3 Методы сбора информации из социальной сети

1) API социальной сети

У социальных сетей часто есть программный интерфейс API, который позволяет получать необходимые данные с учетом некоторых ограничений (см. п. 1.3.3.1). Такие данные уже являются структурированными, и это упрощает их дальнейшую обработку [54]. Данные предоставляются в формате JSON или XML. К каждому API предоставляется полная документация со стороны сервиса. Также у большинства API социальных сетей есть различные библиотеки для работы с ними, написанные для разных языков программирования. В таких библиотеках нет необходимости, если количество используемых методов невелико, и их использование может только утяжелять решение.

2) Разбор веб-страниц социальных сетей

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

1.3.4 Обработка информации из социальных сетей

1.3.4.1 Обработка текстовой информации

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

1.3.4.2 Обработка изображений

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

1.4 Функциональные требования

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

1) Ввод критериев для поиска нужных людей

2) Ввод приоритетов на разделы поиска

3) Использование авторизации через социальную сеть

4) Аутентификация человека в социальной сети

5) Извлечение информации из открытых данных социальной сети

6) Ввод параметров-ограничителей на размер графа друзей

7) Построение дерева друзей пользователя

8) Корректный поиск по графу друзей

9) Предоставление списка найденных людей с цепочками друзей до них

1.5 Выводы

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

2) Проанализированы существующие приложения для поиска людей по интересам, и результаты анализа показали, что существует несколько типов таких приложений (стандартные поисковые системы, тематические и нетематичекие сервисы, ориентированные на поиск людей по интересам, социальные сети общего характера, форумы, а также сервисы для поиска людей по социальным сетям), приложения используют такие возможности поиска как категории интересов, технологии определения геопозиции и распознавания изображений. Также приложения существуют на различных платформах, таких как web, ios, android, google glass, и не все приложения могут использоваться на территории России.

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

4) Проанализированы типы информации в социальных сетях, методы ее сбора и проблемы, которые возникают при сборе информации, проанализирована обработка различных типов информации из социальных сетей.

5) Разработаны функциональные требования к программе.

Глава 2. Проектирование алгоритмов приложения

2.1 Основные алгоритмы приложения

2.1.1 Аутентификация и авторизация через социальную сеть

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

Во-вторых, вход через социальную сеть используется в качестве аутентификации и авторизации пользователя для выдачи соответствующих прав и доступа к необходимой информации для ее дальнейшего анализа. API таких социальных сетей, как Facebook, ВКонтакте, Одноклассники, Twitter, LinkedIn используют специальный протокол авторизации Oauth 2.0 для данных целей [8, 25].

2.1.2 Построение графа друзей

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

Граф является деревом, где корень - это авторизованный пользователь, узлы - это профили социальных сетей, которые находятся среди друзей профилей других узлов дерева. Таким образом, до любого узла можно выстроить путь от корня дерева [9]. В вершинах графа находятся объекты структуры данных, которая содержит в себе информацию о профиле социальной сети, ссылку на родительский узел и ссылки на дочерние узлы дерева (подробнее см. п. 2.3). Количество уровней дерева (либо максимальный возможный уровень узла) - это глубина графа, количество детей каждого узла - это ширина графа, вводимая пользователем. Граф является ациклическим и связанным, не содержит повторяющихся и пустых вершин, то есть вершин, в которых находится основная информация (имя, фамилия, ID - поля, не относящиеся к разделам профиля с возможными интересами) о закрытых, удаленных или заблокированных профилях социальной сети.

Информация об узлах дерева заполняется после отправки запросов к API выбранной социальной сети и получения JSON-ответов с данными необходимых разделов профилей. Граф строится до тех пор, пока его размер не будет соответствовать размеру, выбранному пользователем, либо до тех пор, пока не будут заполнены все возможные узлы. У некоторых узлов дерева количество дочерних узлов может быть меньше введенной ширины графа, если, например, количество доступных для обработки друзей соответствующего узлу профиля социальной сети меньше ширины графа - в таком случае берется количество доступных профилей друзей.


Подобные документы

  • Обзор рынка мобильных приложений, социальных сетей, аналогов. Обзор инструментов разработки: Android Studio, Microsoft visual С# 2012, PostgreeSQL, API Открытых данных Вологодской области, API Социальных сетей. Программный код, разработка интерфейса.

    дипломная работа [2,6 M], добавлен 10.07.2017

  • Методика интеграции аутентификации на web-сайте через социальные сети. Проектирование интерфейсов основных классов программ, осуществляющих взаимодействие между библиотеками OAuth социальных сетей Facebook и Twitter с использованием шифрования SSL.

    дипломная работа [3,0 M], добавлен 08.01.2014

  • Методы реализации алгоритмов сортировки и алгоритмов поиска на языках программирования высокого уровня. Программирование алгоритмов сортировки и поиска в рамках создаваемого программного средства на языке Delphi. Создание руководства пользователя.

    курсовая работа [1,7 M], добавлен 16.04.2012

  • Объектно-ориентированное программирование как новый подход к созданию приложений. Разработка Windows-приложения для поиска информации в хэш-таблице. Анализ использования хеширования для поиска данных и линейного зондирования для разрешения конфликтов.

    курсовая работа [915,5 K], добавлен 06.03.2016

  • Средства поиска информации в сети Интернет. Основные требования и методика поиска информации. Структура и характеристика поисковых сервисов. Глобальные поисковые машины WWW (World Wide Web). Планирование поиска и сбора информации в сети Интернет.

    реферат [32,2 K], добавлен 02.11.2010

  • Теоретические сведения об алгоритмах поиска подстроки в строке. Глобализация информации в сети Internet. Интеллектуальный поиск. Алгоритм последовательного (прямого) поиска, Рабина и их применение. Анализ алгоритмов. Реализация программного кода.

    курсовая работа [230,8 K], добавлен 12.02.2009

  • Виды социальных медиа. Критерии эффективности продвижения аккаунта в социальных сетях. Программная реализация алгоритма моделирования распространения информации в социальной сети "Twitter". Разработка клиентского приложения. Апробация интерфейса системы.

    дипломная работа [5,4 M], добавлен 08.02.2016

  • Изучение понятия социальных сетей. Классификация социальных сетей по тематике и по форме общения их аудитории: общетематические, специализированные, глобальные, мультимедийные, блоги, микроблоги. Facebook - одна из самых популярных социальных сетей.

    презентация [405,6 K], добавлен 05.06.2013

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

    автореферат [296,5 K], добавлен 31.01.2012

  • Количество социальных сетей в Интернете и численность их участников. Форумы и блоги как наиболее распространенные формы общения с помощью Web-технологий. Регистрация пользователей, учетные данные, сеанс работы в среде сети. Виды поиска информации.

    реферат [10,0 K], добавлен 13.02.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.