Помнится, у меня был проект, который позволял собирать аналитику по тг каналу и постам. Когда я только о нем написал, я говорил, что хотел бы встроить нейронку, которая бы улучшала аналитику и давала некоторые корректировки по постам в канале, чтобы было больше охватов и т.п.
Покопавшись в этой все истории, большая часть из них сходилась на готовых решениях по типу n8n или ботов. С одной стороны, все это предельно понятно, интерфейсы, документация, видео, но это было настолько не интересно, что я бросил эту идею. В большей части вопросов, мне главное разобраться, как что-то работает “под капотом” и как это можно использовать для себя. Таким образом я пришел к машинному обучению.
Обучившись основам я стал много времени уделять практики работы с данными и в дальнейшем обучении разных моделей. На самом деле, на python есть множество библиотек с готовыми алгоритмами, которые сохраняют время при написании проекта, но перед тем, как пользоваться такими библиотеками, мне было необходимо научиться понимать формулы, их читать и потом преобразовывать в код, чтобы понять, зачем и по какому принципу я буду использовать тот или иной алгоритм из библиотек python.
Написав пару тестовых ML проектов, пришел в тому, что уже надо бы написать такой проект, который бы закрыл мой вопрос. Уже вернувшись к своему проекту, понимания, как использовать ML в данном проекте, поднялся другой вопрос - набор датасетов и разметка данных. Прикинув время, свой труд и необходимость рынка получать аналитику в целом по подобным вопросам, я понял, что лучше придумать что-то другое.
- Разметка данных - очень много ест времени и сил, а качество может стоять под вопросом - Алгоритмы для данного вопроса - не очень-то и нужны исходя из паттернов ведения тг канала
Пришлось думать, какой функционал можно добавить. Обратил внимание, что у меня часто скапливается большое количество постов в других каналах. С одной стороны там могут быть интересные посты, с другой - не очень, а тратить время на 50-100 непрочитанных постов только в одном канале, не очень хотелось. Хотелось получать именно по теме, которая меня интересует. Таким образом, я написал проект, который парсит посты из телеграм каналов, отделяет спам и рекламу, классифицирует посты на темы и строит рекомендации.
В общем и целом, NPL проект. Собрал подходящие датасеты из Kaggle, как для спама, так и для классификации текста, стал подготавливать данные перед обучением модели. Правда, при разработке своей модели и ее обучении, очень остро стоит вопрос качества датасетов и разметки данных, но это можно перетерпеть и что-то придумать. К тому же, как ни крути, больше всего датасетов на английском языке, чем на русском, что может сильно повлиять на весь процесс.
Суть проекта.
1. Пользователь заходит в канал, который хочет парсить, выбирает пост, откуда будут парситься посты
2. При парсинге, первая модель отделяет рекламу/спам (библиотека CatBoost), а вторая модель классифицирует посты на темы(sklearn Логистическая регрессия)
3. Пользователь заходит в бота, нажимает на кнопку “Читать ленту” , выбирает категорию и промежуток времени, когда выходили посты
4. После этого, пользователю выдается сообщение от бота с постом и кнопками, где он может переключать посты, фильтры, или выбрать пост, по которому хочет получить рекомендации в виде других постов. Здесь уже работает третья модель, которая отвечает за рекомендации
Хотя, не думаю, что система рекомендаций подходит под этот проект, но решил попробовать им попользоваться. В общем и целом - прикольно, листать ленту по определенным целям, а потом переключить на рекомендации.
С каждой моделью пришлось повозиться, учитывая специфику разнообразия контент в тг. Еще пока что думаю, писать об этом или нет 🥸