エンリッチメントの選択

アプリケーションに対して特別な意味を持つ用語またはパターンについて Discovery に教えることができるリソースを追加します。

以下の表では、さまざまなニーズに対応するために追加するのに最適なリソースについて説明します。

ドメイン・ツールの概要
目的 リソース 注記
文書内のテキストを分類できるカテゴリーを定義します。 分類器 N/A
自分にとって重要な用語 (販売する製品の名前など) の用語と同義語を認識します。 辞書 N/A
重要度のパターンをキャプチャーする正規表現を定義します。例えば、 AB10045 は、オーダー番号に使用される構文です。 正規表現 N/A
カスタム機械学習モデルで定義されているエンティティーおよび関係を認識し、タグ付けします。 機械学習モデル 別の IBM ツールから作成およびエクスポートされたモデルが必要です。
IBM Watson® Knowledge Studioで拡張ルール・モデルを作成することにより、定義したルールに基づくフィールドにルールを適用します。 拡張ルール・モデル IBM Watson® Knowledge Studio から作成およびエクスポートされる拡張ルール・モデル、またはエクスポートされたパターン・リソースを使用する拡張ルール・モデルが必要です。
IBM Cloud Discovery に認識させる構文パターンに一致する文で言及されている用語を認識します。 パターン(ベータ) 管理対象デプロイメントでのみ、英語コレクションのベータ機能として使用できます。 パターンの定義によって派生したエンリッチメントは、コンテンツ・マイニング・プロジェクトに適用できません。 リソースをエクスポートして、拡張ルール・モデルとして使用することができます。
エンティティー抽出の機械学習モデルをトレーニングすることにより、重要と識別したエンティティーを認識します。 エンティティー抽出 インポートされた Knowledge Studio コーパスからの開始をサポートします。
文書内のセンテンスをユーザー定義のセンテンス・クラスに分類します。 センテンス分類器 スマート・ラベル付けをサポートして、ラベル付けプロセスを迅速化します。

あるいは、コレクション内の以下の情報を検出する組み込みの Watson NLP エンリッチメントを適用することもできます。

Smart Document Understanding (SDU) モデルを定義することにより、文書構造に基づいて文書から意味を抽出できます。 Smart Document Understanding ツールを使用して、エンリッチメントをターゲットにしたり、大きな文書をより管理しやすいチャンクに分割したりするために使用する新規フィールドを識別します。 詳しくは、 SDU による構造上の意味 を参照してください。

1 つのプロジェクトに追加した辞書および分類器は、他のプロジェクトで使用できます。

エンリッチメントを最大限に活用する方法について詳しくは、ブログ投稿 「Enriching your documents can make search more effective」 を参照してください。

適切なエンリッチメント・タイプの選択

以下の図は、ユース・ケースに適したエンリッチメントを選択するのに役立ちます。

データ内の重要な情報にタグを付ける場合は、以下の質問に回答して、使用する適切なエンリッチメントを見つけます。用語、パッセージ、または文書にタグを付けますか? パッセージまたは文書の場合は、分類器エンリッチメントを作成します。 用語の場合、用語は有限リストで表されますか? 「はい」の場合は、辞書エンリッチメントを作成します。 そうでない場合、用語の構文はパターンに従いますか? その場合、その用語のすべてのバリエーションが単一のパターンに適合するかどうか。 その場合は、正規表現エンリッチを作成します。 そうでない場合は、用語のバリエーションでパターンを見つけるために提供する用語の例を使用するパターン・エンリッチメントを作成します。 用語を取り込むことができるパターンがない場合は、用語が使用されているコンテキストに基づいて用語を識別するためのエンティティー抽出プログラムを作成します。
Flow diagram for choosing the right enrichment

エンリッチメントの併用

多数のエンリッチメントを一緒に使用して、検索アプリケーションの開発時に発生する可能性があるさまざまな課題に取り組むことができます。

多くのチームは、 辞書 エンリッチメントを作成することから開始します。 辞書は、重要な用語を識別してタグ付けし、後で取得できるようにするための優れたツールです。 レシピから材料を抽出する必要がある検索アプリケーションを作成するとします。 辞書エンリッチメントは、ほとんどの要素についての言及を認識できます。 ただし、辞書エンリッチメントは、2 語の用語に対して部分的に一致する場合があります。 olive oilmustard greens などの用語の場合、誤って認識されるのは olivemustard のみである可能性があります。 検索の正確度を向上させるために、2 ワードの構成要素についての言及を認識できる パターン ・エンリッチメントを使用して、辞書エンリッチメントを拡張することができます。 いくつかのレシピでは、ヨーロッパ形式 (E104) の食品の色分けについて言及している場合があります。 正規表現 エンリッチメントを追加して、 E1nn という構文のコードの出現を認識できます。 最後に、他のエンリッチメントが認識できない用語をキャッチするために、 機械学習 エンリッチメントを使用できます。 エンリッチメントは、外部ツールで作成して Discovery にインポートすることも、 エンティティー抽出 エンリッチメントを作成して Discovery で作成することもできます。

