GSP1140
概要
Document AI は、ドキュメント、メール、請求書、フォームなどの非構造化データを簡単に理解、分析、利用できるようにするドキュメント理解ソリューションです。この API は、コンテンツ分類、エンティティ抽出、高度な検索機能などを利用して、データ構造を提供します。
このラボでは、Document AI 専用プロセッサを使用して Python で特殊なドキュメントを分類して解析する方法を学びます。解析とエンティティ抽出では、請求書を例として使用します。この手順とサンプルコードは、Document AI でサポートされている特殊なドキュメントであれば、すべてで使用できます。
目標
このラボでは、次のタスクの実行方法について学びます。
- 専用プロセッサを使用してスキーマ化されたエンティティを抽出する
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
- ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。
ラボを開始して Google Cloud コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。
左側の [ラボの詳細] ペインには、以下が表示されます。
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
-
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}}
[ラボの詳細] ペインでもユーザー名を確認できます。
-
[次へ] をクリックします。
-
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}}
[ラボの詳細] ペインでもパスワードを確認できます。
-
[次へ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。
注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
-
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。
Cloud Shell をアクティブにする
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
-
Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン
をクリックします。
-
ウィンドウで次の操作を行います。
- 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 にプリインストールされており、タブ補完がサポートされています。
- (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
- [承認] をクリックします。
出力:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (省略可)次のコマンドを使用すると、プロジェクト 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 を有効にする必要があります。
-
コンソールの上部にある [Cloud Shell をアクティブにする] ボタンをクリックして、Cloud Shell を開きます。
-
Cloud Shell で次のコマンドを実行して、Document AI の API を有効にします。
gcloud services enable documentai.googleapis.com
次のように表示されます。
Operation "operations/..." finished successfully.
Python 用のオープンソース データ分析ライブラリである Pandas もインストールする必要があります。
- 次のコマンドを実行して Pandas をインストールします。
pip3 install --upgrade pandas
- 次のコマンドを実行して、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 パーサー プロセッサのインスタンスを作成する必要があります。
- ナビゲーション メニューで、[AI] の [すべてのプロダクトを表示] をクリックし、[Document AI] を選択します。

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

-
名前を「lab-invoice-parser」にして、リストから最も近いリージョンを選択します。
-
[作成] をクリックして、プロセッサを作成します。
-
プロセッサ ID をコピーします。これは、後でコードを作成する際に使用します。

プロセッサを作成する
サンプル ドキュメントをダウンロードする
このラボで使用できるサンプル ドキュメントがいくつか用意されています。
- 次のコマンドを実行して、サンプル フォームを 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 .
- 次のコマンドを使用して、ファイルが Cloud Shell にダウンロードされたことを確認します。
ls
次のように表示されます。
google_invoice.pdf procurement_multi_document.pdf
タスク 3. エンティティを抽出する
これで、信頼スコア、プロパティ、正規化された値など、スキーマ化されたエンティティをファイルから抽出できるようになりました。
API リクエストを行うコードは前のステップと同じで、オンライン リクエストまたはバッチ リクエストで行うことができます。
エンティティから次の情報にアクセスします。
-
エンティティ タイプ
- (例:
invoice_date、receiver_name、total_amount)
-
元の値
- 元のドキュメント ファイルに表示されているデータ値。
-
正規化された値
-
信頼度値
line_item などのエンティティ タイプには、line_item/unit_price や line_item/description などのネストされたエンティティであるプロパティを含めることもできます。この例では、見やすくするためにネストされた構造をフラット化しています。
Invoice パーサー
- 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)
-
INVOICE_PARSER_ID を、以前に作成した請求書パーサー プロセッサの ID に置き換え、google_invoice.pdf ファイルを使用します。
-
YOUR_PROJECT_ID と YOUR_PROJECT_LOCATION は、それぞれ Google Cloud プロジェクト ID とプロセッサのロケーションに置き換えます。
-
スクリプトを実行します。
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%
- 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、貸与、契約のプロセッサはアクセスが制限されています。これらのプロセッサを使用するビジネス ユースケースをお持ちの場合は、先に適切なリクエスト フォームに必要事項を記入してお送りください。
サンプル ドキュメント
他の専用プロセッサを試すために使用できるサンプル ドキュメントを次に示します。
その他のサンプル ドキュメントとプロセッサ出力については、ドキュメントをご覧ください。
お疲れさまでした
これで完了です。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 の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。