Введение 3
1. Постановка задачи 5
1.1. Цель работы: 5
1.2. Выбор технологий для создания приложения 6
1.3. Задачи 8
1.4. Краткий обзор работы приложения: 10
2. Устройство новостного агрегатора 12
2.1. Принцип работы новостных агрегаторов 12
2.2. Преимущества агрегаторов новостей 13
2.3. Агрегатор новостей как мобильное приложение 14
3. Xamarin 15
3.1. Azure Mobile App - решение для мобильных приложений 18
3.2. Rest архитектура 19
3.3 Rest для Xamarin приложений 21
3.4 Использование Rest для построения Web сервисов 22
3.5 Контроллеры 23
3.5 Entity 24
3.6 LINQ 27
3.7. JSON как язык для передачи данных между сервером и клиентом 29
4. Парсинг данных 31
4.1. Парсинг HTML 31
5. Машинное обучение 32
6. Разработка новостного агрегатора 34
6.1. Начало разработки 34
6.2. Создание моделей и базы данных 35
6.3 Пользовательская регистрация, аутентификация и авторизация 37
6.4 Разработка пользовательского интерфейса 38
6.5 Работа с SQLite 40
6.6 Взаимодействие с сервером 41
6.7. Настройка концентратора Push-уведомлений 43
6.5. Добавление алгоритмов машинного обучения 45
Заключение 47
Список используемой литературы 49
Приложение
В современном мире, благодаря технологическому прогрессу, огромную часть всей информации человек получает из сети интернет. В связи с быстрым развитием IT - индустрии, в сети доступны громадные объемы различной информации на любой вкус. Современный темп и образ жизни вынуждает человека постоянно иметь самые новые, самые важные новости из какой - либо области, которая его интересует. В связи с множественными сервисами, на которых можно узнать о новостях, а также неизмеримыми объемами информации, которую можно извлечь из различных источников, в мире все более актуальной проблемой становится проблема избыточности информации. Данная проблема критична, но решаема. Одним из способов решения возникшей проблемы являются те самые информационные технологии, из-за которых и появилась эта проблема.
Необходимо отметить, что данная проблема известна, и она уже частично решается. Например, уже существует множество новостных порталов, которые фильтруют имеющиеся новости по различным категориям, критериям. Также начали появляться новостные агрегаторы, которые позволяют получать новостной контент из различных источников, в большинстве случаев, новостными агрегаторами являются мобильные приложения, в некоторых из которых реализованы дополнительные функции, такие как поиск новостей по геолокации пользователя, то есть приложение способно предоставлять новости, связанные с той местностью, где в данный момент находится пользователь.
Может показаться, что описанная проблема выше уже имеет решение, но все не совсем так как хотелось бы. Несмотря на то, что агрегаторы значительно выигрывают по отношению к обычным новостным порталам, у них есть и свои минусы. Проблема состоит именно в избыточности информацией, то есть когда пользователь пытается найти какой - либо новостной контент, который ему интересен, приходится пропустить значительное количество новостей и найти наконец то, что действительно интересно определенному человеку. Многие новостные агрегаторы устроены достаточно примитивно, предоставляя новостной контент, главным критерием является дата публикации стать и ее популярность, а выборки новостей, подстраивающаяся под каждого пользователя индивидуально, нет, поэтому показатель точности попадания по интересам пользователя у данных сервисов достаточно низкий.
Целью данной работы стало создание персонифицированного агрегаторы новостей, который «подстраивается» под каждого пользователя и выдает тот новостной контент, который действительно будет интересен и полезен читателям. В ходе работы необходимо было разобраться с принципами работы новостных агрегаторов, проанализировать их и оптимизировать, путем использования современных технологий. Так, например, в работе используется семантический анализ текста, для выявления ключевой информации в статье и судя по оценке пользователя (нравится или не нравится предложенная статься) система обучается для дальнейшей поставки новостей пользователю.
Разработка новостного агрегатора сводится к решению задач, связанных именно с подбором статей по различным ключевым запросам, а значит, к созданию технологии, позволяющей совершать поиск по базам различных новостных порталов, фильтрацию найденных результатов и отображению их в удобном формате для пользователя.
В рамках данной квалификационной работы был проведен анализ проблемы, которая связана с избыточностью информации в современном мире, а также было предложено решение данной проблемы, путем разработки персонифицированного агрегатора новостей, который подстраивается под определенного пользователя, под его интересы, фильтрует множество новостей и поставляет только то, что действительно интересно пользователю.
В результате исследований существующих сервисов, было выделено, что многие из них работают не на персонификацию, а просто собирают статьи из различных источников, при этом основываясь в первую очередь на популярности статьи и дате ее публикации. Также необходимо отметить, что имеется множество агрегаторов, которые реализованы в качестве web приложений, но проанализировав современный темп жизни, образ жизни и популярность мобильных устройств, становится очевидно, что агрегаторы новостей в реализации мобильного приложения пользуются гораздо большим интересом, чем web аналоги. Также это связано с некоторыми возможностями, которые доступны в мобильных приложения, например, кэширование, геолокация, взаимодействие с сенсорами устройства и прочие.
В результате данной работы, была достигнута цель создания кроссплатформенного клиент - серверного приложения персонифицированный агрегатор новостей с применением современных инструментов разработки. Введение собственных аккаунтов, использование сервисов API Microsoft Cognitive Services, возможность отложить понравившуюся новость и многое другое указывает на персонифицированность данного приложения.
На данный момент продукт полностью готов к обслуживанию пользователей. В связи с тем, что проблема, описанная в данной работе, очень актуальная и требует постоянного контроля, ввиду развития технологий, данное приложение имеет возможности для дальнейшей разработки и улучшения. Так, к примеру, на данный момент никак не обрабатывается видео контент новостей, который также мог бы проходить модерацию на содержание. Также возможно добавления некоторых функций, такие как голосовое управление и автоматическое чтение новостей. Данные функции будут иметь большую популярность, так как не всегда имеется возможность чтения новостей, а с помощью такого функционала, пользователь сможет выбрать удобный для себя вариант восприятия информации.
1. Как новые медиа изменили журналистику. / А. Амзин [и др.]; под ред. С. Балмаевой, М. Лукиной. — Екатеринбург: Гуманитарный университет, 2016.
— 304 с.
2. Дакина, Ю. М. Машинная агрегация новостей и реакция на нее информационного пространства. / Ю. М. Дакина // Вестник московского университета. Серия 10: журналистика. — 2009. — №2. — С. 67-80.
3. Шагдарова, Б. Б. Новостные агрегаторы в интернете. / Б. Б. Шагдарова // Вестник бурятского государственного университета. Язык. Литература. Культура. — 2017. — №1. — С. 66-76.
4. Земсков, А. И. Что такое RSS? / А. И. Земсков // Научные и технические библиотеки. — 2007. — №6. — С. 4.
5. Глушко, М. П. Разработка клиент-серверного приложения «Новостной агрегатор». / М. П. Глушко, Е. М. Березовская // Молодежная наука в XXI веке: традиции, инновации, векторы развития: сб. тр. науч. -иссл. конф. — Самара- Оренбург, 2017. — С. 195-196.
6. Носков, В. И. Новостной агрегатор THERATENEWS. / В. И. Носков // Современные тенденции и инновации в науке и производстве: сб. тр. науч.- практич. конф. — Междуреченск, 2016. — С. 236-237.
7. Гурин, Н. И. Алгоритм подготовки текста обучающей информационной системы к семантическому анализу. / Н. И. Гурин, Я. А. Жук // Труды БГТУ. Серия 3: Физико-математические науки и информатика. — 2017. — №2(200).— С. 105-109.
8. Мудранов, А. М. Разработка мобильного приложения в XAMARIN. / А. М. Мудранов, Е. В. Крахоткина // Современные технологии: актуальные вопросы, достижения и инновации: сб. тр. науч.-практич. конф. — Пенза, 2017. — С. 95-98.