Найди слова

11.08.22

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Найди слова:
.cfe 11,83Kb ver:1.0
0
0 Скачать (3 SM) Купить за 2 450 руб.

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

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

 

 

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

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

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

 

 

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

 

 

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

 

 

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

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

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

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

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

 

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

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

См. также

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

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    3159    stopa85    12    

38

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    7548    user1959478    51    

36

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

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    3104    maksa2005    8    

26

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

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    10901    7    SpaceOfMyHead    18    

61

Математика и алгоритмы Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    4355    RustIG    9    

25

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

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

23.11.2022    3522    gzharkoj    14    

25

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

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

1 стартмани

21.03.2022    9041    7    kalyaka    11    

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