Модуль m.3 · Урок 4
Урок 4: Работа с документами — PDF, сканы, FOIA, архивы
Содержание
- Чему научитесь
- Пайплайн: Extract → Structure → Analyze
- Extract: инструменты извлечения текста
- Российские OCR-инструменты
- Structure: чистый текст → рабочая таблица
- Analyze: вопросы к корпусу
- Практикум: «Распарсить архив на 500 PDF»
- Работа с российскими реестрами
- FOIA-пайплайн (США) — коротко
- Когда документы не дают результата
- Русский контекст
- Главное из урока
Чему научитесь
- Выбирать инструмент под тип документа: чистый PDF, скан, рукопись, выгрузка из реестра
- Строить пайплайн Extract → Structure → Analyze и не пытаться делать всё одной моделью
- Работать с российскими OCR-инструментами: ABBYY FineReader для критичных документов, Яндекс Vision OCR для объёма
- Парсить выгрузки из Rusprofile, СПАРК, «Арбитра» и «Контур.Фокуса» через AI, а не глазами
- Понимать, где AI ломается на документах: плохие сканы, рукописи, специализированные форматы
Для практики используем arckep.ru — все основные модели, без VPN, оплата рублями. Вы можете использовать любые другие сервисы.
Расследование часто начинается не с темы, а с пачки бумаг. Журналисту присылают 200 PDF из ответа на FOIA-запрос, выгрузку по компании из СПАРК на 80 страниц, сканы договоров 2017 года или аудиозапись заседания. До того как вы сядете писать, материал надо превратить в текст, который понимают модели, а потом — в структуру, с которой удобно работать. Это отдельный навык: правильный инструмент на каждом этапе экономит часы.
Ключевая идея урока — три разных задачи, три разных инструмента. Попытка обойтись одним ChatGPT на всём пути — самый частый источник и ошибок, и потерянного времени.
Пайплайн: Extract → Structure → Analyze
Три шага, между которыми граница жёсткая. Перепутали — получите либо галлюцинации, либо просто плохой результат.
| Шаг | Что делает | Типичные инструменты | Частая ошибка |
|---|---|---|---|
| Extract | Достать из файла чистый текст | Mistral Document AI, PyMuPDF, Tesseract, ABBYY, Яндекс Vision OCR | Скормить скан сразу LLM — модель «видит» картинку и додумывает содержание |
| Structure | Превратить сырой текст в таблицы, JSON, метаданные | Claude / ChatGPT + Code Interpreter, Mistral Document AI (сразу в structured data) | Работать с хаосом — потом не сопоставить документы между собой |
| Analyze | Задавать вопросы, искать паттерны, писать черновик | NotebookLM (М.3.3), Claude Projects (М.2.1), ChatGPT Code Interpreter | Игнорировать Extract/Structure — модель отвечает «из воздуха» по плохому тексту |
Работает по порядку. Сначала чистый текст, потом структура, потом анализ. Модель, которой скормили скан без OCR, будет отвечать по картинке — то есть галлюцинировать.
Extract: инструменты извлечения текста
Mistral Document AI — флагман для журналиста. Это OCR нового поколения от французского Mistral: понимает структуру документа (таблицы, списки, формулы, сноски), отдаёт результат сразу в Markdown или JSON. GDPR-friendly юрисдикция — для работы с персональными данными источников это важно. Платный API, цена $2 за 1000 страниц (batch-режим — $1). Сильная сторона — сложные документы: отчёты Счётной палаты, финансовые приложения, судебные акты с таблицами.
ChatGPT с загрузкой PDF. Быстро для разового анализа. Работает лучше всего на документах до ~100 страниц с текстовым слоем. Лимит на размер файла — 512 MB (единый для Plus/Pro/Enterprise), контекст до 2M токенов, в Plus — до 80 файлов за 3 часа. Реальные ограничения на токены контекста строже: длинные PDF режутся или обрабатываются частями. Актуальные лимиты на апрель 2026 сверяйте на help.openai.com — OpenAI их переписывает регулярно.
Claude с загрузкой PDF. Часто лучше держит контекст длинных текстов. В Projects есть свой лимит на размер файла в районе десятков мегабайт — актуальные цифры тоже сверяйте на docs.anthropic.com. Сильнее ChatGPT на содержательном анализе больших договоров и длинных отчётов — слабее на задачах с таблицами и расчётами.
Open-source связка: PyMuPDF + Tesseract. Журналисту с минимальными навыками скриптинга или с коллегой-разработчиком — базовый инструмент. PyMuPDF быстро вытаскивает текст из PDF с текстовым слоем. Tesseract распознаёт изображения, включая русский. Вместе — бесплатно, локально, контроль данных полный. Качество хуже, чем у платных решений, но для массовой обработки «второго эшелона» документов хватает.
OCRmyPDF. Утилита командной строки: добавляет OCR-слой к PDF, не меняя оригинал. У вас был PDF-скан — после обработки это тот же PDF, но с кликабельным и копируемым текстом сверху. Внутри — Tesseract. Бесплатно, работает пачкой через скрипт. Классическая задача — получить 500 сканов, прогнать через OCRmyPDF за ночь, утром загрузить в NotebookLM или Claude.
Российские OCR-инструменты
Для русских документов есть местные решения с преимуществом по языку и по 152-ФЗ (персональные данные остаются в РФ).
- ABBYY FineReader — эталон качества OCR на русском последние 25 лет. Лучший на сложных сканах: рукописные пометки, пятна, старые договоры. Платно, есть десктопная и облачная версии. Для критичных документов (судебные решения, нотариальные акты, нотариально заверенные копии) — разумный выбор: ошибка распознавания в таком документе может стоить материала.
- Яндекс Vision OCR (Yandex Cloud) — API для массовой обработки. Тарификация по страницам: около 13 копеек (0,13 ₽) за страницу на апрель 2026 — актуальные тарифы на aistudio.yandex.ru. Не путать с Яндекс SpeechKit: SpeechKit — распознавание речи (аудио в текст), Vision OCR — распознавание текста на картинке. Для расследования на 2000 страниц русских сканов это ≈260 рублей — дешёвый и быстрый способ получить текст, не уходя из российской юрисдикции.
- Yandex SpeechKit — когда документ пришёл в виде аудио: заседание, интервью, пресс-конференция. 152-ФЗ-совместим, поддержка пунктуации. Качество на русском — одно из лучших среди коммерческих сервисов. Альтернатива — Whisper локально (см. уроки М.4 про интервью и аудио).
- Сбер SmartSpeech — аналог SpeechKit от Сбера. Для корпоративных журналистов, работающих с материалами из инфраструктуры Сбера.
Точные цены — на yandex.cloud и developers.sber.ru. Тарифы меняются — сверяйте перед плановым объёмом.
Structure: чистый текст → рабочая таблица
После Extract у вас текстовый файл или набор файлов. Следующий шаг — привести в структуру, с которой работают модели и вы.
Три типичные задачи Structure.
- Таблицы из PDF. Финансовый отчёт с табличными данными — часто именно таблицы несут главную информацию. Mistral Document AI выдаёт их сразу в нормализованном виде. Альтернатива — ChatGPT с Code Interpreter: загружаете PDF, просите «извлеки все таблицы в единый CSV с колонкой источника и даты». Через минуту получаете рабочий файл.
- Метаданные по пачке файлов. 200 PDF разного типа — договоры, акты, переписка. Нужно пробежать по всем и собрать единый реестр: тип, дата, стороны, сумма, ссылка на исходник. Это сценарий для Claude в Projects: описываете схему метаданных в инструкциях проекта, загружаете файлы, получаете заполненную таблицу.
- Cleanup и reshape. OCR часто даёт текст с артефактами: склеенные слова, пустые строки, лишние заголовки и футеры. ChatGPT с Code Interpreter чистит такой текст пачкой: загружаете
.txt, просите «убери повторяющиеся футеры, склеенные строки, пустые блоки, оставь чистый текст с разбивкой по страницам».
Правило валидации Structure. После любой структуризации — руками проверьте 3–5 случайных записей: совпадает ли то, что модель выдала в таблицу, с тем, что реально в источнике. Галлюцинация на этапе Structure уходит в итоговую таблицу и потом в статью — там её уже не видно.
Analyze: вопросы к корпусу
Когда у вас чистый текст и структура, включается слой, который мы уже проходили.
- NotebookLM с пайплайном из М.3.3 — корпус для одного расследования, grounded-ответы с цитатами, Mind Maps, Studio для подготовки редакционных документов. Работает именно после качественного Extract.
- Claude Projects (см. М.2.1) — когда нужен авторский голос и длинный анализ. Загружаете структурированный корпус, получаете черновик, колонку, редакторский разбор.
- ChatGPT с Code Interpreter — когда Analyze — это расчёты и поиск аномалий. Сумма контрактов по году, выбросы в декларациях, корреляции между датами и событиями. Он считает, строит графики, показывает аномалии.
Здесь ключевое — LLM-анализ работает тем лучше, чем чище предыдущие шаги. Сэкономили на Extract — получили «анализ на кашу», и никакая модель это не исправит.
Практикум: «Распарсить архив на 500 PDF»
Сценарий — журналисту прислали FOIA-архив из 500 документов разного качества: часть текстовая, часть сканы, что-то на русском, что-то на английском. К концу недели нужен бэкграундер.
Шаг 1. Триаж за час. Не надо OCR всего сразу. Сначала — разведка. Открываете 20 случайных файлов: какие языки, какая доля сканов, какое качество, какой формат. По результату решаете:
- чистый PDF с текстом — в работу напрямую (PyMuPDF или Claude)
- скан хорошего качества — OCRmyPDF или Яндекс Vision OCR
- скан плохого качества или рукопись — ABBYY FineReader (вручную или по подписке)
- сложные документы с таблицами — Mistral Document AI
Шаг 2. Extract пачкой. Запускаете связку: текстовые файлы идут в PyMuPDF-скрипт (или коллега-разработчик делает), сканы прогоняются через OCRmyPDF за ночь. К утру у вас 500 текстовых версий с метаданными (имя исходного файла, дата из заголовка, тип документа).
Шаг 3. Structure — общая таблица. Заводите один CSV: колонки id, source_file, type, date, actors, amount, summary. Через Claude в Projects или через ChatGPT Code Interpreter — автоматическое заполнение колонок по тексту каждого файла. Модель видит документ — модель пишет строку в CSV.
Шаг 4. Валидация. Случайная выборка 10 строк, сверка с оригиналом. Если 1–2 строки содержат ошибки — нормально, поправили, идём дальше. Если 5+ — пайплайн Extract плохо отработал на этих типах документов, надо возвращаться и переделывать для них.
Шаг 5. Analyze через NotebookLM. Разбиваете 500 файлов на 3–5 тематических ноутбуков по 100 документов (см. М.3.3 — правило «один notebook = одна история»). Запускаете Mind Map, Studio Timeline, Audio Overview. Получаете редакционный брифинг — и видите, где конкретно сидит история в этом массиве.
Шаг 6. Финальная проверка ссылок. Перед тем как отдать черновик редактору — чеклист из М.3.1: каждое фактическое утверждение в материале сверено с документом по прямой цитате и номеру источника.
Итог: 500 PDF, от архива к бэкграундеру — 3 рабочих дня вместо двух недель без AI.
Работа с российскими реестрами
Часть документов к журналисту приходит не PDF-ом, а как выгрузка из платной базы. Здесь AI работает на слое Structure и Analyze — само получение данных остаётся ручным или через API базы.
| Реестр | Что содержит | Формат данных | Как подключать AI |
|---|---|---|---|
| Rusprofile (rusprofile.ru) | Карточки российских юрлиц и ИП: руководство, контакты, история изменений | Бесплатные карточки на сайте + платные подписки от 5 400 ₽/год с экспортом в XLS/CSV (публичного API нет) | Копируете страницу или экспортируете XLS → Claude/ChatGPT для сверки, таймлайн смены директоров |
| СПАРК (spark-interfax.com) | Платный enterprise: связи компаний, бенефициары, арбитраж, финансы | Выгрузка в XLS/CSV | Claude Code Interpreter для анализа связей и таблиц |
| Контур.Фокус (focus.kontur.ru) | Средний сегмент: связи, аффилированность, госконтракты | Выгрузка XLS, API | Тот же паттерн, что со СПАРК |
| «Арбитр» (kad.arbitr.ru) | Карточки арбитражных дел — бесплатно и официально | Веб-карточки, PDF-решения | PDF решения → OCR (если скан) → NotebookLM для корпуса решений |
| Росреестр (ЕГРН) | Права на недвижимость | Платные выписки PDF | OCR выписок → таблица объектов → Claude для проверки на связанных лиц |
Публичного API у «Арбитра» и Rusprofile на апрель 2026 — нет; Rusprofile даёт только подписку + экспорт в XLS/CSV. API есть у «Контур.Фокуса» и СПАРК (в корпоративных тарифах). Перед закупкой уточняйте у менеджера и сверяйте с актуальными тарифами на сайте.
Паттерн журналиста. Выгружаете из СПАРК связи компании → сырой XLS открываете в Claude Code Interpreter → просите построить граф аффилированности и выделить подозрительные совпадения (общие директора, общие адреса). За 10 минут — визуализация, которая вручную собиралась бы день. Дальше — фактчек каждой связи руками, не полагаясь на граф.
FOIA-пайплайн (США) — коротко
Для американских расследований рабочий пайплайн выглядит так:
- FOIA-запрос — Claude-скиллы из репозитория jamditis/claude-skills-journalism помогают составить грамотный запрос и отслеживать его.
- Приёмка ответа — часто через MuckRock (платформа FOIA-трекинга).
- Хранение — DocumentCloud даёт общий архив с OCR и публикацию документов вместе со статьёй.
- OCR масштаба — Google Pinpoint для тысяч документов, entity recognition, кросс-поиск.
- Редакционный анализ — NotebookLM над выделенным ядром или open-source RAG (Dewey-подобный, см. М.3.3).
Для российской практики прямой аналог MuckRock отсутствует. Запросы в госорганы идут через Госуслуги, ответ — PDF или скан почтой. Архивирование приходится собирать самим: Google Drive или внутренний NAS редакции плюс табличный реестр запросов.
Когда документы не дают результата
Честный caveat, чтобы не потратить день на заведомо проигрышный сценарий.
- Очень плохое качество скана — размытие, перекос, блики от сканирования через телефон. OCR на таком даёт шум. Решение — ручная предобработка в графическом редакторе (выровнять, поднять контраст) перед OCR, либо ABBYY FineReader для сложных случаев.
- Рукописи — надёжного автоматического распознавания на апрель 2026 нет. AI может дать гипотезу, но она требует ручной сверки каждой строки. Для исторических архивов и блокнотов источников — пока работа палеографа.
- Схемы, карты, медицинские снимки — требуют vertical-инструментов: геопакеты для карт, DICOM-вьюеры для медицины. LLM по ним работают только как помощник описания, не как дешифратор.
- Документы на редких языках и старых орфографиях — качество OCR резко падает. Для дореволюционной орфографии, татарского, якутского и других — ABBYY в специальных сборках или ручная работа.
Русский контекст
Для критичных документов — ABBYY. Для объёма — Яндекс Vision OCR. Для аудио — SpeechKit или Whisper (детально в М.4). Это базовый российский стек журналиста, работающего с документами.
Главное из урока
- Три шага — три инструмента. Extract — OCR и парсеры, Structure — Claude/ChatGPT с Code Interpreter, Analyze — NotebookLM и Claude Projects. Не смешивайте.
- Mistral Document AI — флагман OCR для FOIA и сложных документов с таблицами. ChatGPT и Claude с PDF — для быстрого разового анализа.
- Open-source-связка PyMuPDF + Tesseract + OCRmyPDF — бесплатный массовый Extract. Работает локально, контроль данных полный.
- Российский OCR-стек: ABBYY FineReader для критичных документов, Яндекс Vision OCR для массовой обработки. Яндекс SpeechKit — для аудио, не путать с Vision.
- Российские реестры (Rusprofile, СПАРК, «Контур.Фокус», «Арбитр», Росреестр) подключаются к AI через Structure-слой: выгрузка → Claude/ChatGPT с Code Interpreter → граф связей и таблица аномалий.
- Валидация обязательна на каждом шаге. Ошибка OCR уходит в таблицу, ошибка таблицы уходит в статью. Случайная сверка 5–10 записей с оригиналом — дешевле репутационного скандала.
- AI ломается на плохих сканах, рукописях, картах и редких языках. Эти случаи — ручная предобработка, ABBYY или эксперт.
В следующем уроке М.3.5 — детальный разбор российских баз: как пользоваться Rusprofile, СПАРК, «Контур.Фокусом» и «Арбитром» для проверки контрагентов, поиска связей и проверки чиновников. Тот же пайплайн, но глубже и с конкретными сценариями работы.