Amazon Textract で自動化するドキュメント処理 - OCR からフォーム・テーブル抽出まで
OCR を超えたフォーム・テーブルの構造認識で、請求書・領収書・身分証明書からデータを自動抽出する。A2I による人間レビューの統合も紹介します。
Textract の API 体系
Textract は機械学習ベースのドキュメント分析サービスで、従来の OCR を超えた構造化データの抽出を提供します。DetectDocumentText は基本的な OCR 機能で、画像や PDF からテキストを行・ワード単位で抽出します。AnalyzeDocument はフォーム (キー・バリューペア) とテーブル (行列構造) を認識する高度な分析機能です。例えば、申込書の「氏名: 山田太郎」からキー「氏名」とバリュー「山田太郎」を自動的にペアリングします。AnalyzeExpense は請求書・領収書に特化した API で、ベンダー名、請求日、合計金額、税額、明細行を構造化データとして抽出します。AnalyzeID は運転免許証やパスポートから氏名、生年月日、住所などの情報を抽出します。
大量ドキュメントの非同期処理
同期 API は単一ページの画像に対応しますが、複数ページの PDF や大量のドキュメントを処理する場合は非同期 API を使用します。StartDocumentTextDetection や StartDocumentAnalysis で処理を開始し、SNS トピックに完了通知が送信されます。Lambda 関数で通知を受け取り、GetDocumentTextDetection や GetDocumentAnalysis で結果を取得するイベント駆動アーキテクチャが標準的なパターンです。S3 へのドキュメントアップロードをトリガーに Lambda で Textract を呼び出し、抽出結果を DynamoDB に格納するパイプラインを構築することで、ドキュメント処理を完全に自動化できます。
精度向上と人間によるレビュー
Textract の抽出結果には各フィールドに信頼度スコア (0-100%) が付与されます。信頼度が閾値を下回る結果に対しては、 Amazon Augmented AI (A2I) を使用して人間のレビューワークフローにルーティングできます。レビュー担当者は A2I のコンソールで元のドキュメントと抽出結果を並べて確認し、修正を加えます。修正結果はフィードバックとして蓄積され、後続の処理の品質向上に活用できます。 Textract のクエリ機能を使用すると、自然言語で質問 (例: 「患者の名前は?」) を指定してドキュメントから特定の情報を抽出でき、フォーム構造が不定のドキュメントにも対応できます。 Textract のアルゴリズムを網羅的に学ぶなら、技術書 (Amazon)を参照してください。
Textract の料金
Textract の料金は API ごとの従量課金です。DetectDocumentText (OCR) は 1 ページあたり約 0.0015 ドル、AnalyzeDocument (フォーム・テーブル) は約 0.015 ドル、AnalyzeExpense (請求書) は約 0.01 ドル、AnalyzeID (身分証明書) は約 0.01 ドルです。Queries 機能は 1 ページあたり約 0.015 ドルに 1 クエリあたり約 0.005 ドルが加算されます。大量のドキュメントを処理する場合、まず DetectDocumentText で OCR を実行し、構造化データの抽出が必要なページのみ AnalyzeDocument を適用する 2 段階処理でコストを最適化できます。
まとめ
Textract は従来の OCR を超え、ドキュメントの構造を理解した上でデータを抽出するサービスです。フォーム、テーブル、請求書、身分証明書など、ドキュメントの種類に応じた専用 API を提供し、手動のデータ入力作業を大幅に削減します。A2I との統合で人間のレビューを組み込むことで、高精度が求められる業務プロセスにも対応できます。