今回も、Professional Cloud Data Engineer認定取得するために、私が勉強した内容をアウトプットしていきます。
今回は、Document AI、Document AIのプロセッサ管理、Document AIにおける処理リスクエストの送信と処理レスポンスの処理について説明します!
ぜひ、最後までご覧いただけると嬉しいです!
Document AI
Document AIは、スキャンしたドキュメントやPDFファイルなど、非構造化データから必要な情報を自動で抽出し、構造化されたデータに変換するサービスです。AI、特にOCR(光学的文字認識)や自然言語処理の技術を活用することで、人間が目で見て判断していた作業を高速かつ正確に実行します。これにより、データ入力、内容の確認、分類といった一連のワークフローを効率化できます。
Document AIの主な機能とできること
Document AIは、ドキュメント処理に関する様々な機能を提供します。
- 高精度なOCR:ドキュメントをスキャンしてテキストデータに変換します。印刷文字はもちろん、手書き文字や低品質な画像からも認識可能です。
- エンティティ抽出:テキストの中から「氏名」「住所」「金額」「日付」といった特定の項目(エンティティ)を自動で識別し、抽出します。
- フォーム解析:請求書や申請書などの定型フォームから、項目名と値のペア(Key-Valueペア)を正確に読み取ります。
- ドキュメント分類:ドキュメントの内容をAIが理解し、「契約書」「請求書」「領収書」といった種類に自動で分類します。
- ドキュメント分割:複数の種類のドキュメントが一つになったファイル(例:申込書と本人確認書類がスキャンされたPDF)を、種類ごとに自動で分割します。
- カスタムモデルの作成:専門的な機械学習の知識がなくても、アノテーションツールを利用して自社独自のドキュメントに合わせたモデルをトレーニングし、抽出精度を高めることができます。
Document AIの利用プロセス
Document AIを利用したドキュメント処理は、主に以下のステップで進められます。
- プロセッサの選択:請求書、身分証明書、納税フォームなど、処理したいドキュメントの種類に応じて、あらかじめ用意されている専用の「プロセッサ」を選択します。特定のドキュメントに対応するプロセッサがない場合は、カスタムで作成することも可能です。
- プロセッサの作成:Google CloudコンソールまたはAPIを使用して、プロジェクト内にプロセッサのインスタンスを作成します。
- モデルのトレーニング(オプション):独自のドキュメントに対応させるため、少量のサンプルデータでモデルをトレーニング(ファインチューニング)し、抽出精度を向上させます。
- ドキュメントの処理:作成したプロセッサにドキュメントファイル(PDF、JPEG、PNGなど)を送信すると、AIが自動でデータを抽出し、構造化されたデータ(JSON形式)を返します。
- 後続システムとの連携:抽出したデータは、データベース(BigQueryなど)に保存したり、業務システムと連携させたりして活用します。
Document AIのまとめ
Document AIは、これまで手作業に頼らざるを得なかったドキュメント処理の負担を大幅に軽減し、企業のデジタルトランスフォーメーション(DX)を加速させる強力なツールです。経費精算の自動化、顧客オンボーディングの迅速化、コンプライアンス対応の強化など、幅広い業務に応用できます。ドキュメント管理に課題を抱えている場合は、導入を検討してみてはいかがでしょうか。
Document AIのプロセッサ管理
Google CloudのDocument AIを効果的に活用するためには、「プロセッサ」の概念を理解し、適切に管理することが不可欠です。プロセッサは、ドキュメントの処理タスクを実行するAIモデルの中核をなすものです。この記事では、プロセッサの作成から削除まで、基本的な管理方法を解説します。
プロセッサの作成
Document AIの利用を開始するには、まず初めに処理したいドキュメントの種類に応じたプロセッサを作成する必要があります。
- プロセッサタイプの選択
Document AIには、請求書、身分証明書、W-2フォーム(雇用主が被雇用者に発行する年間給与合計表)などの特定用途向けプロセッサが事前トレーニング済みで提供されています。また、汎用OCRやフォーム解析、さらに独自のドキュメントに合わせた「カスタムドキュメント抽出プロセッサ」なども選択可能です。Google Cloudコンソールの「プロセッサの一覧」から、ユースケースに最適なものを選択します。 - プロセッサの作成
使用したいプロセッサタイプを決めたら、コンソール上で以下の手順で作成します- プロセッサ名:管理しやすいように、一意のプロセッサ名を付けます。
- リージョン:データを処理するリージョンを選択します。
- 暗号化:プロセッサに関連して保存されるデータの暗号鍵を設定します。初期設定は、Googleが管理する暗号鍵です。
- 作成:上記を設定し、「作成」ボタンをクリックすると、プロジェクト内にプロセッサのインスタンスが作成されます。一部の専門的なプロセッサは、利用に際してアクセス権限のリクエストが必要な場合があります。
プロセッサの管理
作成したプロセッサは、必要に応じて有効化、無効化、削除といった管理が可能です。
- プロセッサの詳細表示:各プロセッサには一意の「プロセッサID」が割り当てられます。API経由で操作する際にこのIDが必要になります。コンソール画面では、プロセッサの状態(有効、無効など)やその他の詳細情報を確認できます。
- プロセッサの有効化と無効化:プロセッサは、作成時に自動で有効になります。一時的にドキュメント処理を停止したい場合は、プロセッサを「無効」に設定できます。無効化されたプロセッサはドキュメントを処理できませんが、再度「有効」にすることでいつでも利用を再開できます。
- プロセッサの削除:不要になったプロセッサは削除できます。ただし削除すると、そのプロセッサ自体と学習済みのカスタムデータは失われます。すでに保存先にエクスポートした処理結果は残りますが、削除したプロセッサを復元することはできません。
Document AIのプロセッサ管理のまとめ
Document AIにおけるプロセッサは、ドキュメント処理の自動化を実現するためのエンジンです。ユースケースに応じた適切なプロセッサを選択・作成し、必要に応じて状態を管理することで、Document AIの能力を最大限に引き出すことができます。まずはプロセッサ ギャラリーを覗いて、どのような処理が可能か確認することから始めてみましょう。
Document AIにおける処理リスクエストの送信と処理レスポンスの処理
Google Cloud の Document AI は、請求書や契約書といった非構造化文書(画像やPDFなど)を、機械が解釈可能な構造化データへと変換する非常に強力なサービスです。これにより、手作業でのデータ入力といった定型業務を劇的に効率化できます。この記事では、Document AIへ処理を依頼するリクエストの送信方法と、その結果であるレスポンスから必要な情報を抽出し、業務システムなどで活用するまでの一連の流れについて、公式ドキュメントに基づいて丁寧に解説します。
処理リクエストの送信
Document AIへ文書の解析を依頼するには、大きく分けて2つの方法が提供されています。それが「オンライン処理」と「バッチ処理」です。どちらを選択するかは、一度に処理したい文書の量、そしてリアルタイム性の要求度合いによって決まります。例えば、ユーザーがアップロードしたファイルを即座に処理したい場合はオンライン処理、夜間に大量のファイルをまとめて処理したい場合はバッチ処理が適しています。
オンライン処理(単一文書・同期処理)
- オンライン処理では、ひとつの文書を即時に処理し、Document オブジェクトをレスポンスとして受け取ります。
- リクエストには以下のような情報が含まれます:
- プロジェクトID、ロケーション、プロセッサID(およびオプションでバージョン指定)
- 文書の内容を Base64 エンコードした文字列、または Cloud Storage の参照(gcsDocument 等)
- MIME タイプ(例:application/pdf)
バッチ処理(非同期)
- 大量の文書を処理する場合はバッチ処理が推奨されます。
- リクエスト送信後、operation を使ってステータスをポーリングし、完了後に Cloud Storage に処理結果が出力されます。
処理レスポンスの処理
Document AIからのレスポンスは、単なるテキストの羅列ではありません。文書のレイアウト、構造、そして意味を深く理解した、非常にリッチなJSONデータとして返却されます。この構造化されたデータを正しく解釈し、活用することが、Document AIを使いこなす上での鍵となります。
1. HTTP ステータスとレスポンス形式
- 成功時は 200 OK の HTTP ステータスとともに、JSON形式の ProcessResponse を返します。
- ProcessResponse に含まれる代表的なフィールドは以下の通りです。
- document:処理結果の詳細が格納された Document オブジェクト
- humanReviewStatus:(Human-in-the-Loop プロセッサ)での人間によるレビュー状況
2. Document
オブジェクトの構成要素
documentオブジェクトは、元の文書をデジタルに分解し、再構築したものです。主に以下のような要素で構成されています。
text
:OCRによって抽出された純粋なテキスト。改行・タブ・スペースを保持するが、レイアウト情報は含まれない。唯一の信頼できる全文テキストソースとして機能。- layout:ブロック・段落・行・単語・記号といった粒度に分割された OCR 出力と、それに紐づくレイアウト情報は
pages[].layout
として含まれる。チェックボックスや形式要素なども対象。 pages
:ページごとの物理構造。ページ番号、寸法(幅・高さ・単位)、検出された言語と信頼度が含まれる。ページ番号は“1から”始まる番号付け。
レスポンスの実務的な活用方法
この構造化されたDocumentオブジェクトを解析(パース)することで、様々な業務アプリケーションへとデータを連携させることが可能になります。例えば、以下のように活用します。
- アプリケーションやDBに取り込むためにテキスト全文を取得
- entities(エンティティ抽出)を用いて請求額や日付などの値を取得
- tables や formFields を CSV や Excel などに変換して業務フローへ投入
- pages や layout 情報をもとに文書のレイアウトを再構築、ビューを生成
Document AIにおける処理リスクエストの送信と処理レスポンスの処理のまとめ
Document AIを正しく利用することで、これまで多くの時間とコストを要していた手作業による文書データの入力・抽出作業を、高速かつ高精度に自動化できます。これにより、従業員はより付加価値の高い業務に集中できるようになります。
ただし、オンライン処理におけるファイルサイズ制限や、バッチ処理で発生する時間的な遅延、そして利用するプロセッサ(AIモデル)が全ての種類の文書に対応しているわけではない、といった制約も存在します。成功のためには、自社の業務要件や扱う文書の特性を十分に理解し、それに合わせた適切な処理方法の選択とシステム設計が不可欠です。
まとめ
今回は、下記3点について説明しました。
- Document AI
- Document AIのプロセッサ管理
- Document AIにおける処理リスクエストの送信と処理レスポンスの処理
Document AIは、手作業に依存していたドキュメント処理を大幅に効率化し、DX推進の強力な基盤となります。プロセッサの選択と管理により、さまざまな業務に応じた最適な処理が可能です。
処理リクエストとレスポンスを正しく設計すれば、入力や抽出の作業を自動化し、従業員はより高度な業務に専念できます。
一方で、ファイルサイズ制限やバッチ処理の遅延、モデルの適用範囲といった制約も考慮する必要があります。
これらのポイントを理解し、自社の業務要件に沿った活用方法を設計することが成功の鍵です。
Document AIは、効率化と精度向上を両立させ、業務の付加価値を高めるツールとして大きな可能性を秘めています。
これからも、Macのシステムエンジニアとして、日々、習得した知識や経験を発信していきますので、是非、ブックマーク登録してくれると嬉しいです!
それでは、次回のブログで!