Azure Cognitive Search (旧 Azure Search) はテキストや画像等々のデータを取り込み、スキルセットと呼ばれる AI 機能で付加情報を取得して追加、インデックスを作成して全文検索を Web API として提供するサービスです。
Azure Cognitive Search の基本機能
データ取り込み→インデックス自動生成 & データ整形→すぐに全文検索エンジンに
ドキュメントやデータは、Word, PowerPoint, Excel や PDF, RTF, html, xml, json もそのまま取り込みできます。また、ドキュメント内部やそのままの画像(jpg, png, tiff, bmp) も取り込みを行います。
Azure 上のデータ (Azure Blob Storage, Table Storage, Azure Files, Cosmos DB, Azure SQL DB, MySQL, ADLS Gen2) は選択するだけでデータソースとして利用可能です。
データ取り込みから、インデックスのスキーマ検出 & インデクサー生成+データ取得を自動で行い、すぐに全文検索エンジンとして Web API で利用できるようになります。
Azure Cognitive Search にスキルセットを追加して更なるデータを付加
Cognitive Services (Computer Vision, Face, Text Analytics) やカスタムで作成した処理機能をスキルセットとして追加することができます。これにより、画像のOCRはもちろん、説明やタグ付け、人間の顔の認識、キーワードの抽出などが可能になります。また、Form Recognizer をカスタムで追加すると、フォームからのデータ抽出も可能です。これが元のテキストデータに付加されることで、より充実したデータセットが出来上がる仕組みです。
Azure Cognitive Search はじめよう Step by Step
PDF納品書をデータとして取り込む
Azure Blob Storage に PDF をアプロードしておき、それをデータソースとして選択して読み込ませると、自動でインデックススキーマを取得します。
画像に含まれる文字を検出するためのOCRを追加したり、テキスト(文章やキーワード)を翻訳するといった機能を気軽に追加できるように、Cognitive Services 試用版 (Computer Vision, Face, Text Analytics, Entity Search, AutoSuggest など) が予め付与されています。
取得できたデータを Azure Table Storage や Blob Storage に Export して確認でき、そのまま Power BI ダッシュボード で多角的に分析することも可能です。
カスタムのインテリジェント機能を追加
用意されている Cognitive Services 以外にも、他の Cognitive Services や 3rd Party の機能を “カスタムスキル” として追加することも可能です。Web API として定まったフォーマットで入出力できればOKで、Azure Function などで実装可能です。
カスタムスキルの入出力フォーマットについて
How to add a custom skill to an Azure Cognitive Search enrichment pipeline
Example: Create a custom skill using the Bing Entity Search API
Cognitive Services Form Recognizer
Form Recognizer を利用することで、発注書やレシートといった定型 (だけどアイテム数は可変) といったフォーマットを Key-Value データとして取得できます。
例えば、Form Recognizer を使って、Azure Functions で入出力を加工した Web API サービスを作成します。 こちらをスキルセットとして適用してデータを取り込み、全文検索エンジンを作成します。
Cognitive Search Custom Skillset サンプルコード (Azure Functions × Form Recognizer × Python)
カスタムスキルセットの適用
カスタムスキルセットは Azure Cognitive Search の REST API 経由で定義します。また、カスタムスキルセットで追加するインデックスも合わせて REST API で定義しておきましょう。
Create Skillset (Azure Cognitive Search REST API)
Create Index (Azure Cognitive Search REST API)
全文検索機能を使ってみる
Simple Query & Lucene Query (どちらも Lucene ベースのクエリ―) で検索が可能です。全文からのキーワード検索はもちろん、カテゴリーの絞り込みと条件による抽出など、Web API でデータを取得可能です。
まずは Azure Portal の Azure Cognitive Search のページから確認できます。
Azure portal の Search エクスプローラーを使用して Azure Cognitive Search でドキュメントのクエリを実行する
Azure Cognitive Search でのクエリの種類と構成
Power BI ダッシュボードによるデータ分析
データ読み込み結果を Export した結果データの分析ダッシュボードが PowerBI テンプレートとして提供されており、ダウンロードして項目を設定することですぐ利用可能です。
もちろん個別データを取得して独自のダッシュボードも作成可能です。
Microsoft Ignite The Tour Tokyo (2019/12/4-5)
今回ご紹介した内容は Microsoft Ignite 2019 の東京開催のセッションで登壇いたしますので、是非現地で or オンデマンド視聴でご確認ください。
ピンバック: Microsoft Ignite 2020: Cognitive Services アップデート – 青い空の向こうへ