Пишем свой сервис-агрегатор: архитектура, подводные...

19
Пишем сво сервис-агрегатор: архитектура, подводные камни Вершинин Никита

Transcript of Пишем свой сервис-агрегатор: архитектура, подводные...

Page 1: Пишем свой сервис-агрегатор: архитектура, подводные камни

Пишем свои сервис-агрегатор: архитектура, подводные камни

Вершинин Никита

Page 2: Пишем свой сервис-агрегатор: архитектура, подводные камни

Предпосылки

Собственныи штат корреспондентов — дорого

Ручнои сбор новостеи со сторонних саитов — нужен штат контент-менеджеров

Пока новость проидет через все инстанции до публикации на саите, она уже потеряет актуальность

Page 3: Пишем свой сервис-агрегатор: архитектура, подводные камни

Задачи

Создать первыи казахстанскии агрегатор новостеи

Автоматическии сбор новостеи со сторонних саитов

Автоматическая группировка новостеи в сюжеты

Свести до минимума человеческое присутствие

Page 4: Пишем свой сервис-агрегатор: архитектура, подводные камни

Реализация

Проблемы в источниках Архитектура сервиса Пишем бэкенд Что есть на фронтенде?

Page 5: Пишем свой сервис-агрегатор: архитектура, подводные камни

Разные форматы

Page 6: Пишем свой сервис-агрегатор: архитектура, подводные камни

Разные кодировки

Page 7: Пишем свой сервис-агрегатор: архитектура, подводные камни

Разные форматы даты

Page 8: Пишем свой сервис-агрегатор: архитектура, подводные камни

Невалидныи код

Page 9: Пишем свой сервис-агрегатор: архитектура, подводные камни

Архитектура сервиса

Page 10: Пишем свой сервис-агрегатор: архитектура, подводные камни

Пишем бэкенд0. Собираем данные

Page 11: Пишем свой сервис-агрегатор: архитектура, подводные камни

Пишем бэкенд1. Обрабатываем очередь

Page 12: Пишем свой сервис-агрегатор: архитектура, подводные камни

Пишем бэкенд2. Подробнее о магии

Обработка даты и времени Забираем полныи текст с саита—

источника Конвертируем все в UTF-8, чистим

HTML Определяем язык Ищем связанные новости (сюжеты) Сохраняем изображения

Page 13: Пишем свой сервис-агрегатор: архитектура, подводные камни

Пишем бэкенд2.1. Обработка текста на казахском

Плохо не иметь в друзьях лингвиста казахского языка

Переводим текст с казахского на русскии

Работаем дальше как с обычным текстом на русском

Page 14: Пишем свой сервис-агрегатор: архитектура, подводные камни

Пишем бэкенд2.2. Обработка текста на русском

Разбиваем текст на слова и приводим каждое к нормальнои форме:— располагавшии → располагать— подобными → подобныи— единицами → единица

Каждое нормализованное слово стеммируем:— располагать → располаг— подобныи → подобн

Page 15: Пишем свой сервис-агрегатор: архитектура, подводные камни

Пишем бэкенд2.3. Поиск связанных и категории

Поисковая база — хранилище документов + реализация TF/IDF с некоторыми нормировками

Тематика новости определяется на основании базы знании и данных из источника новости

Page 16: Пишем свой сервис-агрегатор: архитектура, подводные камни

Пишем бэкенд3. Проблемы

Ложные срабатывания при поиске связанных новостеи

Несрабатывания при поиске связанных новостеи

Иногда сбоит кодировка.

Page 17: Пишем свой сервис-агрегатор: архитектура, подводные камни

Что есть на фронтенде?

Отображение новостеи Полнотекстовыи поиск Личныи кабинет пользователя Комментарии Собственные информеры

Page 18: Пишем свой сервис-агрегатор: архитектура, подводные камни

Что достигнуто?

Обработка однои новости занимает около однои минуты (+/- 30 секунд)

Вся работа автоматизирована и не требует человеческого участия

Саитом полностью может управлять один человек

Page 19: Пишем свой сервис-агрегатор: архитектура, подводные камни

Вопросы?

Вершинин Никита[email protected]

http://endeveit.net/http://thenews.kz/