エンティティー抽出エンリッチメントは、他のエンリッチメントよりも洗練されています。 例えば、辞書エンリッチメントは、文書内に出現する辞書用語と同義語の完全一致のみを認識します。 正規表現エンリッチは、特定のパターンのみを認識します。 対照的に、エンティティーの出現は、センテンス内でエンティティーの例が言及されているコンテキストに基づいて認識されます。

例えば、ロケーションを認識する必要があり、処理する文書に以下のタイプのセンテンスが含まれているとします。

  • Massachusetts に住んでいます。
  • 来週は New York City から Paris に移動します。

ディクショナリー・エンリッチメントを使用してロケーション名を正常に認識するには、ディクショナリーに可能なすべてのロケーションをリストする必要があります。 ただし、エンティティー抽出プログラム・エンリッチメントを使用する場合は、センテンス内でロケーションがどのように参照されているかに基づいて、いつロケーションが言及されるかを特定できます。 トレーニング・データで「I live in x」、「I 'm from x」、「I 'm リーブ to x」などの句を使用すると、エンティティー抽出プログラムは、 x がロケーションへの参照であることを学習できます。

ディクショナリーとエンティティー抽出エンリッチメントのどちらを使用するかを選択する必要がある場合は、以下のガイドラインに従ってください。

  • 可能な例のリストが短い場合は、辞書を使用してください。

    太陽系には 8 つの惑星しか存在しないため、 planet エンティティーを作成するよりも、 EarthSaturn などの類義語を使用して辞書用語 planet を定義する方が効率的です。 ただし、地球上のすべての可能な場所のリストを定義することはできません。 エンティティー抽出は、より多くのロケーション言及を認識できます。

  • 例のリストが静的な場合は、辞書を使用します。

    冥王星についての議論では、太陽系の惑星のリストが静的であるため、 planet カテゴリーも良い例です。 あるいは、製品に関する一般的な顧客センチメントをモニターしたい場合があります。 製品名の言及を認識できる必要がありますが、詳細は必要ありません。 製品名が多岐にわたる場合は、 product name エンティティーを作成できます。 新規製品がポートフォリオに追加されたり、製品名が時間の経過とともに変更されたりしても、製品リスト全体を維持する必要はありません。 エンティティー抽出は、製品が言及されているセンテンスのコンテキストに基づいて、製品に関する一般的なフィードバックを引き続き認識できます。

リソースの追加

プロジェクトにカスタム・エンリッチを追加すると、プロジェクト内のどのコレクションでもそのカスタム・エンリッチを使用できるようになります。

リソースを追加するには、以下の手順に従ってください

  1. プロジェクトを開き、 「改善とカスタマイズ (Improve and customize)」 ページに移動します。

  2. 「改善ツール (Improvement tools)」 パネルで、 「Teach ドメインの概念 (Teach domain concepts)」 を展開し、追加するリソースを選択します。

    リソースを作成すると、そのリソースは、データに適用できる新しいタイプのエンリッチになります。

  3. エンリッチを適用するコレクションとフィールドを指定します。

    エンリッチメントは、 text フィールドと html フィールド、およびアップロードされた JSON ファイルまたは CSV ファイル、あるいは Smart Document Understanding (SDU) ツールから追加されたカスタム・フィールドに適用できます。 JSON ファイルのカスタム・フィールドの最初の 50,000 文字のみがエンリッチされます。

    例えば、辞書を追加し、それをコレクションの text フィールドに適用することを選択した場合、コレクション内の文書は再処理されます。 用語 vehiclecar 辞書項目の同義語として指定され、文書テキスト内に出現する場合、 vehiclecar 辞書項目タイプの言及としてタグ付けされます。 顧客が後で car を検索すると、 vehicle メンションを含むパッセージが検索結果に含まれます。

    選択したフィールドが JSON ファイルからのものである場合は、エンリッチを適用した後に、フィールドのデータ・タイプが配列に変換されます。 フィールドは、単一値が含まれている場合でも配列に変換されます。 例えば、 "field1": "Discovery""field1": ["Discovery"] になります。

リソースから派生したエンリッチメントを後でデータに適用することを選択できます。 プロジェクトに追加したエンリッチメントは、プロジェクト内の任意のコレクションから使用できます。 「コレクションの管理」 ページに移動し、エンリッチを適用するコレクションを選択してから、 「エンリッチメント」 タブを開きます。 エンリッチの状況が *「準備完了」*であることを示していることを確認してから、コレクション内のフィールドにエンリッチを適用します。 有効にしたエンリッチメントは、ランダムな順序で文書に適用されます。 詳しくは、エンリッチメントの管理を参照してください。

デプロイされたコンテンツ・マイニング・アプリケーションから、辞書、正規表現、 Machine Learning、または PEAR ファイルから分類器またはカスタム・アノテーターを作成し、それを他のプロジェクト・タイプに保管されているコレクションのエンリッチメントとして使用することができます。 詳しくは、 ファセットの追加 を参照してください。