16

user_patterns_suffixTesseract でユーザー パターン ( ) を使用する方法を知っている人はいますか? それをどのように行うか、そしてそれが機能することをテストする方法を教えてもらえますか? Tesseract ガイド ( Tesseract user-patterns ) に従おうとしましたが、結果にまったく影響を与えませんでした。

ありがとう。

4

1 に答える 1

25

Tesseract は、一種の「正規表現」にパターンを使用します。たとえば、すべて同じ形式のデータを含む本をスキャンする場合に使用できます。パターンを使用して、Tesseract に期待する形式を伝えることができます。たとえば、ユーザー ワード内の単語をどのように期待するかなどです。以下は、Tesseract がパターンの使用方法を説明する方法です。

各パターンには空白以外の文字を含めることができますが、対応する言語の unicharset からの文字を含むパターンのみが有用です。

唯一のメタ文字は\. パターン内で通常の文字列として使用するには、エスケープする必要があります\(たとえば、文字列C:\Documentsはパターン ファイルに として記述する必要がありますC:\\Documents)。

この関数は、非常に限定された正規表現構文をサポートしています。文字、特定の文字クラス、およびパターン内でエンティティを繰り返す回数を表現できます。

文字クラスを表すには、次のいずれかを使用します。

  • \c- true である unichar UNICHARSET::get_isalpha()(文字)
  • \dUNICHARSET::get_isdigit()- true のunichar
  • \nUNICHARSET::get_isdigit()-と UNICHARSET::isalpha()が true のunichar
  • \pUNICHARSET::get_ispunct()- true のunichar
  • \aUNICHARSET::get_islower()- true のunichar
  • \AUNICHARSET::get_isupper()- true のunichar

\*各文字またはパターンの後に指定して、次の文字/パターンが発生する前にその文字/パターンを何度でも繰り返すことができることを示すことができます。

例:

1-8\d\d-GOOG-4111-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

于 2014-11-26T22:19:11.407 に答える