Amazon Textract でドキュメントからデータを自動抽出 - OCR、テーブル解析、フォーム認識
Textract によるドキュメントのテキスト抽出、テーブル構造の解析、フォームのキー・バリュー抽出を解説します。
Textract の概要
Textract はドキュメントからテキスト、テーブル、フォームデータを自動抽出する OCR サービスで、PDF は最大 3,000 ページ、画像は最大 10 MB に対応します。従来の OCR がテキストの位置と文字を認識するだけなのに対し、Textract はテーブルの行列構造やフォームのラベル・値の関係を理解します。Queries 機能で特定の質問に対する回答をドキュメントから抽出し、AnalyzeExpense で請求書の明細を構造化します。
テーブル解析と Queries
AnalyzeDocument API の Tables 機能は表の行と列を認識し、セルの内容を構造化データとして返します。結合セルやヘッダー行も正しく解析します。Forms 機能はフォームのラベル (「氏名」「住所」「電話番号」) と対応する値を自動的にペアリングします。Queries は自然言語の質問をドキュメントに投げかけ、「患者名は?」「合計金額は?」のような質問に対する回答を抽出します。AnalyzeExpense は領収書と請求書に特化し、ベンダー名、日付、合計金額、税額、明細行を自動分類します。
AnalyzeExpense と Lending
AnalyzeExpense API は請求書と領収書に特化し、ベンダー名、請求日、合計金額、明細行 (品目名、数量、単価) を構造化データとして抽出します。手書きの領収書や複数ページの請求書にも対応し、経費精算の自動化に活用できます。 AnalyzeLending API は住宅ローンなどの融資書類に特化し、申込書、収入証明、不動産鑑定書などのドキュメントタイプを自動分類した上で、各書類からフィールドを抽出します。非同期 API (StartDocumentAnalysis) で大量のドキュメントをバッチ処理し、結果を S3 に出力するパイプラインを構築できます。 A2I (Augmented AI) と統合して、信頼度スコアが低い抽出結果を人間のレビューに回すワークフローを実装します。 OCR の理論と実装を深く理解するには、専門書籍 (Amazon)が役立ちます。
Textract の料金最適化
Textract の料金は API の種類とページ数で課金されます。DetectDocumentText (テキスト抽出のみ) は 1,000 ページあたり約 1.50 ドル、AnalyzeDocument (テーブル・フォーム解析) は約 15 ドル、Queries は 1 クエリあたり約 0.015 ドルです。AnalyzeExpense は 1,000 ページあたり約 10 ドルです。テキスト抽出のみで十分な場合は DetectDocumentText を使い、テーブルやフォームの構造解析が必要な場合のみ AnalyzeDocument を使うことでコストを最適化します。ドキュメントの前処理で不要なページ (空白ページ、表紙) を除外し、処理ページ数を削減します。バッチ処理の非同期 API はリアルタイム API と同じ料金ですが、大量処理時のスロットリング回避に有効です。
非同期処理とパイプライン設計
大量のドキュメントを扱う場合は、非同期 API を中心にパイプラインを組みます。S3 へのアップロードをきっかけに分析を開始し、完了通知を SNS で受け取り、結果を取得して後続処理へ渡す流れです。複数ステップにまたがる処理は Step Functions でオーケストレーションすると、各段階の状態管理やエラー時の再実行が明確になります。スループットが必要な場面では、同時実行数とスロットリングの上限を意識し、入力を適切なペースで投入します。イベント駆動で疎結合に組むことで、処理量の増減に柔軟に対応できます。
抽出結果の検証と後処理
Textract の出力には、項目ごとの信頼度スコアが付きます。これを使って、しきい値を下回る結果は人手確認に回し、十分に高いものは自動で受け入れる、という振り分けを設計します。抽出した値は、日付や金額の形式を正規化し、業務ルールに照らした妥当性チェックを通してから保存します。たとえば合計金額と明細の整合を検算するといった検証を加えると、誤りを早期に弾けます。整形済みのデータを DynamoDB などに格納し、後続の業務システムから利用できるようにすることで、抽出から活用までを一気通貫にできます。
人間レビューとの組み合わせ
完全な自動化が難しい書類でも、信頼度の低い箇所だけを人間が確認すれば、全体の処理効率を保てます。Augmented AI (A2I) を組み込むと、しきい値を下回った抽出結果を自動的にレビュー担当者へ提示し、修正結果をデータに反映する流れを構築できます。人手の確認結果を蓄積すれば、どの帳票でどの項目が誤りやすいかの傾向が見え、入力の改善やルールの見直しにつなげられます。すべてを人が見るのでも、すべてを機械任せにするのでもなく、両者の強みを組み合わせる設計が現実的です。
精度を高める入力の工夫
抽出精度は、入力ドキュメントの品質に大きく左右されます。スキャン画像は十分な解像度を確保し、傾きやゆがみを補正し、影や汚れを減らすと認識率が上がります。複数ページの書類は、表紙や空白ページなど不要なページを前処理で取り除くと、処理ページ数を減らしてコストも抑えられます。フォーマットが定まった帳票なら、抽出したい項目を事前に把握して Queries で狙い撃ちすると、無駄なく必要な値を取り出せます。入力側を整えることが、後工程の検証負荷を下げる近道になります。
まとめ
Textract はテキスト抽出に加え、テーブル構造とフォームのキー・バリューを理解する高度な OCR サービスです。Queries で特定の質問に対する回答をドキュメントから抽出し、AnalyzeExpense で請求書の明細を構造化します。AnalyzeLending で融資書類の自動分類と抽出を行い、A2I 統合で信頼度の低い結果を人間のレビューに回すワークフローを構築します。