Options des entités

Plusieurs options d'entité permettent de modifier le comportement de la correspondance des entités et de l'extraction de données. Ces options sont préconfigurées pour les entités système. Vous ne pouvez donc pas les modifier pour ces entités. Toutefois, il est possible de les modifier pour vos entités personnalisées. Vous pouvez créer différents types d'entités, en fonction des options sélectionnées :

Il existe également deux options qui ne déterminent pas le type d'entité, mais qui affectent le comportement de la mise en correspondance des entités :

Ce document décrit chacune de ces options.

Où trouver ces données

La méthode la plus courante pour créer un agent consiste à utiliser la console Dialogflow ES (consulter la documentation, ouvrir la console). Les instructions ci-dessous concernent l'utilisation de la console. Pour accéder aux données d'options d'entité, procédez comme suit :

  1. Accédez à la console Dialogflow ES.
  2. Sélectionnez un agent.
  3. Sélectionnez Entités dans le menu de la barre latérale gauche.
  4. Sélectionnez l'onglet Personnalisé pour afficher les entités personnalisées définies pour votre agent ou l'onglet Système pour afficher les entités système utilisées par votre agent.
  5. Consultez les options de case à cocher suivantes pour les entités existantes :
    • Définir des synonymes
    • Entité d'expression régulière (entité personnalisée uniquement)
    • Autoriser l'expansion automatique (entité personnalisée uniquement)
    • Correspondance partielle (Entité personnalisée uniquement)

Si vous créez un agent à l'aide de l'API au lieu de la console, consultez la documentation de référence sur le type EntityTypes. Les champs portent le même nom dans l'API et dans la console. Les instructions ci-dessous présentent les différences importantes entre la console et l'API.

Mappage d'entité

Les mappages d'entité fournissent un mappage de valeurs de référence à des synonymes pour chaque valeur de référence. Chaque entrée de mappage d'entité contient une seule valeur de référence et une liste de synonymes. Par exemple, chacune des lignes suivantes correspond à des entrées d'entité pour un type d'entité size :

Valeur de référence Synonymes
S S, small, tiny, little
M M, medium, average
L L, large, huge, big

Notez que la valeur de référence est incluse dans la liste des synonymes pour chaque entrée d'entité ci-dessus. Pour qu'une valeur de référence soit mise en correspondance, elle doit être incluse en tant que synonyme. Lorsque vous saisissez une valeur de référence dans la console, celle-ci est automatiquement ajoutée en tant que synonyme.

Si l'un des synonymes est mis en correspondance avec une partie d'expression d'utilisateur final, la valeur de référence associée est extraite pour la correspondance et utilisée pour résoudre la valeur de paramètre associée.

La valeur de référence peut être omise de la liste des synonymes. Cela signifie simplement qu'elle n'est pas mise en correspondance avec une partie de l'expression d'utilisateur final, mais utilisée comme valeur extraite lorsque l'un de ses synonymes est mis en correspondance. Cette omission est conseillée lorsque vous utilisez des chaînes spéciales pour des valeurs de référence qui ne sont pas saisies ou prononcées par les utilisateurs finaux.

De nombreuses entités système constituent des mappages d'entité. Par exemple, l'entité système @sys.date met en correspondance des données de date courantes telles que "1er janvier 2015" ou "Le 1er janvier 2015". Ces deux entrées sont mises en correspondance avec une valeur de référence au format ISO-8601 : "2015-01-01T12:00:00-03:00".

Pour créer un mappage d'entité, procédez comme suit :

  • À l'aide de la console, décochez l'option Entité d'expression régulière, puis cochez l'option Définir des synonymes.
  • À l'aide de l'API, définissez le champ EntityType kind sur KIND_MAP.

Entité de liste

Les entités de liste fournissent une liste d'entrées d'entités à valeur unique. Elles ne comportent pas de valeurs de référence ni de synonymes. Par exemple, chacune des lignes suivantes correspond à des entrées d'entité pour un type d'entité material :

Valeur
matière
laine
métal

Si une valeur est mise en correspondance avec une partie d'expression d'utilisateur final, elle est extraite pour la correspondance et utilisée pour résoudre la valeur de paramètre associée.

De nombreuses entités système sont des entités de liste. Par exemple, l'entité système @sys.color correspond à des couleurs courantes, telles que "rouge" ou "bleu". Lorsqu'une couleur est mise en correspondance, la valeur extraite ne correspond à aucune valeur de référence. Par exemple, les nuances de rouge, telles que "rouge vif" ou "rouge foncé" ", ne sont pas mappées à "rouge" et sont extraites comme leurs valeurs initiales "rouge vif" "et" "rouge foncé".

Pour créer une entité de liste, procédez comme suit :

  • À l'aide de la console, décochez l'option Entité d'expression régulière, puis décochez l'option Définir des synonymes.
  • À l'aide de l'API, définissez le champ EntityType kind sur KIND_LIST.

