エンティティ オプション

エンティティ一致とデータ抽出の動作を変更するエンティティ オプションがいくつかあります。これらのオプションはシステム エンティティ向けに事前構成されているので、システム エンティティ向けには変更できません。ただし、独自のカスタム エンティティ向けに変更することは可能です。選択したオプションに応じて、さまざまな種類のエンティティを作成できます。

また、次の 2 つのオプションは、エンティティの種類を決定しませんが、エンティティ一致の動作に影響します。

このドキュメントでは、上記の各オプションについて説明します。

このデータがある場所

エージェントを作成する際は、Dialogflow コンソール(ドキュメントを表示コンソールを開く)を使用するのが最も一般的です。コンソールの使用方法は次のとおりです。エンティティ オプションのデータにアクセスするには、次の手順を行います。

  1. Dialogflow コンソールに移動します。
  2. エージェントを選択します。
  3. 左側のサイドバーのメニューで [Entities] を選択します。
  4. エージェント用に定義されたカスタム エンティティの [Custom] タブ、またはエージェントで使用するシステム エンティティの [System] タブを選択します。
  5. 既存のエンティティには、次のようなチェックボックス オプションがあります。
    • 類義語を定義する
    • 正規表現エンティティ(カスタム エンティティのみ)
    • 自動拡張を許可する(カスタム エンティティのみ)
    • ファジー一致(カスタム エンティティのみ)

コンソールではなく API を使用してエージェントを作成する場合は、EntityTypes リファレンスをご覧ください。API のフィールド名はコンソールのフィールド名と同様です。以下の手順では、コンソールと API の間の重要な違いを説明します。

マップ エンティティ

マップ エンティティは、参照値からそれぞれの参照値の類義語へのマップを提供します。マップ エンティティの各エントリには、1 つの参照値と複数の類義語のリストが含まれます。たとえば、以下の各行は size エンティティ タイプのエンティティ エントリです。

参照値 類義語
S S、small、tiny、little
M M、medium、average
L L、large、huge、big

上記の各エンティティ エントリの類義語リストに、参照値が含まれていることに注意してください。参照値を一致させるには、参照値自体を同義語として含める必要があります。最初にコンソールで参照値を入力すると、それが自動的に類義語として追加されます。

いずれかの類義語がエンドユーザー表現の一部に一致する場合、関連する参照値が一致として抽出され、それを使って関連するパラメータ値が解決されます。

参照値を類義語リストから省略してもかまいません。その場合、参照値そのものはエンドユーザー表現の一部に一致しませんが、類義語のいずれかが一致した場合に抽出値として使用されます。これは、エンドユーザーによって入力 / 発話されない参照値として特殊な文字列を使用する場合に適しています。

システム エンティティの多くはマップ エンティティです。たとえば、@sys.date システム エンティティは、「January 1, 2015」や「The first of January of 2015」といった一般的な日付参照に一致します。どちらの入力も ISO-8601 形式の参照値「2015-01-01T12:00:00-03:00」にマッピングされます。

マップ エンティティを作成するには、次の手順を行います。

  • コンソールを使用して [Regexp entity] オプションのチェックボックスをオフにし、[Define synonyms] オプションにチェックを入れます。
  • API を使用して、[EntityType kind] フィールドを KIND_MAP に設定します。

リスト エンティティ

リスト エンティティは、単一値のエンティティ エントリからなるリストを提供します。参照値と類義語はありません。たとえば、以下の各行は material エンティティ タイプのエンティティ エントリです。

fabric
wood
metal

いずれかの値がエンドユーザー表現の一部に一致する場合、関連する値が一致として抽出され、それを使って関連するパラメータ値が解決されます。

多くのシステム エンティティはリスト エンティティです。たとえば、@sys.color システム エンティティは、「red」や「blue」などの一般的な色の入力をマッチングします。色が一致した場合、抽出された値は参照値にマッピングされません。たとえば、「scarlet」や「crimson」などの赤の色調は、「red」にマッピングされずに元の値「scarlet」、「crimson」のまま抽出されます。

リスト エンティティを作成するには、次の手順を行います。

  • コンソールを使用して [Regexp entity] オプションのチェックボックスをオフにし、[Define synonyms] オプションのチェックボックスをオフにします。
  • API を使用して、[EntityType kind] フィールドを KIND_LIST に設定します。

複合エンティティ

