Границы строк и столбцов сервис ищет до того, как прочитать хоть одну букву, и дальше читает каждую клетку отдельно — по своим координатам. Здесь показано, что это даёт на ваших пяти документах. Все пять прогнаны заново — дважды: в рабочем порядке «сначала сетка» и в обратном, когда сначала читается текст, а потом строка режется на клетки по просветам. Подготовка снимка, язык и движок в обоих прогонах одинаковые: отличается только порядок.
Порядок работы с каждой страницей такой:
Проверить это можно и глазами: на экране проверки ткните в любое значение справа — слева на скане подсветится прямоугольник ровно той клетки, из которой оно взято.
rus+eng). В ваших документах
в одной строке встречаются и русские слова, и латиница в названиях товаров
(«Kiilto», «HP»), и одним русским языком латинские марки читаются неверно.oem 3): на печатных таблицах он
заметно устойчивее старого посимвольного.psm 7) — иначе движок пытается разбить её на несколько строк и
теряет часть цифр. Клетка в несколько строк (длинное наименование товара)
читается как блок строк (psm 6).preserve_interword_spaces): без этого «21 902,40» превращается в
«2190240».Это не на слух: настройки перебраны на ваших документах (Пример 2, Пример 4, Пример 5 — те, где в эталоне есть товарные строки с числами). Сетка, подготовка снимка и правила сверки во всех прогонах одни и те же, отличается только настройка чтения клетки.
| Как читаем клетку | Верных значений | Доля |
|---|---|---|
| всегда блок строк (psm 6), rus+eng | 147 из 182 | 80,8 % |
| режим по высоте клетки, только русский | 146 из 182 | 80,2 % |
| режим по высоте клетки, rus+eng — рабочий | 143 из 182 | 78,6 % |
| всегда одна строка (psm 7), rus+eng | 140 из 182 | 76,9 % |
Что показал перебор: всегда блок строк (psm 6), rus+eng — 80,8 % верных значений, рабочий вариант — 78,6 %. Разница в 4 значения из 182. Настройки самого распознавания на этом шаге не менялись: правка движка выходит за рамки задачи, поэтому число зафиксировано как есть — менять или нет, решаете вы.
Все пять документов прогнаны заново. В каждой паре чисел слева — обратный порядок (сначала текст, потом нарезка строки на клетки), справа — рабочий (сначала сетка, потом чтение клеток).
| Документ | Таблиц найдено текст сначала / сетка сначала |
Размер сетки строк × столбцов |
Строк сверено текст сначала / сетка сначала |
Значений в чужой колонке текст сначала / сетка сначала |
Значений слиплось в клетке текст сначала / сетка сначала |
Верных значений рабочий порядок |
|---|---|---|---|---|---|---|
| Пример 1 № 25 0d7b0e7c-e4b6-40b4-9a62-6eec02c07c12.pdf |
11 / 4 | 11×2, 8×3, 13×19, 19×19 | 5 / 20 из 20 | 0 / 9 | 3 / 1 | 95,0 % |
| Пример 2 № 4 1c6c0fac-f82a-4219-be4b-4918653068f4.pdf |
11 / 3 | 3×6, 4×9, 4×11 | 2 / 3 из 5 | 0 / 1 | 1 / 2 | 34,3 % |
| Пример 3 № 756 1f0b3cfd-c38a-433c-a029-5122aab57d6b.pdf |
3 / 2 | 6×2, 12×3 | 0 / 0 из 1 | 0 / 0 | 0 / 0 | 0,0 % |
| Пример 4 № ЦБ-444 2b0791f5-c8d2-4157-beea-e8fe6c362de8.pdf |
3 / 3 | 12×2, 10×3, 4×16 | 3 / 3 из 3 | 2 / 0 | 2 / 0 | 76,2 % |
| Пример 5 № 1189/4 3e43a1d4-288d-42ec-989a-385ff87719d4.pdf |
8 / 4 | 10×2, 18×16, 2×16, 11×2 | 11 / 18 из 18 | 13 / 0 | 39 / 1 | 92,9 % |
| Итого | 36 / 16 | — | 21 / 44 из 47 | 15 из 68 (22,1 %) / 10 из 275 (3,6 %) | 45 из 98 (45,9 %) / 4 из 286 (1,4 %) | 84,5 % |
Честная оговорка к сравнению. Считать сдвиг и склейку можно только у значения, которое вообще нашлось, поэтому рядом всегда стоит, из скольких значений считали. При обратном порядке строк товарной таблицы нашлось меньше (21 против 44 из 47), и сверять там было почти нечего: 98 значений против 286. Именно поэтому смотреть надо на доли, а не на штуки: слиплось 45,9 % значений против 1,4 %, уехало в чужую колонку 22,1 % против 3,6 %.
Это те места, которые исправляются руками на экране проверки: ткнуть в значение справа — слева подсветится клетка на скане, поправить, изменение попадёт в выгрузку.
Замер точности по каждому файлу — сколько значений прочитано верно и что именно ломается. Что даёт подготовка снимка — файл без подготовки и с подготовкой. Сверка с эталоном — эталон и распознанное рядом.