© 2013—2026 Общество с ограниченной ответственностью «Корзилла»
Резидент ИТ ПАРК ТАТАРСТАН
ИНН:1650305682

  • /
  • /

Как нейросеть помогает распределить товары по категориям — даже если в каталоге полный хаос

Вы хотите запустить интернет‑магазин, но откладываете старт, потому что в товарной матрице — полный беспорядок: названия написаны кто во что горазд, одни и те же позиции дублируются под разными именами, а категорий как будто и нет вовсе. Знакомо?

Для разработчика сайта это типичная ситуация: клиент готов вкладываться в дизайн и функционал, но боится, что систематизация номенклатуры «съест» бюджет и время. Хорошая новость: нейросеть способна распределить товары по категориям, даже если названия неструктурированы и написаны в совершенно разных стилях. Ей не важно, как именно сформулировано название - «АКБ Bosch 60 Ач 12 вольт», «Bosch аккумулятор 60 амперчас» или «Аккумулятор АКБ 12V 60Ah BOSCH»: ML‑модель распознаёт смысловые маркеры и корректно отнесёт товар к нужной категории. В этой статье покажу, как это реализовать на практике: дам пошаговый алгоритм, пример кода и разберу частые ошибки. Отдельно расскажу, как грамотная категоризация влияет на SEO.
Сайт швейного производств

Почему правильная категоризация — это база для бизнеса

Чёткое распределение товаров по категориям решает сразу несколько задач:
  • UX (пользовательский опыт). Покупатель быстро находит нужный товар и не уходит к конкурентам.
  • Конверсия. Чем проще путь к покупке, тем выше продажи.
  • SEO. Поисковики лучше индексируют страницы, если структура каталога логична.
  • Аналитика и управление. Когда категории выстроены в чёткую иерархию, учёт идёт как по маслу, отчёты не заставляют краснеть, а закупки перестают быть гаданием на кофейной гуще. 
Нейросеть, конечно, не заменит живого  менеджера - но она возьмёт на себя рутину, от которой у любого специалиста глаза на лоб лезут: разноску тысяч наименований по полочкам. На выходе у вас готовая сетка категорий, которую всегда можно докрутить руками.

Теперь по делу.

Допустим, у вас есть CSV на 10 000 строк, в колонке name — настоящий винегрет из названий. Задача: каждому товару присвоить свою группу. И тут приятный момент — нейросети всё равно, в каком виде написано название. Она “выцепляет” смысл, даже если формулировки скачут от «АКБ 12V» до «батарейка для авто от Боша».

Приступаем к каталогизации с помощью нейросети

Шаг 1. Подготовка данных

Грузим данные в формате, который нейросеть сможет распознать: CSV или Excel. Минимальный набор колонок:
id — чтобы не перепутать товары;
name — хоть в стихах, нейросеть разберётся;
description — необязательно, но с ним точность выше.

Пример из жизни:
101, "Аккумулятор АКБ 12V 60Ah BOSCH","Надежный аккумулятор для легковых авто"
102, "АКБ Bosch 60 А·ч 12 вольт","Для автомобилей, пусковой ток 540А"
103, "Bosch аккумулятор 60 ампер-час","Подходит для большинства легковых авто"
Обратите внимание: названия везде разные, но для нейросети это не проблема. Не пытайтесь заранее всё унифицировать — это лишняя работа, которая не даст никакого выигрыша. Лучше сразу пустить данные в обработку и сэкономить время на том, что действительно требует человеческого внимания.
Шаг 2. Выбор инструмента
Варианты:
  • API нейросетей (OpenAI, Anthropic и др.) — для гибкой интеграции в скрипты.
  • No‑code инструменты (Make, Zapier, n8n) — если нужно быстро связать Google Sheets и API.
  • Локальные LLM - если нельзя передавать данные во внешние API.
Для примера используем Python и API OpenAI — это универсальный вариант.

Шаг 3. Формулируем промпт для нейросети
Промпт должен чётко задавать список категорий и формат вывода. Пример:

Ты — эксперт по структурированию товарных каталогов. Твоя задача — проанализировать названия товаров и для каждого из них вернуть JSON со следующими полями:

  • brand: выдели бренд и приведи к единому написанию (например, BOSCH → «Bosch»).
  • category: выбери одну из категорий: «Аккумуляторы», «Фильтры», «Тормозные колодки», «Разное».
  • normalized_name: перепиши название в едином стиле: «Бренд Категория Характеристики».

Важно: названия могут быть написаны в разном стиле — это нормально. Тебе нужно распознать смысл и корректно назначить категорию независимо от формулировки.

Верни только валидный JSON без пояснений.

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

