Найди слова

Публикация № 1709030 11.08.22

Приемы и методы разработки - Математика и алгоритмы

Расширение tesseract OCR распознавание найди слова распознать cuneiform алгоритм зрение запрос игра программирование

Пример примитивной автоматизации с помощью 1С (и не только).

Приветствую, коллеги!

Недавно в телеге был конкурс от Инфостарта, в котором предлагалось найти слова в матрице из букв, причем направление слов может быть по всем 4 сторонам света.

 

 

Я подумал, почему бы не доверить данную работу компьютеру?

Сначала прикинул суть алгоритма: изображение распознается, получается матрица из букв, строятся все возможные линии, берется словарь, загружается в регистр и запросом 1С происходит поиск. Изи!

Так набросал расширение, в котором 1 регистр сведений и 1 обработка.

 

 

Скачал с Инета словарь на 45 килослов:

 

 

Ну а далее накидал на форму немного интерактива, закодил алгоритм и получилось нечто.

 

 

Думаю, что более детальное описание тут ни к чему, всё просто и быстро (уложился в 200 строк г. кода).

Tesseract очень хорошо распознает (сначала попробовал на старом CuneiForm из документооборота, но из него вылезла каша).

Так что кому интересно, берите, пользуйтесь. Код открыт.

Tesseract в комплекте НЕ идёт, скачать и установить придется самим, ну и подключить русский язык к нему, если нужен )

Из тонкостей механизма: перед поиском многострочный словарь нужно загрузить в РС (по дефолту кодировка cp1251), из всей картинки оставить только поле с буквами (иначе не пройдет проверку корректности распознавания). Работает на платформе 8.3.18 и 8.3.20 (будет и на более младших, т.к. специфики нет).

 

Данный алгоритм можно применять в качестве OCR в 1С.

Скачать файлы

Наименование Файл Версия Размер
Найди слова:

.cfe 11,83Kb
0
.cfe 1.0 11,83Kb Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 6655 11.08.22 14:52 Сейчас в теме
Колонки и строки жестко разделяются или динамически (распознаются их границы через OCR)?
3. SerVer1C 501 11.08.22 14:57 Сейчас в теме
(1) Я беру все вертикальные и горизонтальные линии, а также их обратные версии, т. е. для данной картинки 40 линий по 20 символов. И направляю их в запрос. OCR возвращает 20 слов по 20 букв.
4. tormozit 6655 11.08.22 15:17 Сейчас в теме
(3) Иными словами разбиение на строки и колонки жесткое - по пиксельным смещениям.
5. SerVer1C 501 11.08.22 15:19 Сейчас в теме
(4) Получается, да. Tesseract с этим хорошо справляется. Рамки вокруг букв игнорируются, возвращается почти чистый текст.
6. tormozit 6655 11.08.22 15:26 Сейчас в теме
(5) Меня как раз интересовала динамическая разбивка на колонки и столбцы средствами OCR. Если разбивка по координатам, то значит этот OCR не умеет сам находить границы колонок и строк.
7. SerVer1C 501 11.08.22 15:28 Сейчас в теме
(6) Так строки он чётко находит. Возможно, если гибко настроить распознавание в tesseract, то он и вертикальные слова найдет.
8. CheBurator 3074 12.08.22 12:28 Сейчас в теме
ну... так неинтересно... вот если слова можно читать с изменением направления чтения
9. SerVer1C 501 12.08.22 12:40 Сейчас в теме
(8) Не понимаю, про что вы говорите. Слова ищутся в матрице, даже если они направлены снизу вверх или справа налево.
10. CheBurator 3074 12.08.22 12:47 Сейчас в теме
(9) например:
1. стартуем,
2. идем вниз,
3. поворачиваем на 90 градусов в любую строну,
4. идем дальше
...повторять 3-4
11. SerVer1C 501 12.08.22 12:49 Сейчас в теме
(10) Теперь понял. Изначально такого условия задачи не стояло... Но это уже не средствами 1С делать )
Оставьте свое сообщение

