Free Trial

ブログ - 日本語

アナリティクスに関する聡明な考えに触れ、インサイトとアイデアが得られます。
EmilyVA
Alteryx
Alteryx

PDF は、世界中に普及している使いやすいファイル形式であり、私たちが Alteryx で活用したい価値ある情報を大量に秘めています。しかし、Alteryx Intelligence Suite チームが、 PDF からテキスト抽出ツールの設計に着手したところ、このファイル形式は想像していた以上に複雑な問題を抱えていることが判明しました。そのため、私たちは、こうした複雑さを考慮しながら、新しいツールを設計する際の方向性を探っていくこととなりました。今回はこうした開発プロセスにまつわるストーリーをご紹介するとともに、ツールの特徴や利点をご紹介します。

 

via GIPHY

 

PDF とは? 

 

PDF(Portable Document Format、ポータブルドキュメントフォーマット) は、アドビシステムズ社(以下、アドビ)が開発した電子文書ファイルフォーマットです。1993 年にアドビによって PDF の仕様が発表され、2008 年には国際標準化機構(ISO)の規格承認を受け、国際規格(オープンスタンダード)となりました。PDF の現行の ISO 規格が記された規格書は約 1000 ページにも及び、最初の導入から現在の規格に至るまでに、多数の中間仕様が存在します。これらの規格が、さまざまな PDF 作成プログラムによって実装され、仕様の適用方法についても多様な選択がなされてきました。こうした経時的な進化と、1000 ページにも及ぶ規格の多様化により:  

 

外観が同じ PDF でも、内部の構造や内容が大きく異なるといった状況が生まれています。 

 

via GIPHY

 

テキストエディタで PDF を開き、PDF ビューワーに表示されるテキストやその他の要素を探ってみたことのある方であれば、身に覚えがあるかもしれません。  

 

via GIPHY

 

一般的な PDF ファイルには、次のような要素が含まれています。 

  • ビットマップグラフィック(写真、スキャン画像、その他ピクセル単位で指定された画像形式) 
  • ベクトルグラフィック(図形や線を使用して画像を作成する画像形式) 
  • コンテンツストリームとして保存されたテキスト(ページ上のどこに、どのようにテキストを描画するかについての指示) 
  • マルチメディアオブジェクト、リンク、その他の埋め込みコンテンツ 
  • ファイルにパッケージされ、ドキュメント内で使用されるフォント 
     
  • 各ページの各要素をどこに、どのように描画し、埋め込むかの指示 

 

image-20220817-175140 (1).png

 

特にテキストについては、PDF 作成時のアプローチが多種多様であることから、PDF からテキストを抽出するためのツールの設計がさらに困難なものとなりました。 

 

PDF の作成手法 

テキストの保存と抽出方法 

写真の撮影またはドキュメントのスキャン 

テキストはビットマップグラフィックとして保存され、テキストを抽出するには光学文字認識(OCR)が必要 

OCR を使用して、スキャンまたは写真ベースのドキュメントの上に透明なテキストをオーバーレイする  

テキストはドキュメント内に 2 回にわたって表示される(1 回目は画像内のビットマップグラフィックとして、2 回目はコピーペーストや検索をサポートするための目に見えないテキストコンテンツのオーバーレイとして表示)。これにより、コピー&ペーストや検索が可能となる  

一般的でないフォントをドキュメントに丸ごと埋め込むのではなく、ベクトルグラフィック(描画した文字)に変換し、PDF のサイズを最適化 

テキストはベクトルグラフィックとして保存され、テキストを抽出するには OCR が必要 

テキストの画像、描画されたテキスト、テキストコンテンツを 1 ページにまとめる 

テキストはビットマップグラフィック、ベクトルグラフィック、テキストコンテンツとして保存されるため、すべての単語を抽出するには、テキストコンテンツを読み取るとともに、ビットマップグラフィックやベクトルグラフィックとして保存されているテキストに OCR を適用する必要がある 

すべてのテキストがテキストコンテンツとして保存されたデジタル PDF ドキュメントを作成 

テキストコンテンツ抽出により、ドキュメント内のすべてのテキストを取得できる(ただし、ロゴ、図、写真などの画像に単語が埋め込まれている場合を除く) 

 

via GIPHY

 

Alteryx にPDF を取り込む:オリジナルツールの場合 

 

Alteryx Intelligence Suite は、PDFからデータを抽出するツールとともに、2020 年にリリースされました。 
オリジナルツールでは、まず 画像入力ツールを使用してすべての PDF を画像に変換し、その後、テキストへ変換ツールを使用して、各ページの画像に OCR を適用します。これらのツールは PDF の作成方法に左右されることなく利用できるため、使い勝手に非常に優れたものとなっています。  

 

image-20220817-201931 (1).png

 

しかし、優れた OCR モデルを、単純なテキストのみを含む画像に適用した場合であっても、精度は 97% 程度にとどまります。この精度自体は十分に高いものですが、1 ページに何百百もの文字が含まれている場合は、小さなエラーが積み重なっていく恐れがあります(また、OCR モデルの処理速度が多少遅くなることもあります)。少なくとも一部の PDF には、(ほとんどの場合、ほぼ 100% の精度で迅速かつ)直接読み取ることができるテキストコンテンツが含まれているため、私たちはテキストコンテンツをより効率的に Alteryx に取り込む方法はないかと考え始めました。 

 

via GIPHY

 

Alteryx に PDF を取り込む:次世代型のツールが登場! 

 

そして、私たちは「PDF からテキスト抽出」ツールの開発に着手するに至ったのです!「PDF からテキスト抽出」ツールの開発にあたり、当初、私たちは PDF ドキュメントからテキストコンテンツを抽出することのみを目標としていました。そんな中、以下のような請求書に出会いました。 

 

