Свой инструмент · две программы на Python · сделано для «Автобизнес.рф»

Инструмент, который чистит таблицу поисковых запросов и раскладывает её по категориям: −67 % лишнего, 10 категорий за пару кнопок

Из Яндекс.Вордстата скачивается таблица поисковых запросов — в сыром виде это тысячи строк с повторами и мусором. Две небольшие программы с окошками на Python убирают дубли по смыслу и раскладывают запросы по 10 категориям. На данных «Автобизнес.рф» таблица сжалась с 11 034 строк до 1 821 запроса — это часы ручной работы, отданные паре кнопок.

Обсудить похожий проект →

Python PySide6 Tkinter pymorphy2 Стоп-слова Эмбеддинги Косинусное сходство Автоматизация
Сайт: инструмент (демонстрационный кейс, локальные программы) Клиент: «Автобизнес.рф» Ниша: импорт автомобилей из Китая Предмет: таблица поисковых запросов (семантическое ядро) Программы: PySide6 + Tkinter
−67 %
Размер таблицы после очистки
11 034 строки → 1 821 уникальный запрос
10
Категорий в готовой карте
запросы разложены по смыслу — можно раздавать по страницам
47
Стоп-слов в фильтре мусора
фото, отзывы, рейтинг и подобное — вон
2
Программы вместо ручной работы
работают с обычными Excel-файлами, ничего ставить не нужно

Что вы получите

Чистую таблицу без дублей по смыслу

«китай авто», «авто китай» и «авто китая» схлопываются в одну строку. Мусор вроде «фото» и «отзывы» отсекается стоп-словами — остаётся только то, что важно.

Готовую семантическую карту

10 категорий и запросы, разложенные по ним. Результат можно сразу раздавать по страницам сайта, а не раскладывать вручную.

Работает локально на вашем компьютере

Обычные Excel-файлы, ничего дополнительно ставить не нужно. Таблица не уходит в сторонние сервисы — данные остаются у вас.

Задача

«Автобизнес.рф» привозит машины из Китая. Из Яндекс.Вордстата скачивается таблица поисковых запросов (семантическое ядро — список фраз, по которым люди ищут товар, вместе с частотностью). В сыром виде в ней сотни повторов и мусорных фраз, а разбирать её руками — долго. Нужен был свой инструмент, который делает два шага: очищает таблицу и раскладывает запросы по категориям.

Инструмент — это две отдельные программы на Python. Обе умеют работать с обычными файлами Excel (.xlsx), поэтому не требуют установки чего-то ещё на компьютер клиента. Программы делались под конкретную задачу «Автобизнес.рф», но подходят к любой таблице запросов.

Было — что нашли

Почему сырую таблицу нельзя было использовать напрямую.

Дубли по смыслу

«Китай авто» и «авто китай» — разные строки

Один и тот же смысл записан по-разному: «китай авто», «авто китай», «авто китая», «китае авто». Такие строки шли десятками и раздували таблицу.

Мусорные фразы

Запросы не по делу

В таблице попадались «фото», «отзывы», «телефон», «рейтинг», «секс», «форум». Они не про покупку машины и только мешают.

Нет структуры

5 588 строк одним списком

Непонятно, какие запросы про покупку, какие про марки, какие про доставку. Без категорий такую таблицу не раздать по страницам сайта.

Ручная работа

Чистить и раскладывать вручную

Сверять строки глазами и сортировать по смыслу — часы однотипной работы на каждое обновление ядра.

Один запрос — много раз

Повторы с разной частотностью

«Китай авто» встречался дважды с разными числами (137 000 и 136 199). Пока такие повторы в таблице, статистику не свести.

Что сделано

Две программы и проверка на реальных данных клиента.

Программа 1 · очистка дублей
Выполнено

Очистка таблицы от повторов и мусорных фраз

Что сделано

Слова приводятся к начальной форме — это лемматизация (например, «автомобилей», «автомобили» и «автомобиль» становятся одним словом «автомобиль»). Дальше слова сортируются, поэтому «китай авто» и «авто китай» дают одинаковый ключ, и повторы схлопываются в одну строку. Отдельно фразы проверяются по словарю стоп-слов (47 слов: фото, отзывы, телефон, рейтинг, секс, форум и подобные) — такие строки удаляются. Окошко сделано без стандартной рамки, со скруглёнными углами, его можно перетаскивать за заголовок; есть кнопка «Обработать», прогресс-бар и статус. Добавлена совместимость со старым кодом через небольшую заплатку (monkey-patch метода inspect.getargspec), чтобы библиотека разбора слов работала в новых версиях Python.

Результат

