Amazon Textract と .NET ワークロード

準備ガイド

モジュール 1: 準備ガイド

 学習モジュール

概要

Amazon Textract と .NET ワークロードのバッジは、Amazon Textract サービスと.NET ワークロードに習熟していることを示します。この準備ガイドでは、評価に合格するために知っておくべきことをトピックごとに説明しており、復習用のリソースも用意されています。また、独自のアプリケーションまたは AWS チュートリアルのいずれかで、サービスを実際に使用する経験も必要です。

準備が整ったら、モジュール 2 に進んで評価試験を受けましょう。

目的

Textract は、PDF や画像などのスキャンした文書からテキスト、手書き文字、およびデータを自動的に抽出する機械学習 (ML) サービスです。単純な光学文字認識 (OCR) のレベルを超えて、フォームや表からデータを識別、理解、および抽出します。Textract では機械学習を利用して、手作業なしで、あらゆる種類のドキュメントを読み取って処理し、テキスト、手書きの文字、表などのデータを正確に抽出できます。

動画: Amazon Textract とは?

メリット

Textract を使用すると、次のメリットが得られます。

  • コストを削減しながら、ビジネス効率を高め、すばやい意思決定を行えます
  • ほぼすべての文書から重要なインサイトを高い精度で抽出できます
  • 文書処理パイプラインをスケールアップまたはスケールダウンして、市場の需要に迅速に対応できます。
  • データプライバシー、暗号化、コンプライアンス標準により、データ処理を安全に自動化します

Amazon Textract 製品詳細ページ

機能

Textract の機能には以下が含まれます。

  • ドキュメントテキスト検出をアプリに統合します。 Textract では、シンプルな API で強力で正確な分析を利用できるようにすることで、テキスト検出機能をアプリケーションに容易に組み込めるようにします。
  • スケーラブルなドキュメント分析: Textract を使用すると、何百万ものドキュメントからデータをすばやく分析して抽出できるため、意思決定を迅速に行うことができます。
  • 複数の言語Textract は、英語、スペイン語、ドイツ語、イタリア語、フランス語、ポルトガル語をサポートしています。
  • 複数のドキュメント形式。 テキストは PDF、TIFF、JPEG、および PNG ドキュメントを処理できます。

デベロッパーガイド - Amazon Textract とは?

料金

Amazon Textract の料金モデルと無料利用枠について理解しておきましょう。Textract では、使用した分のみ料金が発生します。最低料金、および前払いの義務はありません。Textract は、テキスト、表付きテキスト、フォームデータ、クエリの抽出、請求書や身分証明書の処理など、いずれの場合でも、処理されたページに対してのみ課金されます。

  • API によって異なるレート。Textract には 5 つの API (文書テキストの検出、文書の分析、経費の分析、ID の分析、貸付の分析) が含まれており、それぞれ 1,000 ページごとに特定の料金が請求されます。
  • 料金は AWS リージョンによって異なる場合があります。
  • 毎月の基準額に達すると、割引料金をお支払いいただきます。API の月間基準額に達すると、その月の残りの期間は低い料金をお支払いいただきます。例えば、Detect Document API は、1 か月で最初の 100 万件の文書を処理した後、請求額が下がります。基準額とレートは API ごとに異なります。
  • AWS 無料利用枠は 3 か月間有効で、API ごとにさまざまなページ数に対する操作を無料で利用できます。 例えば、Detect Document Text API では 1,000 ページ/月、Analyze Expense API では 100 ページ/月が無料になります。
  • 料金ページの AWS 料金見積りツールを使用して、費用を見積もることができます。

Amazon Textract の料金

ユースケース

Amazon Textract を使用する一般的なユースケースは次のとおりです。

  • インテリジェントな検索インデックスを作成します。Textract を使用すると、画像や PDF ファイルで検出されたテキストのライブラリを作成できます。
  • 自然言語処理 (NLP) のため、インテリジェントなテキスト抽出を行います。Textract では、テキストを NLP アプリケーションの入力としてどのようにグループ化するかを制御できます。テキストを単語や行として抽出できます。また、文書テーブル分析が有効になっている場合は、テキストをテーブルセルごとにグループ化します。
  • さまざまなソースからのデータの取得と正規化を加速します。Textract を使用すると、財務書類、研究報告書、医療記録など、さまざまな文書からテキストや表形式のデータを抽出できます。
  • フォームからのデータキャプチャを自動化します。 Textract を使用すると、フォームから構造化データを抽出できます。API を使用すると、既存のビジネスワークフローに抽出機能を組み込んで、フォームを介して送信されたユーザーデータを使用可能な形式にして抽出できます。
  • 文書の分類と抽出を自動化します。Textract の文書処理が行える Analyze Lending API を使用すると、貸付文書をさまざまな文書クラスに自動的に分類し、分類されたページを正しい分析操作が行われるように自動的にルーティングして、さらに処理することができます。