См. также

Нечеткое сравнение строк. Метод Джаро-Винклера на 1С Промо

Математика и алгоритмы Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Схожесть строк. Метод Джаро-Винклера. В обработке реализован алгоритм нечеткого сравнения строк.

3 стартмани

20.04.2018    28292    109    Serg1701    19    

Если хочется ООП с наследованием и полиморфизмом

Математика и алгоритмы Языки и среды Платформа 1С v8.3 Абонемент ($m)

Объектно-ориентированное программирование (ООП), как методология или парадигма, в 1С отсутствует. И не похоже, чтобы в ближайшем будущем оно появилась. Однако со стороны сообщества не прекращаются попытки привнести в процесс разработки некоторые его элементы и подходы. Предлагаю вашему вниманию свой вариант эмуляции ООП. Основной упор в статье сделан на обеспечение наследования и полиморфизма (вызов методов, определенных в классах-потомках, из методов классов-предков и наоборот).

1 стартмани

21.07.2022    1044    0    Alxby    8    

IDN и Punycode в 1С

Универсальные функции Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка "Punycode конвертер".

1 стартмани

01.05.2022    1397    2    SpaceOfMyHead    0    

Реализация задачки с собеседования: найти максимальное число, но не более, чем ограничено параметром

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Реализация небольшой задачки с собеседования: найти максимальное число в матрице чисел размерностью M*N, заполненной случайными числами, но не большее, чем задано ограничивающим параметром. Сразу скажу, это не с моего собеседования. Просто интересно было решить ее на платформе 1С.

1 стартмани

31.03.2022    1919    0    serverstar    15    

Определение кратчайших путей, критических путей одним запросом Промо

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Еще два примера применения алгоритма каскадного матричного умножения, впервые описанного в статье «Транзитивное замыкание запросом» http://infostart.ru/public/158512/

1 стартмани

07.04.2014    43745    62    ildarovich    31    

Модель распределения суммы по базе

Математика и алгоритмы Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    3438    5    kalyaka    11    

Вычисление хеша по алгоритму fnv1a

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Вычисление средствами платформы хеш суммы по алгоритму fnv1a 32/64.

1 стартмани

01.02.2022    1977    0    dim_zal    0    

Решение задачи Эйнштейна на 1С (управляемые формы)

Математика и алгоритмы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Пример решения классической задачи Эйнштейна с задаваемыми условиями и с выводом итераций на управляемых формах.

1 стартмани

13.08.2021    3330    2    VGorkunov    4    

Полная методичка к курсу "Программирование 8.2" Промо

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

580 страниц знаний! Публикую методичку, а точнее стенограмму курса по подготовке программистов 8.2.

10 стартмани

09.01.2014    60658    1377    GROOVY    100    

Разработка с учетом Показателей

Математика и алгоритмы Анализ и проектирование ИТ-систем Платформа 1С v8.3 Россия Абонемент ($m)

Время от времени приходится разрабатывать алгоритмы расчета с некоторыми условными значениями. Я их называю Показателями. Данная статья предлагает один из методов работы с Показателями.

1 стартмани

04.06.2021    3295    0    blockcode    1    

Машинное обучение и анализ данных

Математика и алгоритмы Идеи и тренды в разработке Платформа 1С v8.3 Абонемент ($m)

Данная конфигурация предназначена для автоматизации процесса машинного обучения и анализа данных средствами 1С.

1 стартмани

04.05.2021    5709    15    cdrw3    11    

Алгоритм и обработка для проведения розыгрыша среди анкет

Математика и алгоритмы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Описанный алгоритм (и приложенная обработка) позволяют организовать проведение розыгрыша среди анкет практически на любой управляемой конфигурации и платформе 1С 8.

1 стартмани

12.03.2021    3244    0    delta    2    

Разработка синтаксического анализатора языка запросов на языке 1С Промо

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Пример разработки генератора для PEG парсера

1 стартмани

03.12.2014    29727    5    so-quest    70    

