Recursive Data Cleaner: автоматизация очистки данных с LLM | Обзор | AiManual
AiManual Logo Ai / Manual.
17 Янв 2026 Инструмент

Recursive Data Cleaner: как автоматизировать очистку данных с помощью LLM и Python

Обзор Recursive Data Cleaner - Python-библиотеки для рекурсивной очистки JSONL и CSV с помощью LLM. Автоматическая генерация функций, сравнение с аналогами.

Recursive Data Cleaner: когда LLM делают грязную работу за вас

Очистка данных - это тот этап, на котором застревают 80% проектов по машинному обучению. Вы часами пишете одноразовые скрипты, которые превращают "John Doe (john@mail.com)" в два поля, выковыривают цены из текста и приводят даты к единому формату. А потом приходит новый датасет, и все начинается сначала.

Recursive Data Cleaner предлагает радикально простую идею: пусть LLM сама разберется, как почистить ваши данные. Вы показываете ей несколько примеров "до" и "после", а она генерирует Python-функцию, которая делает это для всего датасета. Рекурсивно, колонка за колонкой, файл за файлом.

Что умеет этот скребок

Библиотека берет на себя три главные боли:

  • Анализирует структуру - самостоятельно определяет типы данных, находит вложенные объекты в JSON, разбирается со списками.
  • Генерирует код - создает готовые Python-функции для каждой колонки или сложного поля. Не промпты, а настоящий код, который можно потом доработать.
  • Работает рекурсивно - если в поле лежит еще один JSON или массив объектов, инструмент ныряет внутрь и чистит уже там.

Звучит как магия? Отчасти так и есть. Но под капотом - довольно прямолинейная цепочка вызовов к OpenAI API (или совместимым эндпоинтам). Вы платите за токены, но экономите часы разработки.

Как это работает технически

Алгоритм напоминает работу опытного дата-инженера, только в 100 раз быстрее:

  1. Берет образец данных (первые N строк из CSV или JSONL).
  2. Для каждого поля строит промпт с примером "грязных" и "чистых" значений (вы их задаете).
  3. Отправляет в LLM с просьбой написать функцию преобразования.
  4. Тестирует сгенерированную функцию на других примерах, при необходимости уточняет.
  5. Применяет ко всему датасету, включая вложенные структуры.

Весь процесс занимает минуты вместо дней. Особенно выручает при работе с неструктурированными логами или результатами парсинга - например, после извлечения данных из PDF с помощью LLM, как в нашем гайде по парсингу PDF.

Быстрый старт: от хаоса к порядку за 5 минут

Установка стандартная:

pip install recursive-cleaner

Базовый сценарий для CSV:

from recursive_cleaner import DataCleaner

cleaner = DataCleaner(openai_api_key="ваш_ключ")

# Показываем, что хотим получить
mapping = {
    "date": "Привести все даты к формату YYYY-MM-DD",
    "price": "Извлечь число, удалить символ валюты и пробелы",
    "full_name": "Разделить на first_name и last_name"
}

# Запускаем очистку
cleaner.clean_csv(
    input_file="грязные_данные.csv",
    output_file="чистые_данные.csv",
    column_mapping=mapping
)

Для JSONL с вложенными объектами библиотека автоматически спускается на нужную глубину. Это особенно полезно при построении семантических пайплайнов для LLM, где данные часто имеют сложную иерархию.

💡
Сгенерированные функции сохраняются в отдельный файл. Вы можете использовать их независимо от библиотеки, дорабатывать или добавлять в существующие пайплайны - например, в DataFlow для воспроизводимой подготовки данных.

С чем конкурирует (и почему выигрывает)

Инструмент Подход Когда выбирать
Pandas + ручные функции Пишете каждое преобразование вручную Когда структура данных никогда не меняется (читай: никогда)
OpenRefine Интерактивная очистка через GUI Для разовых задач, где не нужна автоматизация
Recursive Data Cleaner LLM генерирует код по примерам Когда нужно быстро обработать новые типы данных или масштабировать на множество файлов

Главное преимущество - адаптивность. Сегодня чистите даты, завтра - адреса, послезавтра - медицинские термины (кстати, для медицинских записей есть отдельный метод работы с LLM). Не нужно каждый раз изучать новую библиотеку.

Кому стоит попробовать прямо сейчас

Инструмент создан для конкретных сценариев:

  • Дата-инженеры, которые устали от однотипных задач ETL. Особенно если вы строите пайплайны для LLM и данные приходят из разных источников.
  • Аналитики, работающие с сырыми экспортами из CRM, логами веб-серверов, результатами опросов.
  • Разработчики MVP, которым нужно быстро подготовить данные для обучения модели, а времени на идеальную очистку нет.

Не ждите чудес со сложно структурированными текстами. Если ваши данные - это сплошной нарратив (как в юридических документах), лучше сначала применить специализированные инструменты извлечения, а потом уже чистку.

Что будет дальше с автоматизацией очистки

Recursive Data Cleaner - симптом более крупного тренда: LLM становятся не просто генераторами текста, а полноценными программистскими ассистентами. Скоро появятся аналогичные инструменты для автоматического код-ревью или даже для детекции аномалий в данных (логический детектор, как в этой статье).

Мой прогноз: через год мы будем считать ручную очистку данных таким же анахронизмом, как ручное рецензирование каждой строки кода. Инструменты вроде Recursive Data Cleaner - первый шаг к тому, чтобы данные готовились к анализу быстрее, чем вы успеваете сформулировать задачу.

Попробуйте на своем самом грязном датасете. Худшее, что может случиться - вы сэкономите три часа жизни.