レンダリング時にPDFを解析するのはやめよう

フロントエンドのPDF抽出ツールの多くは失敗に終わります。

開発者は、視覚的な出力からドキュメントの構造を推測しようとします。レンダリングされたピクセルを見て、列、表、リストを探します。コンピュータビジョンやピクセルの近接性を使用して、ボックスがどこから始まるかを判断します。

これは間違った構築方法です。

PDFには、オペレーターストリームの中に明示的な構造データがすでに含まれています。表は単なる近接したピクセルの集まりではありません。moveTo、lineTo、またはrectangleといった特定のコマンドで描画されています。探したい境界線は、ソースの中にすでにエンコードされています。

もし抽出ツールが、ズーム倍率100%と150%で異なる列を返すのであれば、それは構造を抽出しているのではなく、視覚的なアーティファクトに対してパターンマッチングを行っているに過ぎません。

視覚的なヒューリスティックの使用をやめましょう。オペレーターストリームの解析を始めてください。

なぜオペレーターストリームの方が優れているのか:

困難な道こそが、正しい道です。

CTMスタックを理解しなければなりません。行列の状態を追跡し、サブパスを分類する必要があります。習得するには、PDFの仕様書とソースコードを読み込む必要があります。

これには事前の多大な労力が必要ですが、ユーザーがアップロードするあらゆるPDFに対して機能します。ピクセルベースのツールは、テストスイート内にあるごく一部のファイルにしか機能しません。

デモではなく、本物の抽出器を構築してください。

出典: https://dev.to/bonzai2carn/stop-parsing-pdfs-at-render-time-a-better-architecture-for-structured-extraction-5fb8