365 решенийSmittMediaGroup · задача → действия → решениевсе демо →
№ 102026-09-08метрики, честность

Отчёт считал одну компанию двумя — и цифра врала в нашу пользу

«Ашманов» и «Ашманов и партнёры» шли как разные фирмы. Доля конкурента занижалась, наша — росла.

1Задача

Наш сервис показывает компании, как о ней говорят нейросети, и считает долю голоса: сколько раз в ответах назвали вас, а сколько — конкурентов.

Считалось это сравнением названий на точное совпадение. А нейросеть в ответе называет компанию как придётся: то «Ашманов», то «Ашманов и партнёры», то «ООО „Ромашка-Софт“», то просто «Ромашка-Софт».

Каждое такое расхождение означало, что упоминание конкурента не засчитано. Доля конкурента занижалась, наша — росла. Причём ошибка была односторонней: она всегда работала в нашу пользу, потому что своё название мы в списке пишем ровно так, как оно звучит.

Отчёт с такой цифрой нельзя показывать клиенту: он платит за честное зеркало, а получал бы комплимент.

2Действия

Простое решение — сравнивать по вхождению подстроки — уже было отвергнуто раньше, и в проекте на этот случай стоял отдельный тест: «Мир» не должен засчитываться внутри «Миража». Иначе ошибка просто поменяет знак и начнёт завышать долю конкурентов.

Поэтому сравнение сделали по словам, а не по буквам:

- название разбивается на слова, точка и дефис считаются разделителями — так «Яндекс.Директ» распадается на «яндекс» и «директ»; - выбрасываются слова, которые не отличают одну фирму от другой: организационные формы, союзы, «агентство», «группа», «партнёры»; - совпадением считается случай, когда все значимые слова одного названия есть в другом.

«Ашманов» находится в «Ашманов и партнёры», «Яндекс» — в «Яндекс.Директ», «Ромашка-Софт» — в «ООО „Ромашка-Софт“». А «Мир» в «Мираже» — нет, потому что это разные слова целиком, а не общий кусок букв.

Сначала написали пять проверок на все эти случаи, убедились, что они падают, и только потом меняли счёт.

3Решение

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

Отдельно стоит сказать про направление ошибки. Односторонние ошибки в метриках опаснее случайных: случайная шумит, а односторонняя тихо подтверждает то, что приятно слышать. Если ваш показатель ошибается всегда в одну сторону — это не погрешность, это неверный ответ.

← все решения