画像とテキストの処理を使用した AI エンリッチメント

Azure App Service
Azure Blob Storage
Azure AI Search
Azure Functions

ソリューションのアイデア

このアーティクルはソリューションのアイデアです。 このコンテンツにさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。

この記事では、画像処理、自然言語処理、およびドメイン固有のデータをキャプチャするカスタム スキルを使用して、テキスト ドキュメントと画像ドキュメントをエンリッチするソリューションを紹介します。 AI エンリッチメント機能が備わった Azure Cognitive Search は、関連するコンテンツを大規模に特定して探索するのに役立ちます。 このソリューションで AI エンリッチメントを使用して、元の複雑で構造化されていない JFK 暗殺記録 (JFK ファイル) データセットから意味を抽出します。

アーキテクチャ

Diagram that shows Azure Cognitive Search architecture to convert unstructured into structured data.

このアーキテクチャの Visio ファイルをダウンロードします。

データフロー

上の図は、構造化されていない JFK ファイル データセットを Azure Cognitive Search のスキル パイプラインで順次処理して、構造化された、インデックス付け可能なデータを生成するプロセスを示しています。

  1. ドキュメントや画像など、Azure Blob Storage 内の非構造化データを Azure Cognitive Search に取り込みます。
  2. "ドキュメント解析" ステップで、データから画像とテキストを抽出した後、コンテンツ エンリッチメントを行い、インデックス作成プロセスを開始します。 このプロセスで発生するエンリッチメント ステップは、選択したスキルのデータと種類によって異なります。
  3. Computer Vision と Language Service API をベースにした "組み込みスキル" では、画像光学式文字認識 (OCR)、画像分析、テキスト翻訳、エンティティ認識、フルテキスト検索などの AI エンリッチメントを実現します。
  4. "カスタム スキル" は、より複雑な AI モデルまたはサービスを必要とするシナリオをサポートします。 例としては、Forms Recognizer、Azure Machine Learning モデル、Azure Functions などがあります。
  5. エンリッチメント プロセスの後、インデクサーによって、エンリッチされ、インデックスが付けられたドキュメントが含まれる "検索インデックス" に出力が保存されます。 フルテキスト検索やその他のクエリ フォームで、このインデックスを使用できます。
  6. エンリッチされたドキュメントは、ナレッジ マイニングやデータ サイエンスなどのダウンストリーム アプリで使用できる "ナレッジ ストア" のプロジェクションにすることもできます。
  7. クエリで、検索インデックス内のエンリッチされたコンテンツにアクセスします。 インデックスは、検索の関連性を調整するためのカスタム アナライザー、あいまい検索クエリ、フィルター、スコアリング プロファイルをサポートしています。
  8. Blob Storage または Azure Table Storage に接続するアプリケーションはすべて、ナレッジ ストアにアクセスできます。

Components

Azure Cognitive Search はその他の Azure コンポーネントと連携して、このソリューションを提供します。

Azure Cognitive Search によって、コンテンツのインデックスが付けられ、このソリューションのユーザー エクスペリエンスが強化されます。 Azure Cognitive Search は、事前構築済みのコグニティブ スキルをコンテンツに適用でき、拡張メカニズムで、特定のエンリッチメント変換用のカスタム スキルを追加できます。

Azure Computer Vision

Azure Computer Vision では、テキスト認識を使用して画像からテキスト情報が抽出および認識されます。 Read API は、最新の OCR 認識モデルが使用され、大規模でテキスト量の多いドキュメントとノイズの多い画像向けに最適化されています。

レガシ OCR API は、大規模なドキュメント向けには最適化されていませんが、より多くの言語をサポートしています。 OCR の結果は、スキャンや画像の品質によって大きく異なることがあります。 現在のソリューション アイデアでは、OCR を使用して hOCR 形式のデータが生成されます。

Azure Cognitive Service for Language

Azure Cognitive Service for Language では、固有表現認識 (NER)キー フレーズ抽出フルテキスト検索などのテキスト分析機能を使用して非構造化ドキュメントからテキスト情報が抽出されます。

Azure Storage

Azure Blob Storage は、データの REST ベースのオブジェクト ストレージであり、HTTPS 経由で世界中のどこからでもアクセスできます。 Blob Storage を使用すると、データを一般に公開することも、アプリケーション データを公開せずに格納することもできます。 Blob Storage は、テキストやグラフィックなどの大量の非構造化データに適しています。

