1

複数ページのスキャンされた pdf からテキストを読み取るときに、iTextSharp の精度を経験した人はいますか?

問題は、アドビリーダー内の基本的な検索機能とiTextSharpの両方を使用してpdfを読み込もうとしたことです。

itextsharp は、adobe の 100% と比較して、特定の単語の出現の約 50% を見つけることができます。

[iTextSharp 1000 occ // Adobe Reader >2000]

これは既知の「問題」ですか?

編集:追加する必要があります:私が検索している時までに、それはすでにocr'edされています。

4

2 に答える 2

1

@ChrisHaas が既に説明したように、コードと PDF のサンプルがなければ、特定するのは困難です。

まず第一に、iText(Sharp) は PDF 内の特定のテキストを検索するメソッドを直接公開していないため、実際には 0%を検索するため、 itextsharp が特定の単語の出現の約 50% を検索することができると言うのは少し誤解を招きます。テキスト抽出のフレームワークといくつかの簡単な例を提供するだけです。

このフレームワークを使用して特定の単語を真剣に検索するには、いくつかの呼び出しと組み合わせて、これらの単純なサンプルの使用法 ( および を使用するときに内部で動作する によって提供される) を適用するだけでは不十分です。必ず:SimpleTextExtractionStrategyLocationTextExtractionStrategy,PdfTextExtractor.GetTextFromPage(myReader, pageNum)Contains(word)

  • より良いテキスト抽出戦略を作成する

    • どのグリフがどの行に属しているかを認識するアルゴリズムが改善されました。たとえば、サンプル戦略は、テキスト行が 100% 直線ではなく、最小限の昇順の OCR 処理されたテキストを含むスキャンされたページでは完全に失敗する可能性があります。

    • 貧しい人の太字 (太字の文字スタイルの印象を得るために非常に小さなオフセットで同じ文字を 2 回印刷する) および類似の構造を認識し、それに応じて変換します。

  • テキストの正規化を作成する

    • 合字を解決します。

    • 意味的に同一または類似の文字の代替グリフを統一します。

  • 抽出されたテキストと検索用語の両方を正規化してから検索します。

さらに、@ChrisHaas が述べたように、テキスト内のスペースには特別な注意を払う必要があります。

これらの基準を念頭に置いて iText ベースのテキスト検索を作成すると、許容できるヒット率が確実に得られます。Adobe Reader は、すでにこの機能にかなりのリソースを投資しているため、Adobe Reader と同じくらいになるのはかなりの作業です。

完全を期すために、ページのコンテンツとそこから参照されるすべてのものを検索するだけでなく、かなりの量のテキスト コンテンツを含む可能性がある注釈も検索する必要があります。テキスト注釈。

于 2013-03-27T22:18:18.857 に答える
0

状況の詳細 (問題の PDF、使用されているコードなど) がわからないと、あまり役に立ちません。

ただし、iTextSharp にはリテラル テキスト エクストラクタが多く含まれていると言えます。PDF 内のテキストは連続していない可能性があり、多くの場合、連続していないため、iTextSharp は連続した文字を取得し、単語や文と見なされるものを構築します。次に、「ほとんど同じ行にある」ように見える文字を結合しようとし、同じことを行います (OCR されたテキストがよくあるように、わずかな角度のテキストなど)。単純な ASCII 32 文字であるはずの「スペース」もありますが、多くの場合そうではありません。iTextSharp はさらに一歩進んで、2 つのテキスト ランをスペースで区切る必要があるかどうかを計算しようとします。

アドビはおそらく、テキストについてさらに多くのことを推測できるヒューリスティックをさらに備えています。私の推測では、非線形テキストを組み合わせて推測するためのしきい値が大きいと思います。

于 2013-03-27T13:11:09.433 に答える