Skip to content

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

License

Notifications You must be signed in to change notification settings

LambdaVTB/nlp-workbench

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lambda() - MORE.Tech 4.0 - nlp-workbench

Репозиторий для разработки и апробации различных моделей и подходов к обработке текста. Здесь собраны различные ноутбуки, которые можно использовать как примеры.

Основные репозитории проекта

Оглавление

Структура репозитория

  • scripts - папка с классами и скриптами, готовыми к использованию в проде
  • notebooks - папка с ноутбуками, в которых производилась разработка скриптов и где продемонстрирован их функционал
  • models - файлы моделей и векторайзеров
  • artifacts - срезы данных, которые можно использовать для тестирования скриптов

Используемые библиотеки

Разработанные скрипты

  • Скрипт для NER-парсинга (Named Entity Recognition) заголовков. Модифицирован, чтобы так же выделять и простые существительные от других слов. Используется в проде. Используется в get_trends.py.
  • Скрипт-попытка определения семантической близости заголовков с помощью нейронных моделей. Не используется в проде.
  • Скрипт для парсинга RSS-лент с помощью feedparser. Немного адаптирован, чтобы автоматически добавлять тег категории для некоторых источников. Разработан так, чтобы было просто добавить новые источники. Почему RSS? Потому что это самый простой способ получить новости с сайтов, которые не предоставляют API. Используется в get_trends.py.
  • Скрипт для получения топов тем по входящему датафрейму с новостями. При использовании на датафрейме ограниченном за последнее время, получаем тренды. Также реализована функция для получения трендов в рамках набора тегов. Это позволяет делать персональные тренды для пользователей. В прототипе - используется при персонализации трендов для ролей, а в перспективе можно использовать для персонализации трендов для пользователей на основе их предпочтений по тегам.
  • то же самое, что и scripts/get_trends.py, однако здесь так же используется TF-IDF. Это замедляет работу скрипта в несколько раз, однако тренды получаются значительно точнее. (см. пример ниже)

Алгоритм

  1. Если хотим получить тренды по тегам, то фильтруем датафрейм по тегам, то же касатеся временных периодов
  2. Для каждой новости парсим заголовок и получаем список сущностей (NER-парсинг), и список существительных (NER-парсинг + регулярки), по обученной TF-IDF на заголовках новостей за последний период определяем самые важные слова, так же добавляем их.
  3. Производим лемматизацию, чтобы различные формы слов при подсчете считались одинаковыми.
  4. Считаем количество слов и возвращаем в качестве словаря список трендов. По словарю можно построить красивые графики. Стоит так же отметить, что список сущностей включает в себя классификацию сущностей на организации, людей и места, а так же общие темы по TF-IDF. См. более подробные прмеры работы в README_whys.md

Остались вопросы?

  • Дополнительная информация по нашим архитектурным и алгоритмическим решениям представлена в Почемучках, а если что-то не работает, то обращайтесь к нам! Мы всегда рады помочь и объяснить.

lambda() - это мы

  • Лебедева Татьяна - мобильный разработчик
  • Голубев Егор - бекенд разработчик
  • Тампио Илья - ML разработчик
  • Денис Лахтионов - дизайнер
  • Егор Смурыгин - менеджер

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published