Кластеризация ключей на основе близости фраз [Python]

Скрипт неплохо подходит для кластеризации/чистки SEO ключей (семантического ядра). Поддерживает множество языков, имеется много бесплатных моделей.

Он кластеризует ключи (фразы) на основе заданного порога семантической близости и минимального количества «соседей» для создания кластера.

Скрипт доработан на основе этого примера, взятого с sBert.net: https://github.com/UKPLab/sentence-transformers/blob/master/examples/applications/clustering/fast_clustering.py

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

Описание параметров настройки

  • files — здесь нужно указать файлы с ключами (например, phrases.txt)
  • model_name — укажите, какую предобученную модель использовать (можно попробовать разные отсюда)
  • min_community_size — минимальное количество фраз для создания кластера
  • threshold — минимальный порог схожести фраз для выделения их в группу

Как узнать порог схожести фраз

В файле закомментирован кусок кода (get_similarity_cos) — нужно на вход подать 2 списка и он выдаст, какой у них порог схожести.

Запуск кластеризации

Скрипт доступен на моем github, а так же в Google Colab. Выбирайте любую, настраивайте и запускайте.

Результат будет сохранен в CSV файл с таким же названием (только расширение .csv), что и файл с фразами (или ключами, кому как удобнее).

Если есть какие-то вопросы — буду раз ответить на них в комментариях.

Добавить комментарий

Ваш адрес email не будет опубликован.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.