LoginSignup
18
14

More than 3 years have passed since last update.

Azure Search の Cognitive Search 機能を使って、ドキュメントの言語解析のプロトタイプ作成

Posted at

背景

ドキュメントには、様々な形式知が詰まっています。それを構造化されたデータセットに変換できると、様々な使い方が考えられます。いわゆる非構造化データから、構造化データへの変換といっていいでしょう。
そのとっても良い例が JFKFiles です。

JFKFiles:
https://www.microsoft.com/en-us/ai/ai-lab-jfk-files

目的は文書を探す事です。

そのために、Cognitive Servicesや、独自のNLPモデルをうまく使っています。

Azure Cognitive Search における AI の概要:
https://docs.microsoft.com/ja-jp/azure/search/cognitive-search-concept-intro

decode18 にて、その一部の機能が、Azure Search に入ったこともあり、Breakout Session にて取り扱いました。文書の差分更新に強く、n-gram/形態素解析などの言語解析エンジンを持ち、かつ、全文検索エンジンたる機能をマネージドで持っている Search Engine ですから。その利便性の高さに驚いたものです。

de:code 2018 AI01:
https://www.microsoft.com/ja-jp/events/decode/2018download/archive.aspx?#AI01

それが、MSIgnite2019 にて更に強化されていました。具体的には、以下の2つの機能が追加され、プロトタイプ作成までが、あっという間です。

Understanding AI enabled search for your apps: Azure Search technical edition:
https://myignite.techcommunity.microsoft.com/sessions/81078?source=sessions

ここでは、そのプロトタイプ作成手順を、補足していきます。

注意事項

ここで扱っているナレッジストアは、執筆時点 (2020/1/19)、パブリックプレビューです。

事前準備

以下、オプション:

手順

特に指定が無い限り、規定値で大丈夫です😊

1. クロール対象のファイル置き場の作成

  1. Azure Portal で Azure Storage Account を作成
    https://docs.microsoft.com/ja-jp/azure/storage/common/storage-account-create?tabs=azure-portal

  2. Blob Storage に、ファイルを保存する、コンテナー (フォルダー) を作成

  3. Azure Storage Explorer で、ファイルを Blob Storage にアップロード

2. Azure Search インスタンスの作成

3. Indexer の作成 と Cognitive Services らの組み込み

Indexer とは、クローラーみたいな存在です。指定した Blob のコンテナーを、指定したスケジュールでクローリングしてくれます。Azure Search では、そのクローリング時に、別のパイプライン処理を組み込むことができて、特に Deep Learning 関連のものを コグニティブ スキルセットと呼んでいます。それに限らずできるのですが。

面白いことに、その解析結果は、2つのデータベースに出力されます。

  • 転置インデックス: Search 用
  • ナレッジストア: 構造化されたデータの、2次利用 用。Azure Table Storage か、Azure Blob Storage に保存されています。

image.png

image.png

手順はこちらを。

  クイック スタート:Azure Cognitive Search コグニティブ スキルセットを Azure portal で作成する
  https://docs.microsoft.com/ja-jp/azure/search/cognitive-search-quickstart-blob

3. Search 用の Web アプリの HTML 作成

Azure Search の処理は、REST ですから、JavaScript などからも比較的容易に呼びやすいわけです。とはいいつつ、それなりに手間なのは事実。
なんと、Azure Search はインデックスのポータルから、そのHTMLを作成してくれる機能があるのです! 😍
どこでも動かせるので、プロトタイプとしては、超絶便利!

image.png

手順:

クイック スタート:ポータルで検索アプリを作成する (Azure Cognitive Search):
https://docs.microsoft.com/ja-jp/azure/search/search-create-app-portal

4. 言葉の関連性などをグラフ表現などで、可視化して、フィルタリングしたい! --- Power BI からの接続

これ、超絶簡単で。しかも、Azure Table 上に格納された情報だけで、ここまで Power BI でやってくれる、とは...
Azure Portal の中ですと スキルセット から設定できます。用意されている Power BIのテンプレートファイルに、ナレッジストアである、Azure Storageアカウントへの接続文字列を設定するだけです😍

Power BI Template の設定項目:

image.png

出来ました。
- フィルタリングが容易。BIツールだから
- 自分で、グラフ表現や、固定でのフィルタリングなどの設定が容易。Power BI Desktopが、よくできたダッシュボード作成ツールでもあるから

image.png

Key Phase:

image.png

Entity:

image.png

サンプル:
https://msit.powerbi.com/view?r=eyJrIjoiY2U4NzRkYWYtYTA2Ny00OTIxLWE3NjYtY2QyYWNlZTgyYzM2IiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9

  • 一番下の、Page を変えてください

手順は、こちら。

Power BI を使用してナレッジ ストアに接続する:
https://docs.microsoft.com/ja-jp/azure/search/knowledge-store-connect-power-bi

What's Next

ここまで来ると、以下がやりたくなると思います。

Make Vision

以下、私の考察です。
これがあって、先の What's Next になってますね。

これは、Knowledge Managementの領域でもありますよね。となると「人」というEntityは外せません。人に着目すると、人の Activity Log にも注目したくなります。

  • Data

非構造化データの構造化は、Computer業界の長年のであったといっていいかと思います。どんなに、動画解析エンジンが進んでも、その Speech to Textや、モーションデータを、最後は構造化するわけですから。
この Cognitive Search の取り組みは、そこへの再度の挑戦といっていいですよね。

整理ますと、こんな感じ。今日時点。

image.png

Happy Hacking!

18
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
14