Извлечение сумм: независимый набор и обнаруженная ошибка формата
Обработчик читает полные текстовые карточки, а отчет отдельно считает точность на настройке и на отложенных семействах документов.
Задача и принятое решение
На простых строках «Итого: 1200,00» регулярное выражение выглядит надежным. В независимом наборе встречается «Всего к оплате»; если не показать этот отказ, результат будет слишком благоприятным.
Я разделила документы по семейству источника до запуска. Для каждого сохранила текст и вручную заданную контрольную сумму. На отложенном наборе правило намеренно не достраивает неизвестный формат: несовпадение видно в отчете.
Проверяется небольшой детерминированный парсер текстового слоя. Это не оценка OCR и не заявленная точность на произвольном PDF.
Проверить решение
Измените исходные строки или параметры и пересчитайте результат. Данные остаются в этой странице.
| Документ | Набор | Извлечено | Эталон | Результат |
|---|---|---|---|---|
| DOC-001 | настройка | 1200 | 1200 | Совпало |
| DOC-002 | настройка | 750 | 750 | Совпало |
| DOC-003 | настройка | 450 | 450 | Совпало |
| DOC-004 | настройка | null | null | Совпало |
| DOC-005 | настройка | 1520 | 1520 | Совпало |
| DOC-031 | контроль | 1050 | 1050 | Совпало |
| DOC-032 | контроль | null | 900 | Ошибка формата |
| DOC-033 | контроль | null | null | Совпало |
| DOC-034 | контроль | 1875 | 1875 | Совпало |
| COPY-001 | контроль | 1200 | 1200 | Исключен: утечка |
DOC-032 показывает реальный отказ правила на новом заголовке суммы. Эталон после запуска не изменялся.
Исходный набор
Авторский контрольный набор; не клиентские документы и не результаты внешней модели.
Изменить входные строки
Посмотреть исходные строки
| Документ | Семейство | Набор | Текст | Эталон |
|---|---|---|---|---|
| DOC-001 | F1 | настройка | Заказ A Бумага: 2×600 Итого: 1200,00 | 1200 |
| DOC-002 | F2 | настройка | Заказ B Лоток: 3×250 Итого: 750,00 | 750 |
| DOC-003 | F3 | настройка | Заказ C Папка: 10×45 Итого: 450,00 | 450 |
| DOC-004 | F4 | настройка | Заказ D Черновик без общей суммы | |
| DOC-005 | F5 | настройка | Заказ E Коробка: 4×380 Итого: 1 520,00 | 1520 |
| DOC-031 | F31 | контроль | Заказ X Крепеж: 5×210 Итого: 1050,00 | 1050 |
| DOC-032 | F32 | контроль | Заказ Y Кабель: 2×450 Всего к оплате: 900,00 | 900 |
| DOC-033 | F33 | контроль | Заказ Z Сумма еще не определена | |
| DOC-034 | F34 | контроль | Заказ W Поставка: 1×1875 Итого: 1 875,00 | 1875 |
| COPY-001 | F1 | контроль | Заказ A Бумага: 2×600 Итого: 1200,00 | 1200 |
Что получилось
На четырех независимых карточках правило правильно прочитало три, одну не разобрало. Копия документа настройки исключена. Ошибка на заголовке «Всего к оплате» сохранена как основание для следующей версии, а не исправлена в эталоне.
Выполненная проверка
| Проверка | Результат |
|---|---|
| На независимых четырех документах 3 совпадения и 1 ошибка | Пройдена |
| Копия семейства настройки исключена из контроля | Пройдена |
| Отсутствующая сумма корректно остается null | Пройдена |
| Новая копия контроля не скрывает семейство настройки | Пройдена |
Набор мал и авторский: 3/4 описывает только эти четыре карточки. Для оценки реального архива нужен отдельный корпус документов.
Скачать материалы и повторить проверку
source.json · source.csv · result.json · result.csv · engine.js · verify.cjs · checks.json · style.css
Локальная проверка: node verify.cjs. Нужен Node.js; сетевые обращения не выполняются.