[Идея] Информационный кокон или PyNewszer – парсер всего
Привет, %username%
! Мне давно не дает покоя идея собственного "персонального" агрегатора новостей. Ниже краткое описание самой идеи, а так же некоторых идей по реализации.
Делается набор парсеров под разные сайты – те которые интересны. Тут довольно просто и сложно одновременно:
- У системы должно быть несколько пользователей – под каждого свой профиль и свои интересы;
- Берется сайт (всеми любимый Habr и что-нибудь еще на вкус и цвет);
- С сайта вытаскиваем
sitemap.xml
; - Вытаскиваются все ссылки на статьи/новости/etc;
- Ссылки проверяются на уникальность и складываются в БД для истории;
- Новым (свежеспаршенным) ссылкам ставится флаг
NEW
, ссылки которые уже скачаны помечаются флагомPARSED
; - Дальше ссылки с флагом
NEW
берутся из БД и скармливаются собственно парсеру, который отвечает за парсинг данного сайта; - Парсер “данного сайта”, вытаскивает содержимое статьи – текст, а так же дополнительную информацию – дата публикации, автор, хзчтоеще;
- Дальше спаршеное содержимое кладется в БД в табличку для данного ресурса. Но в идеале унифицировать статьи при парсинге и складывать их в одну таблицу с одинаковым набором полей;
- После этого на сцене появляется какая-то (сферическая в вакууме) админка;
- В админка собственно можно посмотреть состояние задач парсинга – сколько записано в БД, сколько не обработано ссылок, еще что-то;
- Все статьи доступны на чтение из админки, редактировать их нельзя, а вот редактировать метаинформацию – можно и нужно, кроме той, которую парсер вытащил из ссылки (например добавлять новые тэги);
- Другим большим блоком должна выступать нейронная сеть – классификатор;
- Нейронка-классификатор должна обращаясь к данным в БД оценивать насколько интересна будет та или иная статья конечному потребителю – мне =) ;
Тут уже начинается магия, о которой сложно что-либо сказать внятное, т.к. в эти дебри я еще не погружался достаточно глубоко. Если пробежаться чисто теоретически, то можно получить что-то такое: берется любая предобученная на русскоязычных текстах модель сети и ей скармливаются все статьи.
Дообучение нейросети – очень нужно. Необходимо иметь возможность указать ей (нейросети/дуре_железной) на следующее: конкретная показанная статья (присланная в тележеньку, скинутая на почту, доставленная до меня любым другим путём) является отличной/шлаком, да так, чтобы данная информация доходила до БД/админки/нейросети, а та оценка которую я вернул – учитывалась в дальнейшем.
По сути всё выше описанное является попыткой сформировать информационный кокон вокруг себя – отпадёт необходимость смотреть хабры/nplus1/etc, за меня это будет делать компьютер. А я лишь буду (и то – первое время только) говорить: “Нравится”/“Не нравится”, а в дальнейшем (надеюсь) сеть научится это понимать без моего участия.
Собственно на этом всё. Если у тебя есть идеи/мысли/замечания/предложения – приходи в чатик моего канала и озвучь! Я за любой кипиш, кроме голодовки!
Реализация парсера для Habr уже описывалась тут.
Репа доступна на моем Github, а желающие стать контрибьюторами – так же велкам в чат.