2. Предпосылки
Собственный штат корреспондентов —
дорого
Ручной сбор новостей со сторонних сайтов
— нужен штат контент-менеджеров
Пока новость пройдет через все инстанции
до публикации на сайте, она уже потеряет
актуальность
3. Задачи
Создать первый казахстанский агрегатор
новостей
Автоматический сбор новостей со сторонних
сайтов
Автоматическая группировка новостей в
сюжеты
Свести до минимума человеческое
присутствие
12. Пишем бэкенд
2. Подробнее о магии
Обработка даты и времени
Забираем полный текст с сайта—источника
Конвертируем все в UTF-8, чистим HTML
Определяем язык
Ищем связанные новости (сюжеты)
Сохраняем изображения
13. Пишем бэкенд
2.1. Обработка текста на казахском
Плохо не иметь в друзьях лингвиста
казахского языка
Переводим текст с казахского на русский
Работаем дальше как с обычным текстом на
русском
14. Пишем бэкенд
2.2. Обработка текста на русском
Разбиваем текст на слова и приводим
каждое к нормальной форме:
— располагавший → располагать
— подобными → подобный
— единицами → единица
Каждое нормализованное слово
стеммируем:
— располагать → располаг
— подобный → подобн
15. Пишем бэкенд
2.3. Поиск связанных и категории
Поисковая база — хранилище документов +
реализация TF/IDF с некоторыми
нормировками
Тематика новости определяется на
основании базы знаний и данных из
источника новости
16. Пишем бэкенд
3. Проблемы
Ложные срабатывания при поиске
связанных новостей
Несрабатывания при поиске связанных
новостей
Иногда сбоит кодировка.
17. Что есть на фронтенде?
Отображение новостей
Полнотекстовый поиск
Личный кабинет пользователя
Комментарии
Собственные информеры
18. Что достигнуто?
Обработка одной новости занимает около
одной минуты (+/- 30 секунд)
Вся работа автоматизирована и не требует
человеческого участия
Сайтом полностью может управлять один
человек