エンティティは、ユーザー依頼から必要なデータを確定して抽出するDialogflowのメカニズムです。インテントはエージェントがユーザーの目的と意図を理解するのに役立ちますが、エンティティはエージェントがクエリ文の最も詳細で具体的な情報を抽出するのに役立ちます。
例えば,「子供の粉ミルクがありますか」というユーザーの質問では「ミルクがありますか」がアドバイスのエンティティと見なすことができ、iアドバイスのインテントをアクティブにします。
各エンティティには以下のものが含まれます:
- エンティティタイプ:ユーザーのクエリから抽出したい情報のタイプを定義します。
- エンティティ要素:各エンティティタイプには多くの要素があり、それぞれが同等と見なされる単語またはフレーズのセットを提供します。
- エンティティの同義語と参照値: いくつかのエンティティ要素には、同様の意味を持つ複数の単語またはフレーズがたくさんあります。このエンティティには、1つの参照値と1つ以上の同義語の単語またはフレーズを提供する必要があります。
前の部分にはMeji粉ミルク製品についてアドバイスするためにインテントを作成しました。次に、該当するエンティティを作成する必要があります。右側のメニューのエンティティ項目に「エンティティ作成」のボタンをクリックして、最初のエンティティにeアドバイスという名前を付けます(エンティティだから、名前の先頭に「e」を入れました。「アドバイス」はエンティティ名です。)。デフォルトで選択するエンティティのタイプはDefine synonymsです。そして、「行の追加」を選択すると、エンティティ値とそのエンティティの同義語を入力するための2つのボックスが表示されます。
eアドバイス
参照値: アドバイス
同義語: アドバイス, 諮問、尋ねたい, 尋ねる必要がある、知る必要がある、知りたい、尋ねる、質問
したがって、ユーザーがこの同義語を含む文を入力すると、iアドバイスインテントがアクティブになります。しかし、ユーザーが上記の同義語を入力しない場合はどうなりますか???答えは、ユーザーの文に定義したエンティティと同様な言語があればチャットボットはまだ認識できます。これは、Dialogflowが人工知能で入力した同義語を学習して、ほかの同義語を推測して、該当するインテントがアクティブにします。具体的には、この例では、ユーザーの文には、以上のeアドバイスに定義された同義語がなくても、ミルクを販売するかを尋ねるための「ミルクがありますか」というフレーズがあるので、チャットボットはeアドバイスを確認でき、iアドバイスをアクティブにしました。
少し前に戻ってiアドバイスのインテントでトレーニングフレーズを定義する時に、eアドバイスのエンティティに同義語を含む文を意図的に入力しました。たとえば、eアドバイスのエンティティを含む「子供の粉ミルクについて尋ねたいです」という文は「尋ねたい」という単語です。この単語がDialogflowですぐにハイライト表示され、eアドバイスが[Action and parameters] 項目に自動的に追加されます。それで、Dialogflowがユーザーの文にeアドバイスのエンティティを含むと確認する時に、該当するiアドバイスのインテントをすぐにアクティブにします。
製品、価格、住所のインテントを処理する為に他のエンティティを引き続き定義しましょう。
e製品
参照値: Meji
同義語: 明治、 Mejiミルク、日本のミルク、Meji粉ミルク
e価格
参照値: 価格
同義語: 値段、販売価格、金額、いくら、現在の価格、販売する金額
e場所
参照値: 購入する場所
同義語: 購入する場所、 購入、買える住所、どこで買いますか参照値: 販売する場所
同義語: 販売する場所、販売、 どこで販売、 どこで売りますか
e場所のエンティティのように、エンティティ内にさまざまなエンティティ要素を定義でき、購入する場所と販売する場所の2つのエンティティ要素を定義しました。そのため、ユーザーがどこで購入するか、どこで販売するかを尋ねる必要がある場合、Dialogflowはそれをeアドバイスのエンティティとして判定します。「Dialogflowで独自に販売のチャットボットを作成する」のシリーズの最後にはDialogflowで作成したチャットボットをWebサイトに統合する方法を説明します。
INTS株式会社 開発部 ハイ・アン