Основной список из 5 588 запросов сжался до 1 821 уникального — сокращение на 67 %, убрано 3 767 повторов и мусорных фраз. В том же файле был второй, дополнительный список на 5 446 коротких запросов; после приведения слов к начальной форме он почти полностью повторял основной и добавил всего 6 новых наборов слов. Итог по обоим спискам (11 034 строки) — те же 1 821 уникальных запроса.

Программа 2 · семантическая карта
Выполнено

Раскладка запросов по категориям

Что сделано

Программа берёт заданное число самых частотных запросов (по умолчанию 10) и делает их якорями-категориями. Затем каждый запрос превращается в эмбеддинг — числовой вектор смысла (модель Sentence Transformers paraphrase-multilingual-MiniLM-L12-v2 выдаёт вектор из 384 чисел). Векторы нормализуются по длине, дальше считается косинусное сходство (мера похожести между векторами) и каждый запрос прикрепляется к ближайшему якорю. На выходе — таблица из двух колонок: «Category» (категория) и «Query» (запрос).

Результат

1 821 запрос разложен по 10 категориям. Самая крупная — «авто из китая» (961 запрос), далее «на китайские автомобили» (179), «китайских автомобилей» (156), «китайские автомобили в» (112). Файл ядро.xlsx содержит готовую таблицу «категория → запрос».

Проверка на данных клиента
Выполнено

Числа сверены по файлам «Автобизнес.рф»

Что сделано

Цифры в этом кейсе пересчитаны прямо по содержимому xlsx-файлов: исходная выгрузка СЯ автобизнес.xlsx (два листа), результат очистки СЯ автобизнес_без_дублей.xlsx и семантическая карта ядро.xlsx. Поэтому данные по таблице и по категориям совпадают.

Результат

Оба файла результата содержат 1 821 строку данных (1 822 строки вместе с шапкой таблицы) и по категориям сходятся: 10 категорий, 1 821 запрос.

Этапы и сроки

  1. Разбор задачи — 1–2 дня. Смотрю формат вашей выгрузки и что считать мусором, предлагаю структуру категорий.
  2. План и смета — после разбора. Согласуем объём, фиксирую срок и цену.
  3. Сборка программ — по объёму: очистка от дублей и раскладка по категориям под вашу нишу.
  4. Проверка на ваших данных — прогоняю инструмент на реальном файле и сверяю числа до точного совпадения.

Сроки беру из реального проекта; по вашему случаю назову после бесплатного разбора.

Стало — результат

Схемы собраны из данных инструмента: они показывают, что было на входе, что получилось и как разложились запросы.

Подписи «Схема из данных инструмента» честные: это не скриншоты программы, а карточки, собранные из чисел файлов результата.

Результат «до / после»

ПараметрДоПосле
Строк в таблице11 034 (5 588 + 5 446)1 821 уникальный запрос
Основной список5 588 запросов1 821 (−67 %)
Дубли и мусорные фразыне убраны3 767 убрано
Разбор по смыслунет10 категорий по 1 821 запросу
Выгрузкаодин список фраздве колонки: Category / Query
Чистка и сортировкавручную, часамидве программы, пара кнопок

Пруфы

Окна обеих программ сняты локально, код — из самих скриптов. Кликните, чтобы открыть в полном размере.

Скриншоты окон сняты на том же коде, что и в скриптах. Все числа кейса пересчитаны по трём xlsx-файлам исходника.

Сколько стоит

Разбор и план

Бесплатно: смотрю вашу таблицу запросов, показываю, как её очистить и разложить, и даю план.

Инструмент под вашу нишу

Стоимость считаю после разбора — зависит от объёма и сложности данных. Точную вилку называю до начала, без сюрпризов в процессе.

Цены не публикую: они зависят от задачи. Оставьте заявку — пришлю вилку под ваш случай в тот же день.

Частые вопросы

Работает ли с моими данными?
Да, программы работают с обычными Excel-файлами (.xlsx) и настраиваются под любую таблицу поисковых запросов, а не только авто.

Куда уходит моя таблица?
Никуда: всё считается локально на вашем компьютере, данные не отправляются в сторонние сервисы.

Какой формат на выходе?
Готовая таблица из двух колонок: категория и запрос. Её можно открыть в Excel и сразу раздать по страницам сайта.

Что если у меня другая ниша?
Подойдёт: стоп-слова и категории настраиваются под ваш рынок. Покажу на вашем файле, что получится.

Сколько это займёт времени?
Зависит от объёма данных. Точный срок назову после бесплатного разбора вашей таблицы.

Нужен такой же инструмент под вашу таблицу запросов?

Соберу программу под ваши данные: очистка от дублей, разбор по категориям, выгрузка в Excel. Работает локально, без установки на сторонние сервисы.

Связь — через портфолио: все кейсы.

Разберу вашу таблицу и назову срок и цену — бесплатно.

Обсудить проект →