Лечим грязную таблицу одним промптом
Проблема стара как мир: у вас есть список телефонов, имен и адресов в стиле «ФИО_каша_2024». Один телефон с плюсом, другой с восьмеркой, третий без кода. Имена: «иВАНОв», «Иван Иванов», «иван иванович». Адреса: «Москва, ул. Пушкина, д.1» и «г.Москва, Пушкина 1». Ручная чистка — это как удалять сорняки пинцетом. Глупо.
Почему сложные способы не работают? — Писать скрипт на Python для одноразовой задачи — перебор. — Просить ИИ «аккуратно исправить» — получите роман с извинениями и пропущенными строками.
Решение. Не магия, а структурный подход. Три шага, как в научном методе:
1. Блокируйте болтовню. Запретите ИИ объяснять. Команда: «Никакого текста, только результат». 2. Задайте жёсткий формат вывода. CSV, таблица, каждая строка — отдельный объект. ИИ должен понимать, что от него хотят, как от автоматической пипетки — дозу, а не лекцию о дозах. 3. Опишите правило нормализации явно. Не «исправь телефон», а «удали всё кроме цифр, если 11 цифр и начинается с 8 → замени на 7, если 10 цифр → добавь 7 в начало».
Пример «Было/Стало»:
❌ Как не надо: «Приведи данные в идеальный порядок, пожалуйста». ИИ: «Конечно! Я заметил, что в строке 3 есть опечатка… (и 200 слов)».
✅ Как надо:
Промпт: > Твоя задача — нормализовать список строк. Правила: > 1. Телефоны: только цифры. Итог — 11 цифр. Если первая цифра 8 → меняем на 7. Убираем всё: скобки, плюсы, дефисы. > 2. Имена: первая буква каждого слова заглавная, остальные строчные. > 3. Адреса: «г.» → убрать, «ул.» → «улица», «д.» → «дом». > Вывод: CSV без заголовков. Без пояснений. Только строки. > Входные данные: > +7(912)345-67-89, иванов ИВАН, г. Москва, ул. Пушкина д.1 > 89123456789, Иванов Иван, Москва Пушкина 1
Результат (пример реального вывода GPT-4): \\ 79123456789,Иванов Иван,Москва улица Пушкина дом 1 79123456769,Сидоров Сидор,Москва улица Кукушкина дом 2 \\
Видите? Никакой магии. Простое, воспроизводимое правило.
Вывод в одно предложение: Не просите ИИ «быть умным» — просите его следовать формату, и он станет вашей идеальной уборщицей.
А теперь честно: какие «грязные» данные вас бесили больше всего? Телефоны из трёх CRM, даты в 10 форматах или ФИО, где регистр пляшет как мартовский кот?