Textract の業界ユースケースには以下が含まれます。

  • 財務サービス: 住宅ローンの金利、申請者の名前、請求書の合計額などの重要なビジネスデータをさまざまな財務フォームから正確に抽出して、ローンや住宅ローンの申請を数分で処理します。
  • 医療とライフサイエンス: 受診報告書、保険金請求、および事前承認用書類から重要な患者データを抽出することで、患者および保険会社により良いサービスを提供できます。データを元の文脈に沿って整理し、出力を手動で確認する必要性を排除します。
  • 公共部門: 中小企業向けローン、連邦税申告書、ビジネスアプリケーションなどの政府関連フォームから、関連データを高い精度で簡単に抽出します。

デベロッパーガイド - Amazon Textract とは?

Amazon Textract 製品詳細ページ - ユースケース

機能

次の機能を理解しておきましょう。

Amazon Textract の仕組み

    1.光学文字認識。 Textract では、光学文字認識 (OCR) を使用して、文書 (法的文書や書籍のスキャン画像など) のスキャン画像や表現内の印刷テキスト、手書き文字、および数字を自動的に検出します。

    デベロッパーガイド - テキストの検出

        2. 貸付の分析。Textract の Analyze Lending API は、ローンパッケージの情報抽出を完全に自動化する、マネージド型のインテリジェントな事前設定済みドキュメント処理 API です。住宅ローンドキュメントを Analyze Lending API にアップロードするだけで、事前構築済みの機械学習モデルがそのドキュメントパッケージをドキュメントタイプ別に分類および分割します。

        デベロッパーガイド - 貸付の分析

        3.フォームの抽出。文書の画像内のキーと値のペアを自動的に検出し、人間の介入を必要とすることなく、コンテキストを保持できます。key-value ペアは、リンクされたデータ項目のセットです。例えば、文書では、「First Name」フィールドがキーで、「Jane」フィールドが値です。この機能により、抽出したデータをデータベースにインポートしたり、アプリケーションに変数として渡したりするのが容易になります。

        デベロッパーガイド - ドキュメントの分析 - フォームの抽出

        4.テーブルの抽出。抽出中、Textract では、テーブル内に保存されたデータの構成が保持されます。これは、列や行があるテーブルを含む財務報告書や医療記録など、主に構造化されたデータで構成されている文書に役立ちます。事前定義済みスキーマを使用して、抽出されたデータをデータベースにロードできます。例えば、インベントリレポートの項目番号と数量の行での関連付けが保持されるため、インベントリ管理アプリケーションは項目合計を簡単に増分できます。

        デベロッパーガイド - テーブル

        5.署名の検出。Textract は、あらゆるドキュメントや画像上の署名を検出する機能を提供します。これにより、小切手、ローン申込書、クレームフォームなどのドキュメント上の署名を簡単に自動検出することができます。署名の位置と関連する信頼スコアは、API レスポンスに含まれます

        デベロッパーガイド - ドキュメントの分析 - 署名

        6.クエリベースの抽出。 Textract では、クエリを使用してドキュメントから抽出する必要があるデータを柔軟に指定することができます。自然言語の質問の形式で必要な情報 (例:「顧客名は何ですか」) を指定し、API のレスポンスの一部として正確な情報 (例:「John Doe」) を受け取ることができます。ドキュメント内のデータ構造 (テーブル、フォーム、黙示のフィールド、ネストされたデータ) を知る必要はなく、ドキュメントのバージョンやフォーマットの違いについて心配する必要もありません。Textract Queries は給与明細、銀行明細、W-2、ローン申込書、抵当ノート、保険申請ドキュメント、保険証など、多種多様なドキュメントで事前にトレーニングされています。Textract Queries が提供する柔軟性により、後処理の必要性、抽出されたデータのマニュアルレビューへの依存、機械学習モデルのトレーニングの必要性を低減します。クエリ抽出は、英語の文書検出でのみ使用できます。

        デベロッパーガイド - ドキュメントの分析 - クエリ

        7.手書き文字の認識: 医療受診報告書や雇用申込書などの多くの文書には、手書きの文字と印刷されたテキストの両方が含まれています。Amazon Textract は、テキストが自由形式であるかテーブルに埋め込まれているかにかかわらず、英語で記載された文書から両方を高い信頼スコアで抽出できます。文書には、入力したテキストおよび手書きの文字が混ざって記載されていてもかまいません。

        デベロッパーガイド - Amazon Textract とは?

        8.請求書と領収書。請求書や領収書のレイアウトは多岐にわたるため、手作業で大規模にデータを抽出するのは難しく、時間がかかります。Amazon Textract は、機械学習 (ML) を使用して請求書や領収書の文脈を理解し、ベンダー名、請求書番号、商品の料金、合計金額、支払い条件などの関連データを自動的に抽出します。請求書や領収書を AnalyzeExpense APIに送信すると、一連の ExpenseDocument オブジェクトが返されます。各 ExpenseDocument は、さらに LineItemGroups と SummaryFields に分けられます。

        デベロッパーガイド - 請求書と領収書の分析

        請求書と領収書のレスポンスオブジェクト

        9.身分証明書。Textract は、機械学習 (ML) を使用して、テンプレートや設定を必要とせずに、米国のパスポートや運転免許証などの身分証明書のコンテキストを理解します。有効期限や生年月日などの特定の情報を自動的に抽出できるだけでなく、名前や住所などの黙示的な情報をインテリジェントに識別して抽出することもできます。Analyze ID を使用すると、ID 検証サービスを提供する企業や、金融、ヘルスケア、および保険業界の企業は、顧客が身分証明書の写真やスキャンデータを送信できるようにすることで、アカウントの作成、予約のスケジュール設定、求人への応募などを簡単に自動化できます。

        デベロッパーガイド - 身分証明書の分析

        10.人間によるレビューを組み込んだワークフロー。Textract は Amazon Augmented AI (A2I) と直接統合されているため、ドキュメントから抽出された印刷されたテキストや手書きの文字の人間によるレビューを容易に実行できます。アプリケーションの信頼度のしきい値を選択します。しきい値を下回る信頼度を持つすべての予測は、検証のために人間のレビュー担当者に自動的に送信されます。また、人間によるレビューのために送信するキーと値のペアを指定し、ランダムに選択された文書をレビューのために送信するように A2I を設定することもできます。

        デベロッパーガイド - Amazon A2I のコアコンセプト

