ラボの設定手順と要件
アカウントと進行状況を保護します。このラボを実行するには、常にシークレット ブラウジング ウィンドウとラボの認証情報を使用してください。

Document AI(Python)を使用した専用プロセッサ

ラボ 10分 universal_currency_alt クレジット: 5 show_chart 中級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

GSP1140

Google Cloud セルフペース ラボのロゴ

概要

Document AI は、ドキュメント、メール、請求書、フォームなどの非構造化データを簡単に理解、分析、利用できるようにするドキュメント理解ソリューションです。この API は、コンテンツ分類、エンティティ抽出、高度な検索機能などを利用して、データ構造を提供します。

このラボでは、Document AI 専用プロセッサを使用して Python で特殊なドキュメントを分類して解析する方法を学びます。解析とエンティティ抽出では、請求書を例として使用します。この手順とサンプルコードは、Document AI でサポートされている特殊なドキュメントであれば、すべてで使用できます。

目標

このラボでは、次のタスクの実行方法について学びます。

  • 専用プロセッサを使用してスキーマ化されたエンティティを抽出する

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

接続した時点で認証が完了しており、プロジェクトに各自の Project_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. Document AI API を有効にする

Document AI を使用するには、API を有効にする必要があります。

  1. コンソールの上部にある [Cloud Shell をアクティブにする] ボタンをクリックして、Cloud Shell を開きます。

  2. Cloud Shell で次のコマンドを実行して、Document AI の API を有効にします。

gcloud services enable documentai.googleapis.com

次のように表示されます。

Operation "operations/..." finished successfully.

Python 用のオープンソース データ分析ライブラリである Pandas もインストールする必要があります。

  1. 次のコマンドを実行して Pandas をインストールします。
pip3 install --upgrade pandas
  1. 次のコマンドを実行して、Document AI 用の Python クライアント ライブラリをインストールします。
pip3 install --upgrade google-cloud-documentai

次のように表示されます。

... Installing collected packages: google-cloud-documentai Successfully installed google-cloud-documentai-2.15.0

これで、Document AI API を使用する準備ができました。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

Document AI API を有効にする

タスク 2. Form パーサー プロセッサを作成する

このチュートリアルでは最初に、Document AI Platform で使用する Form パーサー プロセッサのインスタンスを作成する必要があります。

  1. ナビゲーション メニューで、[AI] の [すべてのプロダクトを表示] をクリックし、[Document AI] を選択します。

Document AI の概要が表示されているコンソール画面

  1. [プロセッサを確認] をクリックし、[専用] まで下にスクロールして、[請求書パーサー] の [プロセッサを作成] をクリックします。

調達ドキュメントの分割

  1. 名前を「lab-invoice-parser」にして、リストから最も近いリージョンを選択します。

  2. [作成] をクリックして、プロセッサを作成します。

  3. プロセッサ ID をコピーします。これは、後でコードを作成する際に使用します。

ラボの請求書パーサー

プロセッサを作成する

サンプル ドキュメントをダウンロードする

このラボで使用できるサンプル ドキュメントがいくつか用意されています。

  1. 次のコマンドを実行して、サンプル フォームを Cloud Shell にダウンロードします。
gcloud storage cp gs://cloud-samples-data/documentai/codelabs/specialized-processors/procurement_multi_document.pdf . gcloud storage cp gs://cloud-samples-data/documentai/codelabs/specialized-processors/google_invoice.pdf .
  1. 次のコマンドを使用して、ファイルが Cloud Shell にダウンロードされたことを確認します。
ls

次のように表示されます。

google_invoice.pdf procurement_multi_document.pdf

タスク 3. エンティティを抽出する

これで、信頼スコア、プロパティ、正規化された値など、スキーマ化されたエンティティをファイルから抽出できるようになりました。

API リクエストを行うコードは前のステップと同じで、オンライン リクエストまたはバッチ リクエストで行うことができます。

