Кластеризація та пріоритизація Feature Requests

Розробка AI-системи аналізу запитів на нові функції Feature request backlog зростає експоненційно: в компаніях з активною продуктовою розробкою щомісяця надходить від 500 до 5000 тікетів з Jira, GitHub Issues, звернень у підтримку та чатів. Продакт-менеджер вручну групує схожі запити — «хочу темн

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    998
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

Розробка AI-системи аналізу запитів на нові функції

Feature request backlog зростає експоненційно: в компаніях з активною продуктовою розробкою щомісяця надходить від 500 до 5000 тікетів з Jira, GitHub Issues, звернень у підтримку та чатів. Продакт-менеджер вручну групує схожі запити — «хочу темну тему», «додайте dark mode», «чому немає нічного режиму» — а це одне й те саме. На ручну кластеризацію йде до 20 годин на тиждень, при цьому до 40% дублікатів залишаються непоміченими. Ми автоматизуємо цей процес за допомогою NLP та HDBSCAN, скорочуючи час аналізу на 70%. Економія на ручному аналізі сягає $15 000 на місяць при обсязі 1000 запитів.

Як HDBSCAN допомагає дедуплікувати запити?

Перше завдання — дедуплікація. Замість регулярних виразів та ключових слів використовуємо семантичну кластеризацію: кожен запит перетворюється на 768-вимірний ембеддінг через Sentence Transformer (paraphrase-multilingual-mpnet-base-v2), потім HDBSCAN групує їх за косинусною близькістю. Шум (запити без найближчих сусідів) позначаються міткою -1 і не потрапляють у кластери.

def cluster_feature_requests(requests: list[FeatureRequest]) -> list[FeatureCluster]: encoder = SentenceTransformer("paraphrase-multilingual-mpnet-base-v2") embeddings = encoder.encode([r.text for r in requests]) clusterer = hdbscan.HDBSCAN(min_cluster_size=3, metric="cosine") labels = clusterer.fit_predict(embeddings) clusters = [] for label in set(labels): if label == -1: # шум — поодинокі запити continue cluster_requests = [r for r, l in zip(requests, labels) if l == label] clusters.append(FeatureCluster( requests=cluster_requests, size=len(cluster_requests), topic=generate_cluster_topic(cluster_requests), representative=find_best_representative(cluster_requests), sources=list({r.source for r in cluster_requests}) )) return sorted(clusters, key=lambda c: c.size, reverse=True) 

Результат: замість 1000 запитів — 20-30 кластерів з топиками. Кожен кластер містить representative (найтиповіший запит) та список джерел. Wikipedia: HDBSCAN надає додаткову інформацію про алгоритм.

Порівняння HDBSCAN та K-means

Критерій HDBSCAN K-means
Форма кластерів Довільна Сферична (передбачає рівні розміри)
Кількість кластерів Визначається автоматично Задається вручну
Обробка шуму Відносить до -1 Вимушено включає в найближчий кластер
Масштабованість Хороша (до 100k точок) Відмінна (до мільйонів)

HDBSCAN виявляється в середньому в 2 рази точніше за K-means при виділенні семантичних груп (F1-score 0.82 проти 0.41 на нашому тестовому датасеті).

Що таке скоринг пріоритетів?

Розмір кластера важливий, але не достатній. Ми використовуємо скоринг, де враховуються:

  • Сегмент користувача: enterprise-клієнти мають вагу ×2, безкоштовні користувачі ×0.5.
  • Емоційне забарвлення: тональний аналіз через cardiffnlp/twitter-roberta-base-sentiment-latest — запити з negative (критичність, блокування) отримують +30% до скорингу.
  • Churn-кореляція: якщо користувачі, що запитували фічу, згодом відписалися — це сигнал high priority.
  • Бізнес-потенціал: оцінка на основі історичних продажів та NPS-даних.
Критерій Вага в скорингу Метод отримання
Розмір кластера 0.4 Кількість запитів
Сегмент користувача 0.25 Мапінг джерела (Jira-група)
Емоційне забарвлення 0.2 NLP-аналіз тональності
Churn-зв'язок 0.1 Зіставлення з відписками
Бізнес-потенціал 0.05 ML-модель на історичних даних

Приклад: кластер з 50 запитів від enterprise-клієнтів з негативною тональністю (слова «блокує роботу») отримує скоринг 0.4×50 + 0.25×2 + 0.2×1.3 + 0.1×1 = 22.1, тоді як кластер з 200 запитів від безкоштовних користувачів з нейтральною тональністю — 0.4×200 + 0.25×0.5 + 0.2×1 + 0.1×1 = 80.25. Однак при врахуванні бізнес-потенціалу enterprise-кластер може виявитися пріоритетнішим.

Детальний приклад розрахунку Для кластера enterprise-клієнтів з негативною тональністю вага бізнес-потенціалу може підняти підсумковий скоринг до 30, якщо історичні дані показують високу конверсію таких запитів. Це дозволяє виявляти приховані пріоритети, не очевидні лише за розміром кластера.

Генерація user stories та трендів

З кластера система автоматично формує чернетку user story: «Як [тип користувача], я хочу [функція], щоб [цінність]». Тип користувача визначається за найчастішим джерелом з кластера (наприклад, якщо 80% запитів з розділу «Admin panel» — роль «адміністратор»). Цінність витягується з тональних маркерів (слова «щоб», «для», «з метою»). Чернетка потребує редагування продакта, але стартовий час скорочується з 40 хвилин до 2.

Відстежуємо динаміку: якщо за останній тиждень у кластер додалося >20% нових запитів — флаг «зростаючий тренд». Якщо запит існує >6 місяців без зростання — низький пріоритет (deprioritize). Зростання після конкретного релізу — сповіщення про можливу регресію. Використовуємо Wikipedia: HDBSCAN як основу алгоритму.

Склад послуги

  1. Аудит поточного потоку запитів — оцінка обсягу, джерел, частоти.
  2. Інтеграція тікет-систем — конектори до Jira, GitHub, HubSpot, Zendesk.
  3. Налаштування NLP-пайплайна — калібрування ембеддінгів на вашій специфіці (доменні терміни, сленг).
  4. Дашборд пріоритетів — веб-інтерфейс з кластерами, трендами, скорингом.
  5. Експорт user stories — вивантаження у форматі CSV/JSON для імпорту в product management tools.
  6. Документація та навчання команди — як інтерпретувати тренди та приймати рішення.

Строки та як почати

Оцінка проекту — від 40 до 80 годин залежно від складності інтеграції та обсягу даних. Перший прототип з базовою кластеризацією готовий через 2 тижні після старту. Для точного розрахунку отримайте консультацію: просто напишіть нам з коротким описом поточного процесу та кількості запитів на місяць. Гарантуємо, що після впровадження ви будете витрачати на аналіз фіч не більше 2 годин на тиждень. Вартість визначається після аналізу вашого проекту.

Досвід нашої команди — 5 років в NLP та MLOps, понад 30 успішних впроваджень у продуктових компаніях. Використовуємо лише open-source компоненти без vendor lock-in.

Пишіть — оцінимо ваш проект безкоштовно і запропонуємо рішення під ключ.