PDF は、世界中に普及している使いやすいファイル形式であり、私たちが Alteryx で活用したい価値ある情報を大量に秘めています。しかし、Alteryx Intelligence Suite チームが、 PDF からテキスト抽出ツールの設計に着手したところ、このファイル形式は想像していた以上に複雑な問題を抱えていることが判明しました。そのため、私たちは、こうした複雑さを考慮しながら、新しいツールを設計する際の方向性を探っていくこととなりました。今回はこうした開発プロセスにまつわるストーリーをご紹介するとともに、ツールの特徴や利点をご紹介します。
PDF(Portable Document Format、ポータブルドキュメントフォーマット) は、アドビシステムズ社(以下、アドビ)が開発した電子文書ファイルフォーマットです。1993 年にアドビによって PDF の仕様が発表され、2008 年には国際標準化機構(ISO)の規格承認を受け、国際規格(オープンスタンダード)となりました。PDF の現行の ISO 規格が記された規格書は約 1000 ページにも及び、最初の導入から現在の規格に至るまでに、多数の中間仕様が存在します。これらの規格が、さまざまな PDF 作成プログラムによって実装され、仕様の適用方法についても多様な選択がなされてきました。こうした経時的な進化と、1000 ページにも及ぶ規格の多様化により:
外観が同じ PDF でも、内部の構造や内容が大きく異なるといった状況が生まれています。
テキストエディタで PDF を開き、PDF ビューワーに表示されるテキストやその他の要素を探ってみたことのある方であれば、身に覚えがあるかもしれません。
一般的な PDF ファイルには、次のような要素が含まれています。
特にテキストについては、PDF 作成時のアプローチが多種多様であることから、PDF からテキストを抽出するためのツールの設計がさらに困難なものとなりました。
PDF の作成手法 |
テキストの保存と抽出方法 |
写真の撮影またはドキュメントのスキャン |
テキストはビットマップグラフィックとして保存され、テキストを抽出するには光学文字認識(OCR)が必要 |
OCR を使用して、スキャンまたは写真ベースのドキュメントの上に透明なテキストをオーバーレイする |
テキストはドキュメント内に 2 回にわたって表示される(1 回目は画像内のビットマップグラフィックとして、2 回目はコピーペーストや検索をサポートするための目に見えないテキストコンテンツのオーバーレイとして表示)。これにより、コピー&ペーストや検索が可能となる |
一般的でないフォントをドキュメントに丸ごと埋め込むのではなく、ベクトルグラフィック(描画した文字)に変換し、PDF のサイズを最適化 |
テキストはベクトルグラフィックとして保存され、テキストを抽出するには OCR が必要 |
テキストの画像、描画されたテキスト、テキストコンテンツを 1 ページにまとめる |
テキストはビットマップグラフィック、ベクトルグラフィック、テキストコンテンツとして保存されるため、すべての単語を抽出するには、テキストコンテンツを読み取るとともに、ビットマップグラフィックやベクトルグラフィックとして保存されているテキストに OCR を適用する必要がある |
すべてのテキストがテキストコンテンツとして保存されたデジタル PDF ドキュメントを作成 |
テキストコンテンツ抽出により、ドキュメント内のすべてのテキストを取得できる(ただし、ロゴ、図、写真などの画像に単語が埋め込まれている場合を除く) |
Alteryx Intelligence Suite は、PDFからデータを抽出するツールとともに、2020 年にリリースされました。
オリジナルツールでは、まず 画像入力ツールを使用してすべての PDF を画像に変換し、その後、テキストへ変換ツールを使用して、各ページの画像に OCR を適用します。これらのツールは PDF の作成方法に左右されることなく利用できるため、使い勝手に非常に優れたものとなっています。
しかし、優れた OCR モデルを、単純なテキストのみを含む画像に適用した場合であっても、精度は 97% 程度にとどまります。この精度自体は十分に高いものですが、1 ページに何百百もの文字が含まれている場合は、小さなエラーが積み重なっていく恐れがあります(また、OCR モデルの処理速度が多少遅くなることもあります)。少なくとも一部の PDF には、(ほとんどの場合、ほぼ 100% の精度で迅速かつ)直接読み取ることができるテキストコンテンツが含まれているため、私たちはテキストコンテンツをより効率的に Alteryx に取り込む方法はないかと考え始めました。
そして、私たちは「PDF からテキスト抽出」ツールの開発に着手するに至ったのです!「PDF からテキスト抽出」ツールの開発にあたり、当初、私たちは PDF ドキュメントからテキストコンテンツを抽出することのみを目標としていました。そんな中、以下のような請求書に出会いました。
これは、Alteryx のベンダーから送られてきた実際の請求書です(プライバシーの保護のため、名前や番号などは伏せています)。この請求書では、テキストコンテンツがページのテキストの約半分を占め、残りのテキストはグラフィックコンテンツとして保存されています。つまり、ユースケースによっては、テキストコンテンツに必要な要素がすべて含まれているケースもありますし、そうでないケースもあります。
そこで私たちは、以下のような工夫が必要だと考えました。
これらのしきい値は、一般的なドキュメントを基に作成されましたが、実際に利用しているドキュメントのグラフィック内のワード数や画像数を基に、独自のリスクレベルを設定し、フォーミュラツールで割り当てることも可能です。また、これらのリスクレベルの判定機能や、グラフィックテキストの単語数のカウント機能を使用して、下流のさまざまな処理ワークフローにページをフィルタリングすることもできます。
[テキストコンテンツのみを読み取る]オプションと [グラフィックとしてエンコードされたテキストのリスクスコア] オプションを組み合わせると、[テキストおよび画像コンテンツを読み取る] オプションと同様に、テキストコンテンツの読み取りに加え、各ページに OCR が適用されます。そのため、大幅なスピードアップは期待できませんが、 [テキストコンテンツのみを読み取る] のみを実行した場合に、OCR を使用しないことで高速化というメリットが得られる反面、どのようなリスクを負うことになるかを事前に検討できるようになります。
PDF からテキスト抽出ツールの開発秘話や、機能についての解説をご覧いただきありがとうございます。この新たなツールで皆様の可能性がどのように広がっていくか、とても楽しみです!
Alteryx Intelligence Suite ツールに関するその他のリソースとして、以下のページもぜひご活用ください。
ここにコメントを追加するには、ご登録いただく必要があります。 ご登録済みの場合は、ログインしてください。 ご登録がまだの場合は、ご登録後にログインしてください。