複合エンティティは特別な種類のリスト エンティティです。通常、リスト エンティティのエンティティ エントリに含まれるのは簡単な単語やフレーズですが、他のエンティティ タイプが含まれることもあります。あるエンティティ タイプが他のエンティティ タイプで参照されている場合、その参照はエイリアスと呼ばれます。他のエンティティ タイプへのエイリアスを含むリスト エンティティは、複合エンティティと呼ばれます。

エイリアスを作成するときは、参照されるエンティティ タイプの名前と、選択したプロパティ名を指定します。実行時に複合エンティティが一致すると、抽出された値は JSON オブジェクトとして返され、エイリアス プロパティ名が JSON プロパティ名として使用されます。エイリアスの入力形式は次のとおりです。

@entity-name:property-name

たとえば、次のエンティティ エントリを含む、市または州に一致する place エンティティ タイプを作成できます。

@sys.geo-city:city
@sys.geo-state:state

エンドユーザー表現の一部に「Nashville」が含まれている場合、place エンティティ タイプが一致します。抽出された値は {"city": "Nashville"} のように返されます。

1 つのエンティティ エントリに複数のエンティティ エイリアスを使用することもできます。direction エンティティ タイプと @sys.number システム エンティティ タイプのエイリアスをそれぞれ含む以下の move カスタム エンティティ タイプを指定したとします。

方向カスタムマップ エンティティ タイプ:

参照値 類義語
forward forward、forwards
back back、backward、backwards

移動カスタムリスト エンティティ タイプ:

@sys.number:steps steps @direction:direction

move エンティティが「five steps backward」を含むエンドユーザー表現に一致する場合、move エンティティが一致します。抽出された値は {"steps": 5, "direction": "back"} のように返されます。

システム エンティティの多くは複合エンティティです。たとえば、@sys.unit-currency システム エンティティは、通貨の名前で示された金額のマッチングに使用されます。「50 euros」や「twenty dollars and five cents」などのエンドユーザー表現を照合します。抽出された値は、{"amount": 50, "currency": "EUR"} のような JSON オブジェクトとして返されます。

正規表現エンティティ

正規表現エンティティを使用すると、正規表現のマッチングを行うことができます。詳細については、正規表現エンティティをご覧ください。

正規表現エンティティを作成するには、次の手順を行います。

  • コンソールを使用して [Regexp entity] オプションにチェックを入れます。
  • API を使用して、[EntityType kind] フィールドを KIND_REGEXP に設定します。

自動拡張

カスタム エンティティ タイプ向けの自動拡張機能を有効にできます。有効にすると、エージェントは明示的に提供されていない値を認識できるようになります。たとえば、ショッピング リストのエンティティ タイプを次のように指定したとします。

参照値 類義語
bread bread
butter butter
milk milk
apple apple
ice cream ice cream

「ニンジンを買う必要がある」というエンドユーザー表現の場合、「ニンジン」が含まれていなくても、このエンティティ タイプに一致します。エージェントは、「ニンジン」が他の値と類似していることを認識します。エージェントでのエンティティ タイプ拡張を向上させるには、トレーニング フレーズに多くのエンティティ値の例を提供することが重要です。そうしないと、自動拡張が想定どおりに機能しない可能性があります。

自動拡張を検討する際には、次のベスト プラクティスに従ってください。

  • 自動拡張を有効にしても、エンティティの抽出は保証されません。有限なリストの場合、リストの一部を指定して自動拡張を有効にするのではなく、完全なリストを指定してください。
  • 複数のエンティティで自動拡張を有効にすると、競合や予期しない分類結果が生じる可能性があります。
  • トレーニング フレーズで、エンティティ値の例を多数提供してください。

自動拡張を有効にするには、次の手順を行います。

  • コンソールを使用して、[Allow automated expansion] にチェックを入れます。
  • API を使用して、[EntityType autoExpansionMode] フィールドを AUTO_EXPANSION_MODE_DEFAULT に設定します。

ファジー一致

カスタム エンティティのファジー一致を有効にできます。ファジー一致が有効な場合、値または類義語における単語の順序は関係ありません。詳細については、ファジー一致をご覧ください。

ファジー一致を有効にするには、次の手順を行います。

  • コンソールを使用して [Fuzzy matching] オプションをオンにします。
  • API を使用して、[EntityType enableFuzzyExtraction] フィールドを true に設定します。