Azure Table Storage を使用して、高可用性、スケーラブル、構造化、または半構造化の NoSQL データをクラウドに格納します。

Azure Functions

Azure Functions は、インフラストラクチャを明示的にプロビジョニングしたり管理したりする必要がない、小規模なイベントトリガー型のコードを実行できるサーバーレス コンピューティング サービスです。 このソリューションでは、カスタム スキルとして Azure Functions メソッドを使用して、CIA Cryptonym リストを JFK 暗殺記録に適用します。

Azure App Service

また、このソリューション アイデアでは、Azure App Service でスタンドアロンの Web アプリを構築して、エンリッチメント処理されたインデックス付きドキュメントのインデックスのテスト、デモンストレーション、検索を行い、接続を探索します。

シナリオの詳細

大規模な非構造化データセットには、標準の検索ソリューションでは解析できない、タイプライターや手書きのメモ、写真や図、その他の非構造化データが含まれることがあります。 JFK 暗殺記録には、1963 年のケネディ大統領暗殺事件の CIA 調査に関する 34,000 ページを超える文書が含まれています。

JFK ファイル サンプル プロジェクトオンライン デモでは、Azure Cognitive Search の特定のユース ケースを紹介しています。 このソリューション アイデアは、すべてのシナリオに対応したフレームワークやスケーラブルなアーキテクチャではなく、一般的なガイドラインと例を提供するものです。 このコード プロジェクトとデモでは、公開 Web サイトと、抽出された画像用に一般に読み取り可能なストレージ コンテナーを作成するため、非公開データにこのソリューションを使用しないでください。

Azure Cognitive Search の AI エンリッチメントを使用すると、画像や BLOB のほか、JFK ファイルのような非構造化データ ソースから、検索可能でインデックス付け可能なテキストを抽出して強化できます。 AI エンリッチメントでは、Cognitive Services Computer Vision および Cognitive Service for Language API の事前トレーニング済みの機械学習スキル セットが使用されます。 また、カスタム スキルを作成してアタッチし、CIA Cryptonyms など、ドメイン固有のデータ用の特別な処理を追加することもできます。 その後、Azure Cognitive Search で、そのコンテキストのインデックス作成と検索を行うことができます。

このソリューションの Azure Cognitive Search のスキルは、次のカテゴリに分類されます。

  • 画像処理。 組み込みのテキスト抽出および画像分析スキルには、オブジェクトと顔の検出、タグとキャプションの生成、著名人とランドマークの識別が含まれます。 これらのスキルによって、画像コンテンツのテキスト表現が作成され、これを Azure Cognitive Search のクエリ機能を使用して検索できます。 "ドキュメント解析" は、テキスト以外のソースからテキスト コンテンツを抽出または作成するプロセスです。

  • "自然言語処理"。 エンティティ認識言語検出キーフレーズ抽出などの組み込みスキルによって、非構造化テキストがインデックス内の検索可能およびフィルター可能なフィールドにマップされます。

  • "カスタム スキル" では、Cognitive Search を拡張して、特定のエンリッチメント変換がコンテンツに適用されます。 カスタム Web API スキルを使用して、カスタム スキルのインターフェイスを指定します

考えられるユース ケース

  • 検索およびデータ サイエンス アプリにおける非構造化テキストと画像コンテンツの価値と有用性を向上させます。
  • カスタム スキルを使用して、オープンソース、サードパーティ、またはファーストパーティのコードをインデックス パイプラインに統合します。
  • スキャンされた JPG、PNG、またはビットマップ ドキュメントをフルテキスト検索可能にします。
  • 画像とテキストを組み合わせた PDF の標準の PDF テキスト抽出よりも優れた結果を出します。 スキャンされた、ネイティブの PDF 形式の中には、Azure Cognitive Search で正しく解析されないものがあります。
  • 大規模な非構造化または半構造化ドキュメントに隠れている本質的に意味のある生コンテンツまたはコンテキストから、新しい情報を作成します。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は次のとおりです。

プリンシパル作成者:

パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次のステップ

このソリューションの詳細情報:

製品ドキュメントを読む:

次のラーニング パスを試してみてください。

関連するアーキテクチャとガイダンスを参照してください。