Шаг 4. Пишем скрипт на Python для пакетной классификации
Скрипт читает CSV, отправляет названия батчами в нейросеть и сохраняет результат с назначенными категориями.
import csv
import json
import os
from openai import OpenAI

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def get_categories(names):
    prompt = """
    Ты — эксперт по структурированию товарных каталогов. Проанализируй названия товаров и верни JSON со следующими полями для каждого товара: brand, category, normalized_name.
    
    Правила:
    - brand: выдели бренд, нормализуй к единому написанию.
    - category: выбери из списка: «Аккумуляторы», «Фильтры», «Тормозные колодки», «Разное».
    - normalized_name: перепиши в стиле «Бренд Категория Характеристики».
    
    Важно: названия могут быть написаны по-разному — это нормально. Распознавай смысл независимо от формулировки и назначай корректную категорию.
    
    Верни только валидный JSON, без пояснений.
    """
    
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": prompt},
            {"role": "user", "content": "\n".join(names)}
        ],
        temperature=0
    )
    return json.loads(response.choices[0].message.content)

def process_csv(input_file, output_file, batch_size=50):
    with open(input_file, newline='', encoding='utf-8') as f:
        reader = csv.DictReader(f)
        rows = list(reader)
    
    all_results = []
    for i in range(0, len(rows), batch_size):
        batch = rows[i:i+batch_size]
        names = [row['name'] for row in batch]
        results = get_categories(names)
        for j, res in enumerate(results):
            row = batch[j]
            row.update(res)
            all_results.append(row)
    
    with open(output_file, 'w', newline='', encoding='utf-8') as f:
        fieldnames = ['id', 'name', 'description', 'brand', 'category', 'normalized_name']
        writer = csv.DictWriter(f, fieldnames=fieldnames)
        writer.writeheader()
        writer.writerows(all_results)

if __name__ == "__main__":
    process_csv('input.csv', 'output_categorized.csv')
Ключевые моменты:

  • temperature=0 делает классификацию более предсказуемой.
  • Обработка батчами (по 50 товаров) снижает риск ошибок и экономит токены.
  • Скрипт сохраняет не только категорию, но и нормализованное название и бренд — это удобно для дальнейшей работы.

Шаг 5. Верификация результатов
Даже при хорошей настройке промптов нужна выборочная проверка:
  1. Проверьте товары в категории «Разное». Если их много — уточните промпт или расширьте список категорий.
  2. Проведите аудит 10–20% выборки. Это поможет выявить системные ошибки и скорректировать правила.
  3. При необходимости дообучите логику. Например, добавьте исключения или дополнительные подсказки для сложных групп товаров.

Частые ошибки и как их избежать

Какой результат вы получите и как категоризация влияет на SEO

После обработки вы получите:
  • Чёткую иерархию категорий. Например: «Аккумуляторы → Автомобильные → 12V → 60Ah». Такая структура понятна и пользователям, и поисковикам.
  • Единые названия товаров. Нормализованные заголовки снижают каннибализацию ключевых слов и улучшают релевантность страниц.
  • Структурированные данные для микроразметки. На основе категорий и атрибутов можно добавить Schema.org (Product, Offer) — это улучшает сниппеты в выдаче.
  • Оптимизированную внутреннюю перелинковку. Логичная структура позволяет строить понятные цепочки ссылок между категориями и товарами.

Влияние на SEO:
  • Рост релевантности страниц. Поисковик точнее сопоставляет запросы пользователей с товарами, если категории и названия структурированы.
  • Улучшение поведенческих факторов. Пользователи быстрее находят нужное, меньше уходят с сайта — это положительно влияет на ранжирование.
  • Возможность продвигать подкатегории. Например, страница «Автомобильные аккумуляторы 12V» может ранжироваться по низкочастотным запросам.

Вопрос‑ответ

Заключение

Неоднородность названий и отсутствие структуры — не повод откладывать запуск сайта. Нейросеть способна классифицировать товары, даже если в каталоге сейчас полный хаос и формулировки совершенно разные. Это экономит время и бюджет, а главное — сразу даёт понятную структуру, на базе которой можно строить удобный каталог и эффективно продвигать его в поиске.
Начните с небольшого теста: возьмите 100–200 товаров, прогоните через скрипт и оцените качество категоризации. Если результат устраивает — масштабируйте на весь каталог.

На странице https://korzilla.ru/dorabotki/nejrokatalog вы найдёте дополнительные материалы и примеры доработок каталога под разные ниши — от автозапчастей до пиломатериалов.
Если нужна помощь или  вас остались вопросы -  пишите, разберём ваш кейс индивидуально.

  • Сергей Решетников
    Маркетолог Korzilla
    Пишет про создание и продвижение сайтов

Читайте также