Алгоритмы исправления ошибок OCR - PullRequest
19 голосов
/ 14 апреля 2011

Я работаю над оцифровкой большой коллекции отсканированных документов, работая с Tesseract 3 в качестве моего механизма распознавания. Качество его вывода посредственное, поскольку оно часто производит как символы мусора до и после фактического текста, так и ошибки в тексте.

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

Для проблемы опечаток большинство ошибок проистекают из нескольких неправильных классификаций букв (например, заменяя l, 1 и I друг на друга), и, похоже, должны быть методы для угадать, какие слова написаны с ошибками (так как в английском языке не слишком много слов имеют «1»), и угадать, что является подходящим исправлением.

Каковы лучшие практики в этом пространстве? Существуют ли бесплатные / открытые реализации алгоритмов, которые делают подобные вещи? Google дал много документов, но мало конкретных. Если нет доступных реализаций, какая из многих работ будет хорошей отправной точкой?

Ответы [ 2 ]

11 голосов
/ 24 апреля 2012

Для «определения того, какой текст на самом деле является текстом, а какой нет», вы можете посмотреть на rmgarbage из того же отдела, который разработал Tesseract (ISRI).Я написал реализацию Perl , и есть также реализация Ruby.Для задачи 1 против l я экспериментирую с ocrspell (опять из того же отдела), для которого доступен их исходный источник .

Я могу опубликовать только две ссылки,поэтому отсутствуют следующие:

  • ocrspell : введите "10.1007 / PL00013558" на dx.doi.org]
  • rmgarbage :поиск "Автоматическое удаление строк мусора в тексте OCR: реализация"
  • реализация ruby ​​: поиск по запросу "docsplit textcleaner"
0 голосов
/ 24 мая 2011

Что-то, что может быть полезно для вас, это попробовать это бесплатное онлайн-распознавание текста и сравнить его результаты с вашими, чтобы увидеть, можно ли улучшить результаты, играя с изображением (например, увеличивая / уменьшая).

Я использовал его как «верхнюю границу» результатов, которые я должен получить при использовании тессеракта самостоятельно (после использования OpenCV для изменения изображений).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...