エンティティから次の情報にアクセスします。

  • エンティティ タイプ
    • (例: invoice_datereceiver_nametotal_amount
  • 元の値
    • 元のドキュメント ファイルに表示されているデータ値。
  • 正規化された値
    • 正規化された標準形式のデータ値(該当する場合)。
    • Enterprise Knowledge Graph からの拡充を含めることもできます
  • 信頼度値
    • 値が正確であるというモデルの確信度。

line_item などのエンティティ タイプには、line_item/unit_priceline_item/description などのネストされたエンティティであるプロパティを含めることもできます。この例では、見やすくするためにネストされた構造をフラット化しています。

Invoice パーサー

  1. Cloud Shell で、extraction.py という名前のファイルを作成し、次のコードを貼り付けます。
import pandas as pd from google.cloud import documentai_v1 as documentai def online_process( project_id: str, location: str, processor_id: str, file_path: str, mime_type: str, ) -> documentai.Document: """ Document AI オンライン処理 API を使用してドキュメントを処理します。 """ opts = {"api_endpoint": f"{location}-documentai.googleapis.com"} # クライアントをインスタンス化します documentai_client = documentai.DocumentProcessorServiceClient(client_options=opts) # プロセッサの完全なリソース名。例: # projects/project-id/locations/location/processor/processor-id # 事前に Cloud コンソールで新しいプロセッサを作成する必要があります resource_name = documentai_client.processor_path(project_id, location, processor_id) # ファイルをメモリに読み込みます with open(file_path, "rb") as file: file_content = file.read() # バイナリデータを Document AI の RawDocument オブジェクトに読み込みます raw_document = documentai.RawDocument(content=file_content, mime_type=mime_type) # 処理リクエストの設定を行います request = documentai.ProcessRequest(name=resource_name, raw_document=raw_document) # Document AI クライアントを使用してサンプル フォームを処理します result = documentai_client.process_document(request=request) return result.document PROJECT_ID = "YOUR_PROJECT_ID" LOCATION = "YOUR_PROJECT_LOCATION" # 形式: 「us」または「eu」 PROCESSOR_ID = "INVOICE_PARSER_ID" # Cloud コンソールでプロセッサを作成します # 現在の作業ディレクトリにあるローカル ファイル FILE_PATH = "google_invoice.pdf" # サポートされているファイル形式については https://cloud.google.com/document-ai/docs/processors-list を参照 MIME_TYPE = "application/pdf" document = online_process( project_id=PROJECT_ID, location=LOCATION, processor_id=PROCESSOR_ID, file_path=FILE_PATH, mime_type=MIME_TYPE, ) types = [] raw_values = [] normalized_values = [] confidence = [] # 各 Key-Value ペアと、対応する信頼スコアを取得します for entity in document.entities: types.append(entity.type_) raw_values.append(entity.mention_text) normalized_values.append(entity.normalized_value.text) confidence.append(f"{entity.confidence:.0%}") # 信頼スコアを含むプロパティ(サブエンティティ)を取得します for prop in entity.properties: types.append(prop.type_) raw_values.append(prop.mention_text) normalized_values.append(prop.normalized_value.text) confidence.append(f"{prop.confidence:.0%}") # 値をテーブル形式で出力する Pandas データフレームを作成します。 df = pd.DataFrame( { "Type": types, "Raw Value": raw_values, "Normalized Value": normalized_values, "Confidence": confidence, } ) print(df)
  1. INVOICE_PARSER_ID を、以前に作成した請求書パーサー プロセッサの ID に置き換え、google_invoice.pdf ファイルを使用します。

  2. YOUR_PROJECT_IDYOUR_PROJECT_LOCATION は、それぞれ Google Cloud プロジェクト ID とプロセッサのロケーションに置き換えます。

  3. スクリプトを実行します。

python3 extraction.py

出力は次のようになります。

Type Raw Value Normalized Value Confidence 0 due_date Sep 30, 2019 2019-09-30 99% 1 net_amount 22,379.39 22379.39 99% 2 total_amount 19,647.68 19647.68 99% 3 invoice_date Sep 24, 2019 2019-09-24 98% 4 total_tax_amount 1,767.97 1767.97 94% 5 receiver_name Jane Smith, 88% 6 receiver_address 1600 Amphitheatre Pkway Mountain View, CA 94043 77% 7 invoice_id 23413561D 60% 8 freight_amount 199.99 199.99 60% 9 invoice_type invoice_statement 59% 10 currency $ USD 58% 11 supplier_name Google Google 37% 12 line_item 9.99 12 12 ft HDMI cable 119.88 100% 13 line_item/unit_price 9.99 9.99 95% 14 line_item/quantity 12 12 75% 15 line_item/description 12 ft HDMI cable 64% 16 line_item/amount 119.88 119.88 90% 17 line_item 12 399.99 27" Computer Monitor 4,799.88 100% 18 line_item/quantity 12 12 76% 19 line_item/unit_price 399.99 399.99 95% 20 line_item/description 27" Computer Monitor 42% 21 line_item/amount 4,799.88 4799.88 93% 22 line_item Ergonomic Keyboard 12 59.99 719.88 100% 23 line_item/description Ergonomic Keyboard 42% 24 line_item/quantity 12 12 75% 25 line_item/unit_price 59.99 59.99 94% 26 line_item/amount 719.88 719.88 85% 27 line_item Optical mouse 12 19.99 239.88 100% 28 line_item/description Optical mouse 55% 29 line_item/quantity 12 12 72% 30 line_item/unit_price 19.99 19.99 94% 31 line_item/amount 239.88 239.88 81% 32 line_item Laptop 12 1,299.99 15,599.88 100% 33 line_item/description Laptop 65% 34 line_item/quantity 12 12 71% 35 line_item/unit_price 1,299.99 1299.99 94% 36 line_item/amount 15,599.88 15599.88 91% 37 line_item Misc processing fees 899.99 899.99 1 100% 38 line_item/description Misc processing fees 54% 39 line_item/unit_price 899.99 899.99 92% 40 line_item/amount 899.99 899.99 82% 41 line_item/quantity 1 1 68%
  1. Cloud Storage バケットを作成し、コマンド docai_outputs.txt で生成された出力をバケットにアップロードします。
# バケットを作成します export PROJECT_ID=$(gcloud config get-value project) gsutil mb gs://$PROJECT_ID-docai # ファイルを作成してアップロードします python3 extraction.py > docai_outputs.txt gsutil cp docai_outputs.txt gs://$PROJECT_ID-docai Cloud Storage バケットを作成して出力ファイルをアップロードする

省略可: 他の専用プロセッサを試す

調達向け Document AI を使用して、ドキュメントを分類して請求書を解析できました。Document AI は、ここに記載されている他の特殊なソリューションもサポートしています。

同じ手順とコードを使用して、任意の専用プロセッサを処理できます。

他の特殊なソリューションを試す場合は、他のプロセッサ タイプと専用のサンプル ドキュメントを使用してラボを再実行できます。

注: 現在、一部の ID、貸与、契約のプロセッサはアクセスが制限されています。これらのプロセッサを使用するビジネス ユースケースをお持ちの場合は、先に適切なリクエスト フォームに必要事項を記入してお送りください。

サンプル ドキュメント

他の専用プロセッサを試すために使用できるサンプル ドキュメントを次に示します。

ソリューション プロセッサ タイプ ドキュメント
ID 米国運転免許証パーサー
融資 貸与スプリッターと分類器
融資 W9 パーサー
契約 契約書パーサー

その他のサンプル ドキュメントとプロセッサ出力については、ドキュメントをご覧ください。

お疲れさまでした

これで完了です。Document AI を使用して請求書を解析できました。また、Python クライアント ライブラリを使用して Document AI API を呼び出す方法も学習しました。

次のステップと詳細情報

Document AI と Python クライアント ライブラリの詳細については、以下のリソースをご覧ください。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2024 年 11 月 7 日

ラボの最終テスト日: 2025 年 11 月 7 日

Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。