Ищу небольшой совет по машинному обучению Python

Я заинтересован в том, чтобы побаловаться с Python и машинным обучением/автоматическим вводом данных. Однако по мере того, как мои исследования продвигались вперед, я понял, что существует так много разных техник, каждая из которых имеет свои сильные стороны.

Я решил, что смогу продвинуться дальше, если буду учиться в противоположном направлении. т.е. выберите проблему/задачу и учитесь, решая/выполняя ее.

Иногда мне приходится обрабатывать счета, отправленные по факсу, я надеюсь сделать программу, которая сможет вводить их для меня после того, как я отсканирую их.

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

Я надеюсь, что кто-то кратко объяснит, как они будут это делать. Будут ли они использовать SVM для распознавания текста или другую технику? и как вы могли бы заставить программу понять, что галочка в 5-м поле означает «очищено = да» и что число в верхнем левом поле является идентификатором. Я провел небольшое исследование, но не могу понять, как начать. Как можно изолировать части факса, например. Верхняя таблица и ее ячейки из остальной части страницы, когда вы не можете гарантировать абсолютное размещение/размер из-за факса/сканирования. Или мне нужно получить сотни факсов + напечатанные данные этих факсов, затем сравнить их, а затем заставить его медленно учиться, разница между факсом a и b - это галочка здесь, а идентификационный номер обычно здесь...

Любые советы приветствуются!


person Dark    schedule 19.08.2015    source источник


Ответы (1)


Вообще говоря, вы можете разделить этот процесс на 2 этапа:

  1. Определение местоположения текста. Он находится на пересечении мл и компьютерного зрения, потому что перед частью распознавания текста вам нужно найти, где этот текст находится. Это непростая задача, вы можете найти строки, блоки и т. д., посмотрите, например, opencv lib, это может быть полезно для задач, связанных с резюме. Если все ваши документы имеют одинаковую точную форму (расположение полей относительно самого отсканированного списка) и вы можете сканировать их идеально, без искажений (поворотов, смещений), то можно попробовать поискать текст в статических областях, где есть поля.

  2. Когда вы нашли текст, вы должны разбить содержимое каждого поля на слова, затем слова на символы, а затем вы можете накормить свой распознаватель (часть ML) этими символами и получить метки каждого символа. И почти невозможно (в настоящее время) для рукописного текста, поэтому рукописный текст трудно распознать в общем случае. Даже если поля содержат только печатный текст, я рекомендую вам избегать этого шага и использовать специальную библиотеку для OCR, например тессеракт

person Ibraim Ganiev    schedule 19.08.2015
comment
Спасибо, это именно то, что мне было нужно. - person Dark; 01.09.2015