
В череде серых офисных будней возникла насущная проблема. Есть сканы договоров, содержащие адреса пунктов (заправок) в табличной форме. Необходимо занести названия и адреса в базу, добавив геоданные. Можно сделать вручную, но это не наш метод. На дворе XXI век, автоматизация, да и простую лень никто не отменял. Бесплатные OCR распознаватели справляются плохо, особенно с таблицами, платные — не пробовал, жаба бухгалтер не позволяет. Что же делать? И тут Qwen спешит на помощь! Скормил лист — вроде неплохо, вот оно счастье! Ан нет, опять «эмпирический опыт». Давайте посмотрим, что получилось, и с какими «когнитивными искажениями» пришлось столкнуться.
«Конница стояла над обрывом. И все было бы хорошо, если бы не одно но…»
Итак, поехали! Загружаем скан договора, содержащего таблицу АЗС с адресами, в формате pdf. Просим: «OCR распознать документ». Готово! Смотрим, что получилось. А получилось, на первый взгляд, прекрасно. Структурированный текст, без артефактов, таблицы можно выгрузить в формате csv или xlsx, из замечаний — фамилии подписантов искажены, как и некоторые слова. Но в целом — вроде все здорово, выгружай и работай дальше! Берем адрес, яндекс карты, и смотрим. Заправка? — заправка, координаты — вот они! Идем дальше. Заправка? — а нет заправки! Смотрим рядом — и рядом нет! Как так то?! Что пошло не так? Сверяем адрес в распознанном тексте с исходником, и …

Нате вам! Смотрим внимательно. «Ноградская» стала «Логранской»? Бывает. Буква «б» стала цифрой 6 — случается. Но позвольте — «50 лет Пионерии» стала «50 лет Победы» а «Пионерская» — «Комсомольской»?
А что дальше? А дальше еще смешнее.

Кроме типичных ошибок и интерпретаций типа «Гавриловых → Таврилоповых», «Чудного → Нужного», появилось много странного и настораживающего. Железная дорога стала кольцевой, ПМК стало МУП. А география вообще изменилась! Вместо г.Купино возник г. Куйбышев, Доволенский р‑н Довольное с. стало Здвинский р‑н, с. Здвинское, а р.п. Чистоозерное стал п.г.т. Искитимское (такого вообще нет, есть г. Искитим). Расстояние между этими пунктами не близкое, единственное что их объединяет — это райцентры. И, вишенка на торте — улица Щорса стала улицей Горького (с чего бы?). Попытка вразумить LLM промптами типа «OCR распознавание документа. Распознавать данные в таблицах точно. Если распознается с вероятностью меньше ХХ% ставить знак „!!!!!“» к успеху не привели. Машина стояла на своем.
Ну штош… Попробуем зайти с козырей. Заставим упрямую сыграть в «Поле чудес» — сначала прочитать по буквам, а потом угадать слово.

Failed. К Победе добавился Октябрь…
На этом эксперименты пришлось закончить, так как задачи разработать промпт не стояло, а время поджимало. Но некоторые выводы сделать можно.
Векторизация, заложенная в модель, создает видимость «правильности». И, как мы видим, логика распознавания может быть весьма причудливой. Скорее всего, «50 лет Победы» в географических названиях встречается существенно чаще, чем «50 лет Пионерии», а для коммунистического Китая что комсомол, что пионерия — молодежные объединения («Пионерская» → «Комсомольская»), райцентры — это райцентры (какая разница какие, в целом же правильно?).
Главный же вывод тривиален. При распознавании текстов, особенно содержащих чувствительную информацию, лучше сверять исходник и результат очень тщательно, может даже побуквенно (замена «не» на «но» в юридическом тексте может привести к ошеломляющему результату). А уверенность машины в своей правоте — разве не аналог эффекта Даннинга — Крюгера?
P. S. Остается загадкой — чем же комдив Щорс так не угодил?
Комментарии (6)

alan008
01.11.2025 05:44У DeepSeek недавно вышла новая модель для OCR. Насчет качества ничего не скажу, не пробовал.

Tzimie
01.11.2025 05:44Один раз я ехал в гости на улицу Гагарина, а приехал на Космонавтов в тот же дом и квартиру

sshmakov
01.11.2025 05:44Похоже, что первичный OCR надо делать другим инструментом, не нейросетью или хотя бы не этой нейросетью. А потом делать исправление ошибок, сверку по ФИАС.

KonstantinTokar
01.11.2025 05:44То же при переводе некоторых текстов - вылезают дикие фантазии. Причём текст выглядит стройным и осмысленным, проверить результат сложно.

AdrianoVisoccini
01.11.2025 05:44Но позвольте — «50 лет Пионерии» стала «50 лет Победы» а «Пионерская» — «Комсомольской»?
Пионеры победили, в честь этого их приняли в комсомол. Вроде все логично, не понимаю претензий
maedv
Файнридеру тоже доверяю с трудом, активный словарь подставляет аналогичные чудеса