Как я увлёкся NLP и кластеризацией чатов

Я чёт увлёкся темой обработки естественного языка (NLP). Вообще мне надо было автоматизировать классификацию текста веб-страничек по рубрикам, но потом всё как-то завертелось и вот я уже погрузился в кластеризацию сообщений в Telegram-чатах…

Вот, например, визуализация для man smart-home-chat: близкие по смыслу сообщения сбиваются в кучки (кластеры) и потом для каждого кластера можно выцепить ключевые слова. Получается что-то вроде «карты тем» для чата.

В кластер 7, к примеру, попали обсуждения интеграции YandexGPT для Home Assistant. А рядом находится близкий по смыслу кластер 5, с разговорами про визуальные языковые модели и VK Cloud Vision. При этом всякие «ага», «хорошо», «спасибо» стоят в углу, потому что по смыслу эти сообщения далеки от всех остальных.

В моём чате данных маловато, поэтому я полез анализировать чужие. 😏 Вот, например, кластеры для чата Home Assistant:

За последние 6 месяцев в чате много чего обсуждалось, но по кластеру 10 явно видно «горячую» тему: «Zigbee vs проводной умный дом». Эти споры будут продолжаться вечно…

В спрутовском чате тема Zigbee тоже часто поднимается:

Правда если проанализировать сообщения за последние полгода, то Zigbee чаще упоминается в контексте «обратитесь в соответствующий чат». Видимо, модераторы устали.

А в названии этого чата есть фраза «умный дом»:

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

Для чего нужна такая кластеризация?

  • Если собрать сообщения из каждой группы (кластера), то на них можно обучить классификатор. Например, чат-бот с таким классификатором сможет автоматически отправлять ссылку на Zigbee-чат, как только кто-то заговорит о Zigbee.
  • Точно так же можно разбить отзывы интернет-магазина на «отрицательные», «нейтральные» и «положительные», чтобы оценить мнение о том или ином товаре.
  • Спам — классификатор можно использовать для фильтрации спама в чате. Но я бы не стал — есть более эффективные методы.
  • А ещё кластеризация используется в Data Mining для поиска скрытых знаний в больших массивах данных.

Зачем я всё это рассказываю? Фиг его знает. 🙂 Просто эта тема мне интересна. У меня даже диплом был по кластеризации базы пользователей, используя k-means. А ещё подобные технологии лежат в основе современных LLM.

Слова можно преобразовать в числовые векторы (эмбединги). Если нарисовать их на графике, то «омлет» и «яйцо» окажутся рядом, а «клей ПВА» — в противоположном углу. Поэтому, когда вы просите у ChatGPT рецепт омлета, он не предлагает приготовить его из клея. Хотя…

#mansmarthome_образовательный #мужикумныйдом_образовательный

Подписка на новые статьи

Без спама. Только уведомления о новых статьях и видео. Отписка — в один клик.

Подписываясь, вы даете согласие на обработку персональных данных.