Amazon Textract
1. サービス概要¶
Amazon Textract は、スキャンした書類や画像に含まれるテキストとその構造(レイアウト)を、高精度に検出するマネージド型 OCR(Optical Character Recognition)サービスである。
単なる文字起こしだけでなく、フォームや表の構造を理解し、キーと値の関係や表データとして出力する点が特徴である。
主なユースケースとして、
- 文書の電子化・アーカイブや帳票処理の自動化
- 手書き書類のデータ化
- 金融・保険業界での請求書や契約書解析
などが挙げられる。
従来の OCR エンジンに比べて、レイアウト認識と機械学習による高い正確性を実現する。
2. 主な特徴と機能¶
2.1 テキスト検出とレイアウト解析¶
画像や PDF ドキュメントからテキストを抽出するだけでなく、段組みやフォームのフィールドなどのレイアウトを把握。
Block という概念で段落・表・セル・キー・値を細かく分割して出力し、文書構造を再現しやすい点が強みである。
2.2 テーブル認識¶
複雑な表も自動検出し、セルごとの文字列を行列構造にマッピングする。
行や列の番号を特定して CSV 形式のように扱えるため、表形式データの解析・保存が容易になる。
2.3 フォーム抽出 (Key-Value Pairs)¶
キーと値の関係を識別し、「Name: John Doe」などの項目と値を自動的にペアとして抽出。
フォーム入力の自動処理(例: 顧客情報やアンケート結果の取り込み)を大幅に効率化する。
2.4 手書き文字への対応¶
スキャンした書類に含まれる活字だけでなく、手書きテキストの認識にも対応(英語の手書き対応など)。
完全なデジタル書式への変換が難しいケースでも、Textract が一定精度で手書き文字を読み取り可能である。
2.5 機密情報抽出 (Amazon A2I 連携)¶
異常値や機密度の高い項目を検出し、人間のレビューが必要な場合は Amazon A2I (Augmented AI)を組み合わせてヒューマン・イン・ザ・ループを構築可能。
これにより、重要な文書のコンプライアンス担保や精度向上を図れる。
3. アーキテクチャおよび技術要素¶
- S3 にアップロードされた PDF/画像ファイルを Textract API に入力
- Textract がクラウド上で OCR とレイアウト解析を行い、各 Block(LINE、WORD、TABLE、CELL など)を検出
- 出力結果は JSON 形式で返され、文字列と座標情報、キー-バリューペア、テーブル構造などを含む
- カスタムアプリケーションや Lambda が JSON をパースし、データを DB に保存したりレポートに変換
- A2I などを組み合わせて、人間のレビューを挟み、誤検知を補正
これにより、文書の構造化データ化を自動化し、ワークフローの効率化やペーパーレス推進を実現する。
4. セキュリティと認証・認可¶
Textract を導入する際、以下のポイントを考慮する:
- IAM ポリシー: Textract API の呼び出し権限を最小限に限定する
- S3 暗号化: 文書が保管される S3 バケットを KMS 暗号化し、機密文書の安全性を維持
- VPC エンドポイント: Textract への呼び出しをプライベートネットワークで行い、インターネット経由を回避
- CloudTrail: API 呼び出しを監査ログとして記録し、不正アクセスを検知・調査
5. 料金形態¶
Amazon Textract の料金は以下に基づきる:
- OCR 文字数: ドキュメントのページまたは画像ごとの処理料金(1,000 ページ単位など)
- 解析タイプ: 単純 OCR だけでなく、テーブル・フォーム抽出オプションで追加コスト
- 無料利用枠: 小規模利用向けに 1,000 ページ(フォーム・テーブルなし)が月間無料などのオファー
6. よくあるアーキテクチャ・設計パターン¶
Textract の導入シナリオは多岐にわたりるが、代表例として:
- 帳票処理自動化: 請求書や注文書をスキャンし、テーブル抽出で支払金額や顧客情報を取り込み、ERP に登録
- 金融機関での KYC: 顧客の本人確認書類(運転免許証等)から名前・住所・顔写真を抽出し、システムへ登録
- 医療・保険の書類管理: PDF カルテや保険申請書をテーブル・フォーム認識で自動入力し、管理データベースを更新
- IoT 検査表解析: 手書きの検査記録を読み取り、ログシステムに登録して分析に活用
7. 設定・デプロイ手順(ハンズオン例)¶
- S3 バケットを準備し、OCR したい PDF ファイルや画像ファイルをアップロード
- AWS コンソールで「Amazon Textract」を検索、「Analyze Document」を選択し、S3 オブジェクトを指定
- 「Table/Forms 検出」オプションを有効にして実行すると、解析結果が JSON として表示される
- CLI や SDK で StartDocumentAnalysis や GetDocumentAnalysis を使用して非同期処理も可能
- 解析結果を S3 へエクスポートしたり、Lambda 関数で結果をパースして DB に保存するフローを構築
- 必須に応じて、手書き文字対応や Amazon A2I を使った人間レビューを追加
8. 試験で問われやすいポイント¶
8.1 OCR とフォーム/テーブル抽出¶
- Detect Document Text: シンプルな文字列抽出
- Analyze Document: テーブルとフォーム(Key-Value)検出が有効
- Block 構造: PAGE、LINE、WORD、TABLE、CELL などの種類
8.2 非同期ジョブとリアルタイム API¶
- Synchronous API: 小規模な画像(5MB 以下)をリアルタイムに処理
- Asynchronous API: PDF や多数ページを非同期ジョブで処理し、SNS 通知またはポーリングで結果を受け取る
8.3 セキュリティと IAM¶
- 最小権限: Textract と S3 の操作ポリシーを必要最小限に設定
- データ暗号化: S3 暗号化により機密文書を保護
8.4 カスタムワークフロー (A2I)¶
- Confidence Threshold: Textract の結果が一定信頼度を下回る場合に人的レビュー
- 人間レビュー UI: Amazon A2I が提供する UI で補正
8.5 コスト管理¶
- ページまたは画像単位: 分析リクエストごとの費用
- フォーム・テーブルオプション: ベース料金に追加費用が加算
8.6 試験で頻出となる具体的な問われ方と答え¶
- Q: Amazon Textract で表のセル情報を得るには?
- A: AnalyzeDocument API を使用し、TABLE と CELL の Block を解析する。
- Q: PDF の複数ページを一度に解析したい場合は?
- A: StartDocumentAnalysis(Async)などの非同期ジョブを使用し、S3 へのアップロードを指定する。
- Q: キーと値の抽出は何のために使う?
- A: フォームの項目名と入力値を紐づけ、DB 登録や自動入力に活用。
- Q: OCR 結果に誤差がある際の対処は?
- A: Confidence スコアを確認し、低スコアな項目は人間レビュー(A2I)や再スキャンなどを検討。
- Q: テキスト抽出だけが必要な場合のコストを抑えるには?
- A: DetectDocumentText API を使い、フォーム・テーブル解析を行わないことで追加費用を避ける。