インテリジェントにデータを検索するアプリを作成する

概要

標準的なサイトの検索では、ひと通り目を通すには多すぎるほどの結果が返されることがあります。一方、Watson Discovery Service のインスタンスでは、関連性を基準に絞り込んでから結果を返す検索インターフェースを素早く簡単に構築できます。それは、Watson Discovery Service にはエンリッチされたデータのクエリーを実行し、その結果を処理して関連性の高いものに絞り込んで返す、既製の UI コンポーネントが用意されているためです。このコード・パターンでは、一連の Airbnb に関して一般公開されているレビューを例に、さまざまな UI コンポーネントを使用して洞察を視覚化する方法を説明します。いったんこの方法を把握すれば、データセットを取り換えて、独自の使用ケースに応じて簡単に調整できます。

説明

より深い洞察力を持つ検索インターフェースにするには、エンリッチされたデータのクエリーを実行して、その結果を処理するという方法があります。まさにこのように動作するのが、このコード・パターンで紹介する Watson Discovery Service ベースの Node.js アプリです。このパターンでは、すぐに使える個々の UI コンポーネントを使用して、Watson Discovery アナリティクス・エンジンによってエンリッチされたデータを抽出し、視覚化する方法をデモします。

Watson Discovery Service を利用する最大の利点は、コグニティブ・エンリッチを適用してデータから洞察を引き出す、その強力なアナリティクス・エンジンにあります。このコード・パターンのアプリでは、Watson Discovery Service アナリティクス・エンジンのエンリッチ機能を、フィルター、リスト、グラフを使用して提示する例を説明します。データには主に以下のエンリッチが適用されます。

  • エンティティー: 人、企業、組織、都市など
  • カテゴリー: 深さ最大 5 レベルのカテゴリー階層にデータを分類
  • 概念: 必ずしもデータ内で参照されていない一般概念を識別
  • キーワード: データのインデックスや検索で通常使用される重要なトピック
  • 感情: 各ドキュメントの全体的な感情 (肯定的または否定的)

このアプリは標準的な UI コンポーネント (フィルター、リスト、タグ・クラウド、感情グラフなど) だけでなく、パッセージ機能および強調表示機能といった Discovery の高度な手法も使用します。このアプリはこの 2 つの手法を使用して、クエリーを基に最も関連性の高いスニペットを識別するため、ユーザーが探しているデータと一致した検索結果を返す確率が高くなります。

このコード・パターンをひと通り完了すると、以下の方法がわかるようになります。

  • Watson Discovery Service にデータをロードしてエンリッチする
  • Watson Discovery Service 内でデータのクエリーを実行し、データを処理する
  • Watson Discovery Service によってエンリッチされたデータを示す UI コンポーネントを作成する
  • よく使われている JavaScript テクノロジーを使用して、Watson Discovery Service のデータとエンリッチを備えた完全な Web アプリを構築する

フロー

フロー

  1. Airbnb レビューの JSON ファイルを Discovery コレクションに追加します。
  2. アプリの UI を使用してバックエンド・サーバーとやり取りします。フロントエンドのアプリ UI が React を使用して検索結果をレンダリングします。この UI は、バックエンドで使用したすべてのビューを再利用してサーバー・サイドのレンダリングを行うことができます。フロントエンドは semantic-ui-react コンポーネントを使用していて、レスポンシブなものとなっています。
  3. Discovery が入力を処理してバックエンド・サーバーにルーティングします。バックエンド・サーバーの役目は、ブラウザーに表示するビューをレンダリングすることです。バックエンド・サーバーは Express を使用して作成されており、React で作成されたビューを、express-react-views エンジンを使用してレンダリングします。
  4. バックエンド・サーバーがユーザー・リクエストを Watson Discovery Service に送信します。バックエンド・サーバーはプロキシー・サーバーとして機能し、フロントエンドからのクエリーを Watson Discovery Service API に転送する一方で、機密性の高い API キーをユーザーから隠します。

手順

このパターンの詳細な手順については、README を参照してください。手順の概要は以下のとおりです。

  1. watson-discovery-ui GitHub リポジトリーを複製します。
  2. Watson Discovery サービス・インスタンスを作成します。
  3. Discovery ファイルをロードします。
  4. 資格情報を構成します。
  5. アプリケーションを実行します。