August 6, 2020

[Идея] Информационный кокон или PyNewszer – парсер всего

Привет, %username%! Мне давно не дает покоя идея собственного "персонального" агрегатора новостей. Ниже краткое описание самой идеи, а так же некоторых идей по реализации.

Делается набор парсеров под разные сайты – те которые интересны. Тут довольно просто и сложно одновременно:

  1. У системы должно быть несколько пользователей – под каждого свой профиль и свои интересы;
  2. Берется сайт (всеми любимый Habr и что-нибудь еще на вкус и цвет);
  3. С сайта вытаскиваем sitemap.xml;
  4. Вытаскиваются все ссылки на статьи/новости/etc;
  5. Ссылки проверяются на уникальность и складываются в БД для истории;
  6. Новым (свежеспаршенным) ссылкам ставится флаг NEW, ссылки которые уже скачаны помечаются флагом PARSED;
  7. Дальше ссылки с флагом NEW берутся из БД и скармливаются собственно парсеру, который отвечает за парсинг данного сайта;
  8. Парсер “данного сайта”, вытаскивает содержимое статьи – текст, а так же дополнительную информацию – дата публикации, автор, хзчтоеще;
  9. Дальше спаршеное содержимое кладется в БД в табличку для данного ресурса. Но в идеале унифицировать статьи при парсинге и складывать их в одну таблицу с одинаковым набором полей;
  10. После этого на сцене появляется какая-то (сферическая в вакууме) админка;
  11. В админка собственно можно посмотреть состояние задач парсинга – сколько записано в БД, сколько не обработано ссылок, еще что-то;
  12. Все статьи доступны на чтение из админки, редактировать их нельзя, а вот редактировать метаинформацию – можно и нужно, кроме той, которую парсер вытащил из ссылки (например добавлять новые тэги);
  13. Другим большим блоком должна выступать нейронная сеть – классификатор;
  14. Нейронка-классификатор должна обращаясь к данным в БД оценивать насколько интересна будет та или иная статья конечному потребителю – мне =) ;

Тут уже начинается магия, о которой сложно что-либо сказать внятное, т.к. в эти дебри я еще не погружался достаточно глубоко. Если пробежаться чисто теоретически, то можно получить что-то такое: берется любая предобученная на русскоязычных текстах модель сети и ей скармливаются все статьи.

Дообучение нейросети – очень нужно. Необходимо иметь возможность указать ей (нейросети/дуре_железной) на следующее: конкретная показанная статья (присланная в тележеньку, скинутая на почту, доставленная до меня любым другим путём) является отличной/шлаком, да так, чтобы данная информация доходила до БД/админки/нейросети, а та оценка которую я вернул – учитывалась в дальнейшем.

По сути всё выше описанное является попыткой сформировать информационный кокон вокруг себя – отпадёт необходимость смотреть хабры/nplus1/etc, за меня это будет делать компьютер. А я лишь буду (и то – первое время только) говорить: “Нравится”/“Не нравится”, а в дальнейшем (надеюсь) сеть научится это понимать без моего участия.

Собственно на этом всё. Если у тебя есть идеи/мысли/замечания/предложения – приходи в чатик моего канала и озвучь! Я за любой кипиш, кроме голодовки!

Реализация парсера для Habr уже описывалась тут.

Репа доступна на моем Github, а желающие стать контрибьюторами – так же велкам в чат.

На этом точно всё.

Neural network from www.pixel4k.com