ВВЕДЕНИЕ 4
ГЛОССАРИЙ 6
1. ПОСТАНОВКА ЗАДАЧИ 10
1.1. Цель работы 10
1.2. Задачи 10
1.3. Принцип работы приложения 11
2. УСТРОЙСТВО НОВОСТНОГО АГРЕГАТОРА 14
2.1. Принцип работы новостных агрегаторов 14
2.2. Преимущества агрегаторов новостей 16
2.3. Агрегатор новостей как мобильное приложение 16
3. MICROSOFT AZURE ПЛАТФОРМА ДЛЯ ПОСТРОЕНИЯ СИСТЕМЫ 18
3.1. Azure Mobile App - решение для мобильных приложений 19
3.2. Rest архитектура 20
3.3. JSON как язык для передачи данных между сервером и клиентом. 20
3.4. База данных SQL Azure 22
3.4.1. Устройство базы данных в Microsoft Azure 22
3.4.2 Entity Framework - работа с базой данных 23
4. ПАРСИНГ ДАННЫХ 27
4.1. Парсинг RSS и Atom каналов 27
4.2. Парсинг HTML 28
5. ПРИМЕНЕНИЕ МАШИННОГО ОБУЧЕНИЯ 30
5.1. Microsoft Cognitive Services 31
6. РАЗРАБОТКА НОВОСТНОГО АГРЕГАТОРА - KZNNEWS 33
6.1. Начало разработки 33
6.2. Создание моделей и базы данных 34
6.3 Пользовательская регистрация, аутентификация и авторизация. . 35
6.4 Реализация парсера новостного контента 37
6.5. Добавление алгоритмов машинного обучения 39
6.6. Реализация необходимых API контроллеров 41
6.7. Настройка концентратора Push-уведомлений 42
6.8. Проблемы, с которыми пришлось столкнуться 43
ЗАКЛЮЧЕНИЕ 46
СПИСОК ЛИТЕРАТУРЫ 48
ОБЗОР ЛИТЕРАТУРЫ 50
ПРИЛОЖЕНИЕ 63
Исходный код
В современном мире существует актуальная проблема, связанная с избыточностью информации, которую возможно решить с применением информационных технологий.
На сегодняшний день предлагается множество сервисов, которые частично решают эту проблему. Многие новостные порталы ввели каталогизацию новостей по различным категориям, имеют функцию поиска по словам и фильтрацию по геолокации. А новостные агрегаторы предлагают подбор статей, по встречающимся словам, совершают подбор по множеству порталов одновременно.
На данный момент при разработке таких сервисов упор делается на технологии поиска и фильтрации, а главными показателями являются дата и популярность статьи. Но при таком подходе очень часто поиск имеет низкую точность попадания в запрос. Не было предложено ни одного сервиса с полной автоматизацией процесса по поиску ключевых (для пользователя) новостей, которые могли бы существенно уменьшить время подбора и повысить точность совпадения с интересами пользователя.
В рамках данной научной работы, необходимо разобраться с процессом создания агрегатора новостей, возможностями применения новых решений и технологий при разработке алгоритмов поиска и фильтрации новостного контента, а также при построении системы взаимодействия, в первую очередь с клиентскими приложениями на мобильных устройствах, приблизиться к максимально точному попаданию в запросы и интересы пользователя. В работе применяются технологии машинного обучения для выявления подробной информации о пользователе и последующего поиска статей, связанных с его интересами, а также алгоритмы автоматического понимания текстов, в частности алгоритмы синтаксического и семантического анализа для выявления ключевой информации в статье.
Сам новостной агрегатор представляет собой систему подбора ключевых статей из списка источников. Основное отличие от новостных порталов в том, что агрегатор не имеет собственных статей, а лишь заимствует их. Зачастую имеет большую, чем портал, точность попадания в запросы и функционал.
Разработка новостного агрегатора сводится к решению задач, связанных именно с подбором статей по различным ключевым запросам, а значит, к созданию технологии, позволяющей совершать поиск по базам различных новостных порталов, фильтрацию найденных результатов и отображению их в удобном формате для пользователя.
Безусловно, агрегатор новостей является достойным инструментом, который помогает пользователю экономить немало времени. Так как обычно, имеет понятный и доступный интерфейс, необходимые функции для поиска и фильтрации новостей.
Но, в результате исследований выяснилось, что зачастую, агрегаторы, имеют реализацию в форме веб сайта, гораздо реже в форме мобильных приложений. И что более важно, не позволяют автоматизировать подбор контента для пользователя или же как-то улучшить его восприятие. Поэтому человеку всё так же необходимо тратить время на поиск и прочтение необходимой информации.
В рамках данной дипломной работы, была разработана серверная часть клиент-серверной системы, которая должна позволять решить данную проблему. Были исследованы новые инструменты, которые могли улучшить или же облегчить разработку данной системы. В числе таких инструментов: служба Azure Mobile App, позволяющая при разработке мобильных приложений гораздо реже задумываться о второстепенных функциях (авторизация, push-уведомления, работа с базой данных) и больше уделять ресурсов на разработку основного функционала; библиотеки, предоставляющие движок для парсинга RSS и HTML контента; а также очень важные для данной разработки API Microsoft Cognitive Services, которые как- раз и позволяют говорить о персонифицированности данного агрегатора.
На данный момент продукт полностью готов к обслуживанию пользователей. И при всё при этом имеется много возможностей для его дальнейшей разработки и улучшения. К примеру, на данный момент никак не обрабатывается видео контент новостей, который также мог бы проходить модерацию на взрослое содержание. Кроме присутствующих алгоритмов подбора контента, возможно реализовать такие как: группировка новостей по подобному контенту, анализ контента на чрезмерную эмоциональную окраску и это далеко не всё. Из функций можно было бы выделить: введение комментариев к новостям, улучшение структуры «пользовательского кабинета», введение функций тех. поддержки, голосовое управление, а также звуковое воспроизведение новости, которое позволит предлагать различные способы восприятия информации.
1. Как новые медиа изменили журналистику. / А. Амзин [и др.]; под ред. С. Балмаевой, М. Лукиной. — Екатеринбург: Гуманитарный университет, 2016. — 304 с.
2. Электронные версии печатных СМИ. // Университетская книга — 2012. — №1. — С. 26-35.
3. Дакина, Ю. М. Машинная агрегация новостей и реакция на нее информационного пространства. / Ю. М. Дакина // Вестник московского университета. Серия 10: журналистика. — 2009. — №2. — С. 67-80.
4. Шагдарова, Б. Б. Новостные агрегаторы в интернете. / Б. Б. Шагдарова // Вестник бурятского государственного университета. Язык. Литература. Культура. — 2017. — №1. — С. 66-76.
5. Земсков, А. И. Что такое RSS? / А. И. Земсков // Научные и технические библиотеки. — 2007. — №6. — С. 4.
6. Носков, В. И. Новостной агрегатор, проект создания. / В. И. Носков // Сборник материалов VIII Всероссийской, научно-практической конференции ученых с международным участием «Россия Молодая»: сб. тр. науч.-практич. конф. — Кемерово: КузГТУ, 2016. — С. 195-198.
7. Глушко, М. П. Разработка клиент-серверного приложения «Новостной агрегатор». / М. П. Глушко, Е. М. Березовская // Молодежная наука в XXI веке: традиции, инновации, векторы развития: сб. тр. науч.-иссл. конф. — Самара-Оренбург, 2017. — С. 195-196.
8. Короленко, И. А. Проектирование информационной системы новостного агрегатора. / И. А. Короленко // Информационные и измерительные системы и технологии: сб. тр. науч. -тех. конф. — Новочеркасск, 2016. — С. 47-53.
9. Бочаров, М. С. Разработка сервис-ориентированной архитектуры для новостного агрегатора. / М. С. Бочаров, Ю. Н. Белова // Инновационные технологии в общественном питании: сб. тр. науч.- практич. конф. — Москва: МГУПП, 2015. — С. 26-28.
10. Носков, В. И. Новостной агрегатор THERATENEWS. / В. И. Носков // Современные тенденции и инновации в науке и производстве: сб. тр. науч.-практич. конф. — Междуреченск, 2016. — С. 236-237.
11. Кутуков, Д. С. Применение методов кластеризации для обработки новостного потока. / Д. С. Кутуков // Технические науки: проблемы и перспективы: сб. тр. науч. конф. — Санкт-Петербург, 2011. — С. 77-83.
12. Гурин, Н. И. Алгоритм подготовки текста обучающей
информационной системы к семантическому анализу. / Н. И. Гурин, Я. А. Жук // Труды БГТУ. Серия 3: Физико-математические науки и информатика. — 2017. — №2(200). — С. 105-109.
13. Мочалова, А. В. Алгоритм семантического анализа текста,
основанный на базовых семантических шаблонах с удалением. / А. В. Мочалова // Научно-технический вестник информационных технологий, механики и оптики. — 2014. — №5(93). — С. 126-132.
14. Галимов, Р. Г. Основы алгоритмов машинного обучения - обучение с учителем. / Р. Г. Галимов // Аллея науки. — 2017. — №14. — С. 810-817.
15. Галимов, Р. Г. Основы алгоритмов машинного обучения - обучение без учителя. / Р. Г. Галимов // Аллея науки. — 2017. — №14. — С. 807-809.
16. Мудранов, А. М. Разработка мобильного приложения в XAMARIN. / А. М. Мудранов, Е. В. Крахоткина // Современные технологии: актуальные вопросы, достижения и инновации: сб. тр. науч.-практич. конф. — Пенза, 2017. — С. 95-98.