AWS SDK for .NET

AWS SDK for .NET を使用して、.NET コードから Textract を操作します。上記の「機能」に記載されている機能をサポートするために使われる主な SDK クラスとメソッドを知っておきましょう。

  1. SDK を使用するには、AWSSDK.Textract NuGet パッケージを C# プロジェクトに追加します。
  2. Textract を操作するには、AmazonTextractClient のインスタンスをインスタンス化し、そのメソッドを呼び出します。
  3. 名前が Async で終わる一部の SDK メソッドは、C# await キーワードを使用して非同期で呼び出されます。
  4. 標準の SDK パターンを使用してリクエストオブジェクトを作成し、メソッドに渡し、返されたレスポンスオブジェクトを処理します。メソッドに関する SDK ドキュメントには、そのリクエストオブジェクトとレスポンスオブジェクトが記載されています。リクエストオブジェクトとレスポンスオブジェクトは、サポートするメソッドと同じルート名を持ちます。例えば、DetectDocumentTextAsync メソッドのリクエストオブジェクトとレスポンスオブジェクトには、DetectDocumentTextRequest と DetectDocumentTextResponse という名前が付いています。
using (var textractClient = new AmazonTextractClient(RegionEndpoint.USEast1))
{
    var bytes = File.ReadAllBytes("example.png");

    Console.WriteLine("Detect Document Text");
    var detectResponse = await textractClient.DetectDocumentTextAsync(new DetectDocumentTextRequest
    {
        Document = new Document
        {
            Bytes = new MemoryStream(bytes)
        }
    });

    foreach (var block in detectResponse.Blocks)
    {
        Console.WriteLine($"Type {block.BlockType}, Text: {block.Text}");
    }
}

同期操作と非同期操作

Textract 操作は「同期」タイプと「非同期」タイプに分類されます。これは C# の非同期メソッドとは関係ありません。

  1. 「同期」操作では、ほぼリアルタイムで結果が返されます。ページ 1 枚の文書内のテキストを検出して分析するためのものです。
  2. 「非同期」操作はバックグラウンドで実行されます。複数ページの文書処理用です。例えば、1,000 ページを超える PDF ファイルの処理には長い時間がかかりますが、PDF ファイルを非同期的に処理すると、操作の完了中にアプリケーションで他のタスクを完了できます。これらのメソッド名は、StartDocumentAnalysis のように「Start」という単語で始まります。

デベロッパーガイド - 同期操作による文書の処理

デベロッパーガイド - 非同期操作によるドキュメントの処理

テキストの行と単語

Textract 操作では、検出されたテキストが Block オブジェクトのリストで返されます。これらのオブジェクトは、ドキュメントページ上で検出されたテキスト行またはテキスト単語を表します。PAGE、LINE.、WORD オブジェクトのリストが親子関係とともに返されます。

デベロッパーガイド - テキストの行と単語

境界ボックス