Алгоритм Карацубы

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Реализация метода Карацубы - функции быстрого умножения, которая позволяет перемножать два n-значных числа с битовой вычислительной сложностью (реализация на платформе 1С:Предприятие 8.3 (8.3.9.2233))

1 стартмани

31.08.2020    3100    0    Tatsiana    3    

Решение задачи Эйнштейна на платформе 1с

Математика и алгоритмы Платформа 1С v8.3 Абонемент ($m)

Недавно мне попалась интересная задача по созданию обработки, которая будет решать "задачу Эйнштейна". Изначально кажется, что можно просто прописать все явные и неявные условия через "Если", но это не верно. При таком подходе задачу решает ваш мозг, а решить задачу должна сама обработка основываясь только на условиях явно прописанных в тексте. Разработчик не должен делать никаких выводов и прописывать косвенные условия вытекающие из условия задачи. Условия задачи в коде должны переставляться в любом сочетании и это не должно влиять на решение.

1 стартмани

12.08.2020    4804    4    itmind    2    

Пример программирования методом Конечных автоматов на базе написания парсера CSV

Математика и алгоритмы Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Способ реализации программирования методом Конечного автомата на примере написания парсера CSV-файла с обработкой двойных кавычек и многострочным текстом в ячейках.

1 стартмани

17.06.2020    5005    0    Salimbek    3    

Наш ответ американским лекторам Промо

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Это спойлер к замечательной публикации «Алгоритмы. Часть 1.1. Динамические соединения». Здесь описывается гораздо более быстрый способ решения задачи динамического связывания при отсутствии ограничений на используемые структуры данных

1 стартмани

11.04.2014    26632    6    ildarovich    36    

Расчет времени циклов солнца

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Расчет времени восхода, полдня, заката и прочих стадий движения светила на горизонте.

1 стартмани

25.05.2020    2438    0    116hrus    0    

Treemapping. Демонстрационная обработка

Математика и алгоритмы Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Пример реализации диаграммы вида Treemap на 1С

1 стартмани

27.02.2020    7239    16    randomus    4    

Генератор случайных чисел по заданному закону распределения

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Для реализации проекта по имитационному моделированию возникла необходимость в функции, которые бы создавали массив случайных чисел, сгенерированных по определенным законам. Предлагаю обработку, которая содержит необходимые функции и средства визуализации. Работает в любой конфигурации.

1 стартмани

06.01.2020    3552    5    WalterFOX    1    

Еще один взгляд на проблему «жизнь без последовательностей». Часть вторая (практическая) Промо

Математика и алгоритмы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 1С:Управление производственным предприятием 1С:Управление нашей фирмой Россия Абонемент ($m)