image-20220817-194408 (1).png

 

これは、Alteryx のベンダーから送られてきた実際の請求書です(プライバシーの保護のため、名前や番号などは伏せています)。この請求書では、テキストコンテンツがページのテキストの約半分を占め、残りのテキストはグラフィックコンテンツとして保存されています。つまり、ユースケースによっては、テキストコンテンツに必要な要素がすべて含まれているケースもありますし、そうでないケースもあります。 

 

via GIPHY

 

そこで私たちは、以下のような工夫が必要だと考えました。 

  • テキストコンテンツと、画像コンテンツから得られる OCR の結果を組み合わせられるようにする:このソリューションは、開発時に多くのクリエイティブな思考を必要としたため、社内で「マジック」と呼ばれていました。これにより、「PDF からテキスト抽出ツール」で、 [テキストおよび画像コンテンツを読み取る] オプションを利用することが可能となりました。このオプションを使用することで、ページ上のテキストに対して最も完全かつ正確な結果が得られますが、少し時間がかかります(ドキュメントやコンピュータのハードウェアによって異なりますが、1 ページあたり 1 ~ 2 秒程度)。

 

via GIPHY

 

  • 必要としているコンテンツがすべて「テキストコンテンツ」であり、各ページで OCR を実行する時間をかけたくない場合に、[テキストコンテンツのみを読み取る] オプションを利用できるようにする:この場合のテキスト抽出は、はるかに短時間で行えます(ドキュメントとコンピュータハードウェアによって異なりますが、1 ページあたり 0.2 ~ 1 秒程度)。ただし、このケースでは、グラフィックテキストに含まれる情報までは確認できないため、注意が必要です。 

 

via GIPHY

 

  • [テキストコンテンツのみを読み取る] オプションを使いながら、画像テキストとして存在する重要なコンテンツを失う可能性があるかどうかを評価できるようする。具体的には次のようになります: 
    • [ページグラフィックの出力画像] を利用すると、イメージの出力列に画像の BLOB(バイナリラージオブジェクト)が、出力オプション列の「pdf graphics」という値とともに表示されます。これらの画像を視覚的に確認するには、画像ツールを [フィールド内のバイナリデータから画像を取得する]オプションに接続し、画像ツールに付属する閲覧ツールを使用します。これにより、テキストコンテンツ抽出の「対象とならなかったもの」を確認できるようになります。 image-20220826-223905 (1).png
    • [グラフィックとしてエンコードされたテキストのリスクスコア] では、さらに一歩進んで、OCR を各ページのグラフィック要素のみに適用します。これにより、[グラフィックテキストの単語数のカウント] 列に、カウントされたグラフィックテキストのワード数と出力数が表示され、そのワード数に基づいて、各ページの [グラフィックとしてエンコードされたテキストのリスクスコア] のレベルが割り当てられます。 
      • グラフィックテキストのワード数が 9 以下(ロゴなど):「低」リスク 
      • ワード数が 10 ~ 29:「中」リスク 
      • ワード数が 30 以上:「高」リスク 

 

これらのしきい値は、一般的なドキュメントを基に作成されましたが、実際に利用しているドキュメントのグラフィック内のワード数や画像数を基に、独自のリスクレベルを設定し、フォーミュラツールで割り当てることも可能です。また、これらのリスクレベルの判定機能や、グラフィックテキストの単語数のカウント機能を使用して、下流のさまざまな処理ワークフローにページをフィルタリングすることもできます。  

[テキストコンテンツのみを読み取る]オプションと [グラフィックとしてエンコードされたテキストのリスクスコア] オプションを組み合わせると、[テキストおよび画像コンテンツを読み取る] オプションと同様に、テキストコンテンツの読み取りに加え、各ページに OCR が適用されます。そのため、大幅なスピードアップは期待できませんが、  [テキストコンテンツのみを読み取る] のみを実行した場合に、OCR を使用しないことで高速化というメリットが得られる反面、どのようなリスクを負うことになるかを事前に検討できるようになります。 

 

via GIPHY

 

  • また、 [プレビュー] 機能により、[テキストコンテンツのみを読み取る] と [テキストおよび画像コンテンツを読み取る] で、どのような抽出結果が得られるかを比較することもできます。「PDF からテキスト抽出ツール」の設定ウィンドウの [閲覧] ボタンを使用して 1 つのファイルを選択すると、各テキスト抽出オプションでアクセスできるコンテンツが下のプレビューウィンドウに表示されます。例を以下に示します。このファイルでは、ほとんどのテキストが [テキストコンテンツのみを読み取る] (右)で抽出されている一方で、ツールバーの画像に埋め込まれたテキストが抽出されていないことが分かります(これにより、下流でのデータの使われ方次第ですが、どちらが最適か判断できるようになります)。 

 

image-20220829-195021 (1).png

 

  • [テキストおよび画像コンテンツを読み取る] モードの利点としては、対応可能な言語がより多くなります。[テキストおよび画像コンテンツを読み取る] と [グラフィックとしてエンコードされたテキストのリスクスコア] で使用される OCR は、[言語設定] で指定した言語を用いて結果を絞り込むことが可能です。ただし、テキストコンテンツの抽出では PDF から直接文字を読み取るため、文字を読み取ることができる限り、どの言語であるかは問題になりません。  

 

via GIPHY

 

まとめ 

 

PDF からテキスト抽出ツールの開発秘話や、機能についての解説をご覧いただきありがとうございます。この新たなツールで皆様の可能性がどのように広がっていくか、とても楽しみです! 

Alteryx Intelligence Suite ツールに関するその他のリソースとして、以下のページもぜひご活用ください。 

  1. Alteryx Intelligence Suite ラーニングパス 
  2. Alteryx Intelligence Suite ツールヘルプメインページ