2

Tesseract OCRエンジンは、意味のないテキストを出力することがあります。意味のないテキストや単語を無視するアルゴリズムを設計したいのですが、以下は無視したい出力テキストの一種です。私の簡単な解決策は、 「」で区切られた認識されたテキストと単語が多すぎるテキストはゴミになります(ヒント:最大40語の画像をスキャンしています)どんなアイデアでも役に立ちます、ありがとう。

 wo:>"|axnoA1wvw\
 ldflfig
 °J!9O‘ !P99W M9N 6 13!-|15!Cl ‘I-/Vl
 978 89l9 Z0 3+ 3 'l9.l.
 97 999 VLL lLOZ+ 3 9l!q°lN
 wo0'|axno/(@|au1e>1e: new;
 1=96r2a1ey\1 1uauud0|e/\e(]
 |8UJB){ p8UJL|\7'
4

2 に答える 2

3

出力テキストを単語に分割します。単語をトリプルに分割します。トリプル頻度を数え、既知の良好なテキストコーパスのテキストからのトリプル頻度と比較します(たとえば、OCRの目的について説明しているメーリングリストのすべての記事からヘッダー行を除いたもの)。

私が「トリプル」と言うとき、私は意味します:

whe、hen、i、say、tri、rip、ipl、ple、les、i、mea、ean

...したがって、この短い例では「i」の頻度は2ですが、他の例はすべて頻度1です。

目的の言語で大きなドキュメントに対してこれらのトリプルのそれぞれの頻度をカウントすると、文字列が同じ言語であるかどうかをかなり正確に推測できるようになります。

確かに、それはヒューリスティックです。

パスワード変更プログラムで英語のパスワードを検出するために、同様のアプローチを使用しました。完璧な「明らかなパスワード拒否」というものはありませんが、それはかなりうまく機能しました。

于 2012-04-16T20:11:02.373 に答える
1

辞書に対して単語をチェックしますか?

もちろん、これには外国語のフレーズやコードなどの誤検知があります。一般的に問題は手に負えないものです(例:このコードまたはぎこちないですか?:))。唯一の(ほぼ)完璧な方法は、これをヒューリスティックとして使用して、人間によるレビューのために特定のセクションにフラグを立てることです。

于 2012-04-16T19:44:11.473 に答える