Textract 操作は、ドキュメントページで見つかった項目の位置と形状を返します。抽出されたすべてのデータは、境界ボックスの座標、つまり単語、線、テーブル、あるいはテーブル内の個々のセルといった、識別されたデータの各要素を囲むポリゴンフレームとともに返されます。これは、単語または数字がソースとなる文書のどの部分から取得されたものであるのかを監査するのに役立つとともに、検索結果が元のドキュメントのスキャンデータを提供する際にガイドを提供します。例えば、患者病歴の詳細情報を得るために医療記録を検索する際に、ソースとなる文書を簡単に見つけたり、今後の検索のために書き留めたりすることができます。

デベロッパーガイド - ドキュメントページ上の項目の場所

調整可能な信頼度しきい値

Textract では、ドキュメントから情報を抽出する際、識別するすべての要素の信頼スコアが返されます。そのため、抽出結果をどのように使用するかについて十分な情報に基づく判断を下すことができます。例えば、税関連の記録から情報を抽出し、高い精度を確保したい場合は、信頼スコアが 95% 未満のアイテムにフラグを付けて、人間によるレビュー対象とすることができます。レジュメやアーカイブされたレコードのデジタル化など、エラーによる悪影響が少ない他の文書には、より低いしきい値を設定できます。

デベロッパーガイド - Amazon Textract のベストプラクティス - 信頼スコアの使用

スロットリングされた通話と切断された接続の処理

 1 秒あたりの最大トランザクション数 (TPS) を超えたり (サービスによってアプリケーションが制限される)、接続が切断されたりすると、Textract の操作が失敗する可能性があります。操作を自動的に再試行することで、スロットリングや接続の切断を管理できます。Amazon Textract クライアントを作成するときに Config パラメータを含めて、再試行の回数を指定しましょう。AWS では、再試行回数を 5 回にすることを推奨しています。AWS SDK は、失敗して例外が発生する前に、指定された回数だけ操作を再試行します。

デベロッパーガイド - スロットリングされた通話と切断された接続の処理
Amazon Textract のエンドポイントとクォータ

クォータ

お客様の Amazon Textract の使用は、クォータの制限を受けます。クォータには次の 2 種類があります。

  1. 設定したクォータは変更できません。クォータには、承諾されたファイル形式、ファイルサイズとページ数の制限、PDF 固有の制限、画像のサイズと回転、文字サイズ、文字セット、ID タイプが含まれます。

             Amazon Textract のクォータを設定する

  1. デフォルトクォータは、Service Quotas コンソールで表示または変更できます。TPS クォータによって、Textract に新しいドキュメントを処理するよう要求できる頻度が決まります。同時実行ジョブ制限は、一度に並行して実行できるジョブの数を定義します。 

             デフォルトクォータ

Service Quotas 計算ツールを使用して、必要なクォータを見積もることができます。

ベストプラクティス

Textract の次のベストプラクティスについて理解しておきましょう。

  1. 最適な入力ドキュメントを提供する: Textract がサポートする言語と形式で、150 DPI 以上の高品質な画像を提供します。
  2. 信頼スコアを使用する。Textract API オペレーションによって返される信頼スコアとそのユースケースの機密性を考慮に入れましょう。最適なしきい値は、アプリケーションによって異なります。検出エラー (誤検知) の影響を受けやすいアプリケーションでは、信頼スコアの最小しきい値を適用してください。
  3. 人間によるレビューの使用を検討してください。人間によるレビューをワークフローに組み込むことができます。これは、財務上の意思決定を伴うビジネスプロセスなど、機密性の高いアプリケーションでは特に重要です。
    デベロッパーガイド - Amazon Textract のベストプラクティス

実践的な体験をする

Textract を使用してドキュメントからテキスト、手書き文字、およびデータを抽出した経験が必要です。使用するアプリケーションがない場合は、以下のチュートリアルとデモを利用できます。

チュートリアル

テキストと構造化データの抽出 (AWS コンソールチュートリアル)

こんにちは、Textract! (コーディングチュートリアル)

サンプルアプリケーション

AWS の AI サービス

AWS テキスト読み上げアシスタント

コミュニティ動画

Textract と .NET 6 入門 - EP01 (Tom Moore)

Textract と .NET 6 入門 - EP02 (Tom Moore) 

 AWS の使用経験

初心者 - 中級

 .NET の使用経験

中級

 所要時間

これまでのご経験にもよりますが、最長 3 時間

 使用するサービス

Amazon Textract

 最終更新日

2022 年 7 月 7 日

このページはお役に立ちましたか?

モジュール

このチュートリアルは次の短いモジュールに分かれています。これまでの経験や準備状況に基づいて、モジュールをすべて確認することも、ざっと読んで復習することもできます。

  1. 準備ガイド (3 時間)。
  2. スキル評価: Amazon Textract と .NET のワークロードを評価