botframework
Ajout du traitement du langage naturel
Recherche…
Introduction
Bot Framework prend en charge les Recognizers
. Un identifiant est utilisé pour reconnaître ce qu’il faut faire chaque fois qu’un utilisateur envoie un message au bot. Par conséquent, vous pouvez concevoir votre bot pour qu'il reconnaisse les intentions en fonction de l'entrée de l'utilisateur. Le dispositif de reconnaissance peut être utilisé avec l’API LUIS afin d’ajouter une compréhension du langage naturel au bot.
Syntaxe
var reconnaisseur = new builder.LUISRecognizer ('URL de votre modèle');
var intents = new builder.IntentDialog ({reconnaissants: [identifiant]});
Initialisation et ajout de LUISRecognizer
Une fois que vous avez un nouveau projet avec le modèle de base fourni dans l'introduction, vous devriez pouvoir ajouter un LUISRecognizer comme ça -
var model = '' // Your LUIS Endpoint link comes here
var recognizer = new builder.LuisRecognizer(model);
Désormais, la recognizer
est un LUISRecognizer et peut transmettre des intentions basées sur votre modèle LUIS défini. Vous pouvez ajouter le recognizer
de recognizer
à vos intentions en
var intents = new builder.IntentDialog({recognizers: [recognizer]});
Votre bot est maintenant capable de gérer les intentions de LUIS. Tout objet nommé sur LUIS peut être détecté à l'aide de la propriété matches
de la classe IntentDialog
. Ainsi, une intention nommée hi
est définie dans le modèle LUIS, pour reconnaître l’intention du bot,
intents.matches('hi', function(session) {
session.send("Hey :-)");
});
Définir un modèle LUIS avec des intentions
Créer un modèle LUIS nécessite peu ou pas d’expérience de programmation. Cependant, vous devez connaître 2 termes importants qui seront largement utilisés.
- Intents - Voici comment vous identifiez les fonctions qui doivent être exécutées lorsque l'utilisateur tape quelque chose. Par exemple, une intention nommée
Hi
identifiera une fonction qui doit être exécutée chaque fois que l'utilisateur envoie "Hi". Les intentions sont nommées de manière unique dans votre programme / modèle. - Entités - Celles-ci identifient les noms dans une déclaration. Par exemple - "Définir une alarme pour 13h00", ici
1:00 pm
est une entité qui doit être reconnue par le chat-bot pour définir une alarme.
Note: Les images du site Web ne sont pas fournies en tant que front-end mon changement, mais le concept de base reste le même.
Pour créer un nouveau modèle, accédez à LUIS.ai et connectez-vous à votre compte Microsoft pour accéder à la page de création de l'application. Où un projet vide peut être créé.
Définir les intentions:
Les intentions peuvent être définies dans l'onglet Intents
. Ils identifient la fonction que vous devez exécuter lorsque l'utilisateur entre quelque chose.
Toutes les applications ont un défaut None
intention, qui est activé chaque fois que l'entrée utilisateur correspond à aucune autre intention.
Pour définir une intention,
- Donnez-lui un nom unique correspondant à la fonction que vous souhaitez effectuer.
- Une fois la dénomination terminée, vous devez ajouter des
utterances
à l'intention. Les énoncés sont ce que vous souhaitez que l'utilisateur envoie afin d'activer l'intention que vous définissez. Essayez d’alimenter autant deutterances
différentes que possible pour que LUIS associe correctement lesintents
et lesutterances
. - Entraînez votre modèle LUIS, en cliquant sur le
Train
bouton surTrain and Test
Tab. Après la formation, l'application peut être testée dans le panneau ci-dessous. - Enfin, publiez votre application dans l'onglet
Publish App
. Vous devriez maintenant obtenir une URL de point de terminaison qui doit être placée lors de la définition deLUISRecognizer
dans votre code bot.
Ajout d'entités au modèle LUIS
Une entité est l'information que votre bot extrait d'un énoncé particulier conforme à une intention.
Par exemple, Laisser My name is John Doe
appartiennent à une intention appelée introduction
. Pour que votre bot comprenne et extrait le nom John Doe
de la phrase, vous devez définir une entité qui le fait. Vous pouvez nommer l'entité comme vous le souhaitez, mais il est préférable de la nommer comme quelque chose appartenant à ce qu'elle extrait. Dans notre exemple, nous pouvons appeler notre name
entité.
Les entités peuvent être réutilisées entre différentes intentions pour extraire différentes choses. Le meilleur principe serait donc de faire en sorte qu'une entité qui extrait uniquement le type de données l’utilise dans différentes intentions. Par conséquent, dans notre exemple ci-dessus, disons que Book a flight on Emirates
appartient à la booking
intentionnelle, la même entité, name
, peut être utilisée pour extraire les noms de vol des emirates
.
Avant de définir des entités, vous devez garder à l’esprit deux choses:
- Les entités doivent être uniques par énoncé dans une intention. Une entité ne peut pas être utilisée deux fois dans le même énoncé.
- LUIS est insensible à la casse. Cela implique que tout ce qui est extrait et reçu par extraction d'entité sera en minuscule. Donc, extraire des données sensibles à la casse via des entités est probablement une mauvaise idée.
Ajout d'entités pré-construites
Les entités pré-construites sont, comme leur nom l'indique, pré-construites, c'est-à-dire qu'elles sont déjà configurées pour extraire un type particulier de données dans l'intention à laquelle elles sont ajoutées. Un exemple peut être le number
entité qui extrait des nombres de l'intention à laquelle il est affecté. Les nombres peuvent être soit numériques, soit alphabétiques comme 10
ou ten
.
Pour une liste complète de toutes les entités pré-construites, vous pouvez visiter [Liste des entités prédéfinies] [1].
Pour ajouter des entités pré-construites,
- Accédez à l'onglet
entities
. - Cliquez sur
Add pre-built entities
et sélectionnez l'entité que vous souhaitez ajouter au modèle et cliquez sur Enregistrer.
Ajout d'entités personnalisées Les entités personnalisées sont de 4 types,
- Simple : Une entité simple extrait une donnée particulière,
name
dans les exemples ci-dessus est une entité simple. - Hiérarchique : Entité parent avec des entités enfants (sous-types) dépendant du parent.
- Composite : Un groupe de 2 entités ou plus indépendantes les unes des autres.
- Liste : entité qui reconnaît les mots uniquement à partir d'une liste donnée.
Définition d'entités simples
- Allez dans l'onglet
entities
. - Cliquez sur
Add Custom Entities
- Nommez votre entité, vérifiez le type d’entité requis et cliquez sur
Save
.
Tous les autres types d'entités peuvent être ajoutés de la même manière en remplaçant simplement le Entity Type
par l'un des types ci-dessus. Dans les types d'entité hiérarchique et composite, vous devez également indiquer les noms des enfants avec le nom de l'entité parent. Définir des entités de liste est un peu différent du reste.
Définition des entités de liste
Après avoir suivi les étapes ci-dessus pour créer une List Entity
en mettant le Entity Type
en liste, vous serez dirigé vers la page de détails de l'entité que vous venez de définir.
- Définir une valeur canonique. C'est une valeur standard que le bot recevra lorsque l'utilisateur saisit l'un des synonymes.
- Définir des synonymes à la valeur canonique. Ils seront convertis à la valeur canonique lorsqu'ils seront rencontrés par l'entité.
Vous pouvez également importer des listes entières à l'aide d'un tableau d'objets JSON, au format:
[
{
"canonicalForm": "Hey",
"list": [
"Howdy",
"Hi"
]
},
.
.
.
]
Associer une entité à une intention
Pre-built
entités Pre-built
et les entités de list
ont déjà défini un ensemble de valeurs pouvant être extraites de tous les énoncés. Cependant, les énoncés Simple
, Hierarchical
et Composite
doivent être formés pour saisir les valeurs.
Cela peut être fait par
- Accédez à l'onglet
intents
et choisissez l'intention à laquelle vous souhaitez ajouter l'entité. - Ajoutez un énoncé avec une valeur fictive que vous souhaitez extraire. Dis, tu peux ajouter
My name is John Doe
comme énoncé. - Cliquez et faites glisser la souris sur les mots que vous souhaitez extraire. Vous devrez mettre en évidence
john doe
dans l'exemple ci-dessus. - Un menu déroulant s'ouvrira avec une liste de toutes les entités disponibles dans votre projet. Sélectionnez le correspondant comme bon vous semble.
Name
sera l'entité sélectionnée dans l'exemple ci-dessus. - Ajoutez plus d'énoncés avec des valeurs factices différentes à chaque fois et toutes les structures possibles auxquelles vous pouvez penser.
- Former et publier votre modèle LUIS.