Пользовательские шаблоны Tesseract

Кто-нибудь знает, как использовать пользовательские шаблоны (user_patterns_suffix) в Tesseract? Не могли бы вы посоветовать мне, как это сделать и как проверить работу? Я попытался следовать руководству Tesseract (пользовательских шаблонов Tessearct, но я не видел, чтобы это повлияло на результат вообще.

Спасибо.

Ответы

Ответ 1

Tesseract использует шаблон для своего рода "регулярного выражения". Его можно использовать, если вы скажете, что сканировали книгу с данными, которые были в одном формате. Шаблон можно использовать, чтобы сообщить Tesseract, какие форматы ожидать, как он ожидает слов в словах пользователя. Ниже описано, как Tesseract описывает, как использовать шаблоны:

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

Единственный метасимвол \. Для использования в шаблоне в виде обычной строки он должен быть экранирован с помощью \ (например, строка C:\Documents должна быть записана в файле шаблонов как C:\\Documents).

Эта функция поддерживает очень ограниченный синтаксис регулярных выражений. Можно выразить символ, определенный класс символов и несколько раз, когда объект должен быть повторен в шаблоне.

Чтобы обозначить класс символов, используйте один из:

  • \c - unichar, для которого UNICHARSET::get_isalpha() истинно (символ)
  • \d - unichar, для которого UNICHARSET::get_isdigit() истинно
  • \n - unichar, для которого UNICHARSET::get_isdigit() и UNICHARSET::isalpha() являются истинными
  • \p - unichar, для которого UNICHARSET::get_ispunct() истинно
  • \a - unichar, для которого UNICHARSET::get_islower() истинно
  • \a - unichar, для которого UNICHARSET::get_isupper() истинно

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

Примеры:

1-8\d\d-GOOG-411 будет расширен до строк:   1-800-GOOG-411, 1-801-GOOG-411,... 1-899-GOOG-411.

"ww.\n\*.com" будет расширен до строк:   "ww.a.com" "ww.a123.com"... "ww.ABCDefgHIJKLMNop.com"

Примечание. При выборе того, какие шаблоны должны быть включены, обратите внимание на то, что предоставление очень общих шаблонов приведет к замедлению работы tesseract. Например, \n\* в начале шаблона заставит Tesseract рассмотреть все комбинации предложенных вариантов символов для каждой из сегментов, что будет неприемлемо медленным. Из-за потенциальных проблем со скоростью, которые могут быть трудно идентифицировать, каждый пользовательский шаблон должен иметь по крайней мере kSaneNumConcreteChars конкретные символы из unicharset в начале.