Entité composite

Une entité composite est un type spécial d'entité de liste. Les entrées d'entité pour les entités de liste contiennent généralement des mots ou des phrases simples, mais elles peuvent également contenir d'autres types d'entités. Lorsqu'un type d'entité est référencé dans un autre type d'entité, la référence est dénommée alias. Lorsqu'une entité de liste contient des alias pour d'autres types d'entités, elle est dénommée "entité composite".

Lorsque vous créez un alias, vous indiquez le nom du type d'entité référencé et le nom de propriété de votre choix. Lorsqu'une entité composite est mise en correspondance au moment de l'exécution, la valeur extraite est renvoyée en tant qu'objet JSON, avec des noms de propriété d'alias utilisés comme noms de propriété JSON. Le format de saisie d'un alias est le suivant :

@entity-name:property-name

Par exemple, vous pouvez créer un type d'entité place qui correspond à une ville ou à un État avec les entrées d'entités suivantes :

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

Si une expression d'utilisateur final contient une partie "Nashville", la valeur place du type d'entité est mise en correspondance. La valeur extraite est renvoyée en tant que {"city": "Nashville"}.

Vous pouvez également utiliser plusieurs alias d'entités dans une entrée d'entité. Prenons l'exemple du type d'entité personnalisée move suivant qui contient des alias pour un type d'entité direction et le type d'entité système @sys.number :

Type de mappage d'entité de direction personnalisée :

Valeur de référence Synonymes
Avant vers l'avant, en avant
retour retour, arrière, en arrière

Déplacer le type d'entité de liste personnalisée :

Valeur
@sys.number:steps steps @direction:direction

Si l'entité move est mise en correspondance avec une expression d'utilisateur final qui contient "cinq pas en arrière", l'entité move est mise en correspondance. La valeur extraite est renvoyée en tant que {"steps": 5, "direction": "back"}.

De nombreuses entités système sont des entités composites. Par exemple, l'entité système @sys.unit-currency permet de mettre en correspondance des sommes d'argent avec un nom de devise. Elle correspond aux expressions d'utilisateur final telles que "50 euros" "ou" "vingt dollars et cinq cents". La valeur extraite est renvoyée en tant qu'objet JSON tel que {"amount": 50, "currency": "EUR"}

Entité d'expression régulière

Les entités d'expression régulière vous permettent de fournir des expressions régulières pour la mise en correspondance. Pour plus d'informations, consultez la section Entités d'expression régulière.

Pour créer une entité d'expression régulière, procédez comme suit :

  • À l'aide de la console, cochez l'option Entité d'expression régulière.
  • À l'aide de l'API, définissez le champ EntityType kind sur KIND_REGEXP.

Expansion automatique

Vous pouvez activer l'expansion automatique pour un type d'entité personnalisée. Lorsque cette option est activée, votre agent peut reconnaître les valeurs qui n'ont pas été fournies explicitement. Prenons l'exemple d'un type d'entité de liste de courses :

Valeur
pain
beurre
lait
pomme
glace

Si une expression d'utilisateur final est "Je dois acheter des carottes", les carottes seront mises en correspondance pour ce type d'entité, même si elles ne sont pas incluses. L'agent reconnaît que "carottes" est contextuellement analogue aux autres valeurs.

Il est conseillé de suivre les bonnes pratiques d'expansion automatique :

  • L'activation de l'expansion automatique ne garantit pas l'extraction de l'entité. Pour les listes finies, il est préférable de fournir des listes complètes plutôt que de fournir des listes partielles et d'activer l'expansion automatique.
  • Si vous activez l'expansion automatique dans plusieurs entités, des conflits et des résultats de classification incorrects risquent de se produire.
  • Pour garantir une meilleure qualité d'extraction des paramètres, il est essentiel de fournir des données d'entraînement variées couvrant tous les cas d'utilisation dans lesquels une entité donnée peut être trouvée dans le trafic attendu de l'agent. Si les exemples sont insuffisants, l'expansion automatique des entités risque de ne pas fonctionner comme prévu.

Pour activer l'expansion automatique, procédez comme suit :

  • À l'aide de la console, cochez l'option Autoriser l'expansion automatique.
  • À l'aide de l'API, définissez le champ EntityType autoExpansionMode sur AUTO_EXPANSION_MODE_DEFAULT.

Correspondance partielle

Vous pouvez activer la correspondance partielle pour une entité personnalisée. Si la correspondance partielle est activée, l'ordre des mots au sein d'une valeur ou d'un synonyme n'a pas d'importance. Pour plus d'informations, consultez la section Correspondance partielle.

Pour activer la correspondance partielle, procédez comme suit :

  • À l'aide de la console, cochez l'option Correspondance partielle.
  • À l'aide de l'API, définissez le champ EntityType enableFuzzyExtraction sur true.