テキストの再配置後のPDFのテキスト比較

テキストの再配置後のPDFのテキスト比較

PDF文書の2つのバージョン間のテキストを比較しようとしています。私はdiffを使用して生成し、pdftotextいくつかの代替項目をフォーマットすることができました。perlcolordiff

これにより多くの違いが出力されますが、その多くは同じ段落ですが、始めに小さな変更があり、残りの段落の改行が変わります。

文書を効率的に比較する方法について提案がある人はいますか?

編集:pdfはデジタルで生成され、テキスト情報を含み、pdfはスキャンされた画像ではありません。

答え1

pdftotextまだこの問題を解決するのに十分ではないようです。

実際のOCRソフトウェア(文書のテキスト情報を準備していない)がどのように実行されるかを確認してください。

  1. 元の画像の各N×Nブロックで最も暗いピクセルを維持し、「縮小」が実行される縮小版の文書を作成します。
  2. スペースで区切られた最大の四角形を見つけ、段落として解釈します。
  3. これらの段落の順序について知識に基づいて推測してください(たとえば、ページの上部にページの幅の80%以上を占める四角形がある場合、その下には幅と高さがほぼ同じ2つのブロックがあります。ブロックはタイトルで、次のテキスト本文で、左側のブロックから始まり、右側に続きます。)
  4. 各四角形に対して、より小さなブロックで同様の操作を実行して、テキスト行を見つけます。
  5. 単語に分割し、必要に応じて文字に分割し、文に表示される可能性のある内部モデルと、その文字と単語と保存されている参照文字との類似性に基づいて、そのピクセルをテキストに変換します。

もちろん、ステップ3が完了すると完了します。そして自分でやることも難しくありません!

したがって、まず `mutool draw -r 300 -c grey -o 'rastered_%03d.png' を使用して画像をやや高解像度(300dpi)に変換します(デフォルトでは上記のステップ0、文書をスキャンします)。

その後、各結果に対してrastered_${pagenumber}.png縮小(ステップ1)と段落分割(ステップ2)が行われます。次に、単に左上を基準に並べ替えることもできます(yが最初、次にx)(ステップ3)。

3番目のステップの後、正方形の座標をとして使用できますpdftotext -x ${top_left_x} -y ${top_left_y} -W ${width} -H ${height}。次に、生成されたテキストを正しい順序でリンクします。 :)

関連情報