Tesseract用户模式

时间:2013-06-20 09:20:31

标签: tesseract

任何人都知道如何在Tesseract中使用用户模式(user_patterns_suffix)? 你能告诉我如何处理它以及如何测试它的工作原理吗?我试图遵循Tesseract指南(Tessearct user-patterns但我没有看到它影响结果。

感谢。

1 个答案:

答案 0 :(得分:18)

Tesseract将模式用于某种“正则表达式”。如果我们假设您正在使用全部采用相同格式的数据扫描书籍,则可以使用它。一个模式可以用来告诉Tesseract期望什么格式,如何期望用户词中的单词。以下是Tesseract describes how to use patterns

的方式
  

每个模式都可以包含任何非空白字符,但只有包含相应语言的unicharset字符的模式才有用。

     

唯一的元字符是\。要在模式中用作普通字符串,应使用\进行转义(例如,字符C:\Documents应在模式文件中写为C:\\Documents)。

     

此函数支持非常有限的正则表达式语法。可以表达一个字符,一个特定的字符类以及该模式中应该重复该实体的次数。

     

表示字符类使用以下之一:

     
      
  • \c - UNICHARSET::get_isalpha()为真的unichar(字符)
  •   
  • \d - UNICHARSET::get_isdigit()为真的unichar
  •   
  • \n - unichar UNICHARSET::get_isdigit()和   UNICHARSET::isalpha()是真的
  •   
  • \p - UNICHARSET::get_ispunct()为真的unichar
  •   
  • \a - UNICHARSET::get_islower()为真的unichar
  •   
  • \A - UNICHARSET::get_isupper()为真的unichar
  •   
     可以在每个字符或模式之后指定

\*,以指示在下一个字符/模式出现之前,字符/模式可以重复任意次。

     

示例:

     

1-8\d\d-GOOG-411将扩展为字符串:    1-800-GOOG-4111-801-GOOG-411,... 1-899-GOOG-411

     

"ww.\n\*.com"将扩展为以下字符串:    "ww.a.com" "ww.a123.com" ... "ww.ABCDefgHIJKLMNop.com"

     

注意:在选择要包含的模式时,请注意提供非常通用的模式会使tesseract运行速度变慢的事实。例如,模式开头的\n\*将使Tesseract考虑每个分段的所提议字符选择的所有组合,这将是不可接受的慢。由于可能难以识别的潜在速度问题,每个用户模式必须至少从kSaneNumConcreteChars开始具有unicharset具体字符。