OpenSearchでは、名前付きエンティティ認識(NER)の結果とエンティティの優先順位に介入できます。NERの結果が期待どおりでない場合は、介入を実装できます。
概念
NER結果への介入
NER結果に介入するには、NERの介入辞書を作成し、その介入辞書をクエリ分析ルールに関連付けます。セマンティックエンティティはアナライザーと密接に関連しています。そのため、NERの介入辞書を作成する際には、アナライザーを使用する必要があります。介入辞書は、インデックスに使用されているものと同じアナライザーを使用している場合にのみ、クエリ分析ルールに関連付けることができます。
NERの介入辞書を作成する場合は、専用のアプリケーション用に調整されたモデルアナライザーを設定できます。
介入辞書で指定された検索クエリに対して、完全一致または部分一致を有効にできます。
NER設定の介入辞書には、最大1,000個の介入エントリを追加できます。
介入エントリに指定する検索クエリは正規化する必要があります。正規化されていない場合、介入エントリは追加できますが、介入には使用できません。正規化プロセスには、大文字を小文字に変換すること、および全角文字を半角文字に変換することが含まれます。
NERの介入辞書をクエリ分析ルールに関連付ける場合は、検索クエリでスペースを無視するかどうかを指定できます。
場合によっては、特定の検索クエリの分析結果が異なる場合があります。たとえば、アナライザーが更新された後、検索クエリが入力された後に取得される分析結果は、介入エントリが追加された後に取得される分析結果と異なる場合があります。このような場合、介入エントリは無効になります。検索クエリに対してエラーコード6612が返されます。このエラーコードが返された場合は、OpenSearchコンソールでこの介入エントリを変更してください。
エンティティの優先順位への介入
使いやすさを考慮して、OpenSearchはエンティティのデフォルトの優先順位設定を提供しています。必要に応じて、デフォルトの設定を変更できます。優先順位設定の変更は、検索クエリの書き換えルールに影響を与える可能性があります。
エンティティの優先順位を設定する場合は、高優先順位と中優先順位の両方を指定してください。指定しない場合、NERベースの検索クエリ書き換え機能は有効になりません。
各エンティティには1つの優先順位レベルのみを指定してください。
概要
OpenSearchは、NERを実装するための組み込み辞書を提供しています。NERに介入するには、次の手順を実行します。
NERの介入辞書を作成する。介入辞書を作成するには、OpenSearchコンソールにログインします。左側のナビゲーションペインで、検索アルゴリズムセンター > 検索設定を選択します。「基本設定」ページの左側のペインで、「辞書管理」をクリックします。「辞書管理」ページで、「作成」をクリックします。「クエリ分析辞書の作成」パネルで、介入辞書の名前を入力し、辞書の種類を選択して、「保存」をクリックします。介入辞書が作成されると、辞書リストに表示されます。
介入辞書に介入エントリを追加および管理する。辞書リストで作成した辞書を見つけ、「アクション」列の「エントリの管理」をクリックして、「エントリの管理」ページに移動します。このページで、必要に応じて介入エントリを追加および管理します。
介入辞書を使用する。介入辞書に介入エントリを追加した後、必要に応じて、アプリケーションのクエリ分析ルールに介入辞書を関連付けることができます。
介入辞書をテストして公開する。介入辞書がクエリ分析ルールに関連付けられた後、ルールをオンライン環境に適用する前に検索テストを実行することをお勧めします。これにより、期待される検索パフォーマンスが確保されます。
例
シナリオ:EコマースショッピングガイドサービスのOpenSearchアプリケーション用に、NER機能を備えたクエリ分析ルールを作成しました。これらのルールをオンラインアプリケーションに適用した後、返された検索結果が満足のいくものではありませんでした。この問題を解決するために、NERへの介入が実装されます。
問題の説明:ユーザーが「Chanel Foundation」という検索クエリを入力します。デフォルトでは、次のNER結果が返されます。Chanelは通常の用語として分類され、Foundationは材料の種類として分類されます。検索クエリが書き換えられた後、次のクエリ句が取得されます。title:'Foundation' RANK title:'Chanel'。ただし、Chanelはビジネスでは通常の用語ではありません。原因:Chanelはビジネスでは特別な用語です。この場合、NERへの介入が必要です。
解決策:NERの介入辞書を作成し、その介入辞書をオンラインアプリケーションのクエリ分析ルールに関連付けます。
手順:
OpenSearchコンソールにログインします。左側のナビゲーションペインで、検索アルゴリズムセンター > 検索設定を選択します。「基本設定」ページの左側のペインで、辞書管理をクリックします。「辞書管理」ページで、作成をクリックします。
クエリ分析辞書の作成パネルで、介入辞書の名前を入力し、辞書の種類パラメーターをエンティティ認識に設定し、アナライザーの種類を選択します。使用するクエリ分析ルールで指定されたインデックスで使用されているアナライザーの種類に基づいて、アナライザーの種類パラメーターを組み込みアナライザーまたはカスタムアナライザーに設定できます。使用可能なアナライザーは自動的に一致し、関連付けられたアナライザードロップダウンリストに表示されます。Eコマース業界のテキスト用アナライザーのみがNERをサポートしています。
クエリ分析ルールで指定されたインデックスに調整されたモデルアナライザーが使用されている場合は、アナライザーの種類パラメーターを調整されたモデルアナライザーに設定し、インスタンスの選択ドロップダウンリストからアプリケーションの名前を選択してから、調整されたモデルアナライザーを選択します。
作成した介入辞書を見つけ、「アクション」列の「エントリの管理」をクリックします。表示されたページで、介入エントリの追加をクリックします。「介入エントリの追加」パネルで、「検索クエリ」フィールドに検索クエリを入力し、NER結果を変更します。
次の図は、エラーNER結果を示しています。
次の図は、介入後のNER結果を示しています。
NERの介入辞書が調整されたモデルアナライザーに基づいて作成されている場合は、介入エントリを追加するときに、調整された検索モデルに使用されているアナライザーのバージョンを選択する必要があります。
介入タイプパラメーターは、完全一致または部分一致に設定できます。完全一致の値は、指定された検索クエリが介入クエリと完全に一致する場合に介入が実装されることを示します。部分一致の値は、指定された検索クエリに介入クエリが含まれている場合に介入が実装されることを示します。
クエリ分析ルールの設定ページで、作成したNERの介入辞書をクエリ分析ルールに関連付けます。この手順では、ルールをオンラインアプリケーションに適用しないでください。
NERへの介入中に、検索クエリでスペースを無視するかどうかを指定できます。デフォルトでは、スペースは無視されません。例:検索クエリが「Dress Women」で、介入エントリが「DressWomen」であるとします。スペースを無視することを選択した場合、介入エントリに基づいて介入が実装されます。スペースを無視しないことを選択した場合、介入は実装されません。
検索テストを実行します。この例では、Chanel Foundationに関連するドキュメントが取得されます。