В [1 - http://infostart.ru/public/62938/] был предложен метод корректировки списаний по партиям при изменении документов задним числом. Использование данного метода позволяет контролировать остатки при неоперативном проведении и поддерживать учет по партиям всегда в актуальном состоянии, то есть обходиться без механизма последовательности документов. Собственно метод заключался в решении задачи правильного списания по партиям как задачи линейного программирования. В доказательство работоспособности метода приводится следующая «каркасная» конфигурация «Полигон», в которой этот метод реализован.

1 стартмани

19.08.2010    34182    168    ildarovich    35    

Алгоритмы поиска пути в графе. Часть 2

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Новые возможности, ранее реализованных алгоритмов поиска пути в графе на платформе 1С 8.3.

1 стартмани

13.08.2019    11560    10    RonX01    10    

Алгоритмы поиска пути в графе

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Реализуем алгоритмы поиска пути в графе на платформе 1С 8.3, такие как алгоритм А*, поиск в ширину, жадный поиск, алгоритм Дейкстры и вконце волновой.

1 стартмани

09.07.2019    26695    13    RonX01    11    

Включаем звук в 1С. Доступно и всерьез. Промо

Математика и алгоритмы Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Как сделать воспроизведение звука в 1С без внешних компонентов? Решаем средствами интернета. Для тонкого, толстого и web-клиента.

1 стартмани

30.12.2013    92405    277    sikuda    37    

Таблица принятия решений, таблица истинности

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Два инструмента для разработки алгоритмов.

1 стартмани

02.05.2019    5917    0    pm74    2    

Сортировка кучей (пирамидальная сортировка, heap sort)

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Алгоритм сортировки массива кучей (пирамидальная сортировка).

1 стартмани

29.03.2019    5081    4    FirstSmart    0    

Алгоритм заполнения шапки табличного документа по дереву значений

Математика и алгоритмы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Произвольное дерево значений превращается в шапку табличного документа.

1 стартмани

03.03.2019    6142    3    Алексей777    0    

Честное распределение суммы по таблице значений (3.1.4.1) Промо

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 1С:Торговля и склад 7.7 Россия Абонемент ($m)

Варианты "честного" распределения суммы по таблице значений (табличной части)

1 стартмани

29.10.2008    51084    2378    alexk-is    61    

Случайная неслучайная скидка

Ценообразование, анализ цен Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Абонемент ($m)

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

1 стартмани

24.01.2019    3362    0    Hokum    1    

Пример решения математической задачи: вывод ряда чисел где сумма двух ненулевых слагаемых, составленных из знаков числа, возведенного в квадрат, равняется самому числу

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Задача предполагает вывод ряда чисел, удовлетворяющих условию: сумма двух ненулевых слагаемых, составленных из знаков числа, возведенного в квадрат, равняется самому числу (fun only).

1 стартмани

27.12.2018    4696    0    alexander-lubich    13    

Конспект лекций по курсу «Автоматизированные информационные системы» Промо

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Конспект лекций по курсу «Автоматизированные информационные системы» составлен на основании требования Государственного образовательного стандарта среднего профессионального образовании к содержанию и уровню подготовки выпускника по специальности 230103 «Автоматизированные системы обработки информации и управления». В конспекте есть общие сведения о методике 1С:Профкейс. Конспект лекций разработал: канд. техн. наук, доцент Космачев С.Н.

1 стартмани

07.06.2012    29835    187    ksnik    19    

Решение задачи коммивояжера алгоритмом Литтла

Математика и алгоритмы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Задачи дискретной оптимизации на моей практике встречаются не часто, но решение именно таких задач делает бизнес более эффективным в явном виде (уменьшаются потери материалов и времени и т.д.). В моем случае мы оптимизируем расход краски, упорядочивая очередь производственных заданий оптимальным образом. Поиск оптимального решения привел меня к задаче коммивояжера и его решению посредством частного случая метода Границ и ветвей - алгоритму Литтла. Возможно, кому-то из разработчиков придется решать подобную задачу, и мои наработки пригодятся.

1 стартмани

12.04.2018    14158    39    van_za    20    

Умножение больших чисел методом Карацубы

Математика и алгоритмы Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Алгоритм умножения больших чисел методом Карацубы, более эффективный, чем метод умножения в столбик.

1 стартмани

10.01.2018    7955    0    Kosmovski    10    

Определение похожести строк или фраз (алгоритм нахождения расстояния Дамерау Левенштейна)

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Реализация алгоритма поиска расстояния Дамерау Левенштейна (Damerau–Levenshtein distance) для определения похожести слов или фраз.

1 стартмани

14.12.2017    13173    68    PerlAmutor    14    

Комбинатор. Подбор суммы из набора чисел. Обработка для 1С версии 8.х (УФ)

Математика и алгоритмы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Как следует из названия, предлагаемая обработка позволит перебрать набор чисел и выбрать те из них, которые в сумме равны заданному числу. Имеется целый ряд настроек, позволяющих проделать эту "титаническую" работу быстро и с комфортом. И если такой набор чисел существует, - он будет найден. А если существует множество таких наборов, - они тоже могут быть найдены (не все, разумеется). Ибо, полный перебор может, в зависимости от мощности набора чисел, потребовать времени, соизмеримого со временем существования Вселенной. А разве мы можем столь долго ждать?

1 стартмани

19.05.2017    25526    82    romasna    31    

Тестируем алгоритмы для торговых роботов срочного рынка РТС

Займы, кредит, лизинг Математика и алгоритмы Платформа 1С v8.3 Финансовые услуги, инвестиции Россия Управленческий учет Абонемент ($m)

1С может много чего. И ее возможности давно вышли за рамки изначально задуманного. В качестве такого примера решил выложить конфигурацию для тестирования простой стратегии торговли фьючерсом на пару Доллар-Рубль на срочном рынке РТС.

1 стартмани

29.04.2017    15709    13    rrider    2    

Задачи по программированию на 1С

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Сборник задач по программированию. Начало...

1 стартмани

18.04.2017    28614    6    Xershi    10    

Пополнение товара на складе по теории ограничения систем

Оптовая торговля Склад и ТМЦ Математика и алгоритмы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Управленческий учет Абонемент ($m)

В статье рассматривается алгоритм пополнения склада по теории ограничений систем. Сами подходы описаны в книге Элия М. Голдратта «Я так и знал! Теория ограничений для розничной торговли».

1 стартмани

26.01.2017    20949    17    vva    6    

Набор математических функций

Универсальные функции Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Небольшой набор математических функций для работы с массивами чисел.

1 стартмани

12.01.2017    20184    7    SvoyakMartin    23    

1С+Классы. Версия-0

Разработка внешних компонент Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Разработано ООП-расширение языка 1С, включающее (но не ограничивающееся): Классы как абстрактные типы данных с элементами «переменная», «свойство», «функция», «процедура»; Интерфейсы как абстрактные классы без элементов состояния («переменная») и без привязки к реализации методов (свойств, процедур, функций) при определении; Имплементация (реализация) интерфейсов классами; - одиночное открытое наследование; Области видимости «внутренняя» (private), «экспорт» (public), «защищенная» (protected); Статические элементы классов (общие для всех экземпляров класса); Замещение (переопределение реализации) методов при наследовании – «виртуальные методы, свойства»; Сокрытие (затенение) обычных (не замещаемых) элементов при наследовании; Перегрузка процедур и функций по количеству и типам данных аргументов; Конструкторы класса; Деструктор класса; Слабые ссылки; Делегаты.

1 стартмани

28.10.2016    26001    7    IntelInside    68    

Генетический алгоритм для решения простой задачки

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Генетический алгоритм в решении задачи: Необходимо расставить правильно (по другому) скобки, чтобы получилось 850 (1 + 2) (3 + 4) (5 + 6) (7 + 8) (9 + 10) (11 + 12) (13 + 14) + 15

1 стартмани

26.09.2016    13218    5    eugeniezheludkov    4    

Мультиквайн на 1С. Курица и яйцо

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Мультиквайн - программа, выдающая текст другой программы, которая, в свою очередь, выдаёт текст первой. Теперь и на 1С.

1 стартмани

07.09.2016    10185    1    kg_am    5    

Декартово (прямое) произведение

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Прямое или декартово произведение двух множеств — это множество, элементами которого являются всевозможные упорядоченные пары элементов исходных множеств.

1 стартмани

11.05.2016    12031    7    yojeeg    3    

Еще один способ расчета остатков на каждый день в запросе

Математика и алгоритмы Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

24.04.2016    45522    60    ildarovich    23    

Алгоритм разбиения строки (предложения,текста) на несколько строк, с заданными длинами результирующих строк

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Представляю вашему вниманию очередной алгоритм разбиения строки на подстроки, с возможностью определения длин результирующих строк.

1 стартмани

17.03.2016    9774    2    zakkvanaxel    5    

Пример рекурсивной выгрузки иерархической структуры в XDTO

Математика и алгоритмы Внешние источники данных WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Решил реализовать иерархию в пакете XDTO и выгрузить ее рекурсивно. Задача оказалась нетривиальной, хотя и весьма простой. Изысканиями решил поделиться с народом, чтобы не пропадало народное добро.

1 стартмани

26.02.2016    39301    19    starik-2005    3