Ответ 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
в начале.