Définir des intentions, des énoncés et des entités
Les énoncés sont les phrases qu’un utilisateur peut entrer lors de l’interaction avec une application qui utilise votre modèle de langage. L’intention représente une tâche ou une action que l’utilisateur souhaite effectuer, ou plus simplement la signification d’un énoncé. Vous créez un modèle en définissant des intentions et en les associant à un ou plusieurs énoncés.
Par exemple, considérez la liste suivante d’intentions et les énoncés associés :
- GetTime :
- « Quelle heure est-il ? »
- « Il est quelle heure ? »
- « Donnez-moi l’heure »
- GetWeather :
- « Quelles sont les prévisions météo ? »
- « Ai-je besoin d’un parapluie ? »
- « Va-t-il neiger ? »
- TurnOnDevice
- « Allume la lumière. »
- « Allume la lampe. »
- « Allume le ventilateur »
- Aucun :
- "Hello"
- « Au revoir »
Dans votre modèle, vous devez définir les intentions que votre modèle doit comprendre. Vous devez donc réfléchir au domaine que votre modèle doit prendre en charge, ainsi qu’aux types d’actions ou d’informations que les utilisateurs peuvent demander. En plus des intentions que vous définissez, chaque modèle comprend une intention None que vous devez utiliser pour identifier explicitement les énoncés qu’un utilisateur peut envoyer, mais pour lesquels aucune action spécifique n’est nécessaire (par exemple, des salutations comme « bonjour ») ou qui se trouvent en dehors de l’étendue de ce modèle.
Une fois que vous avez identifié les intentions que votre modèle doit prendre en charge, vous devez capturer divers exemples d’énoncé pour chaque intention. Collectez les énoncés que vous pensez que les utilisateurs vont utiliser, y compris les énoncés qui veulent dire la même chose, mais dont la construction est différente. Gardez en tête les recommandations suivantes :
- Capturez une grande variété d’exemples ou de manières de dire la même chose.
- Faites varier la longueur des énoncés (courts, moyens, longs).
- Faites varier l’emplacement du nom ou de l’objet dans l’énoncé (au début, à la fin ou entre les deux).
- Utilisez une grammaire correcte et une grammaire incorrecte dans différents énoncés pour fournir de bons exemples de données d’entraînement.
- La précision, la cohérence et l’exhaustivité de vos données étiquetées sont des facteurs clés pour les performances du modèle.
- Étiqueter précisément : étiquetez toujours chaque entité en utilisant le type approprié. Incluez uniquement ce que vous souhaitez extraire, évitez les données inutiles dans vos étiquettes.
- Étiqueter de manière cohérente : une même entité doit avoir la même étiquette dans tous les énoncés.
- Étiqueter de manière exhaustive : étiquetez toutes les instances de l’entité dans tous vos énoncés.
Les entités servent à ajouter un contexte spécifique aux intentions. Par exemple, vous pouvez définir un objectif d’intention TurnOnDevice qui peut être appliqué à plusieurs appareils et utiliser des entités pour définir les différents appareils.
Examinez les énoncés, les intentions et les entités qui suivent :
Énoncé | Intention | Entités |
---|---|---|
Il est quelle heure ? | GetTime | |
Quelle heure est-il à Londres ? | GetTime | Emplacement (Londres) |
Quelles sont les prévisions météo pour Paris ? | GetWeather | Emplacement (Paris) |
Ai-je besoin d’un parapluie ce soir ? | GetWeather | Heure (ce soir) |
Quelles sont les prévisions pour Seattle demain ? | GetWeather | Emplacement (Seattle), heure (demain) |
Allume la lampe. | TurnOnDevice | Appareil (lumière) |
Allume le ventilateur. | TurnOnDevice | Appareil (ventilateur) |
Vous pouvez diviser des entités en différents types de composants :
- Les entités apprises sont le type d’entité le plus flexible et doivent être utilisées dans la plupart des cas. Vous définissez un composant appris avec un nom approprié, puis vous lui associez des mots ou des expressions dans des énoncés d’entraînement. Lorsque vous formez votre modèle, il apprend à faire correspondre les éléments appropriés dans les énoncés avec l’entité.
- Les entités de liste sont utiles lorsque vous avez besoin d’une entité avec un ensemble spécifique de valeurs possibles, par exemple les jours de la semaine. Vous pouvez inclure des synonymes dans la définition des entités de la liste. Vous pouvez donc définir une entité DayOfWeek qui inclut les valeurs « Dimanche », « Lundi », « Mardi » et ainsi de suite, avec pour chaque entrée un synonyme comme « Dim », « Lun », « Mar », etc.
- Les entités prédéfinies sont utiles pour les types courants comme les nombres, les formats DateHeure et les noms. Par exemple, quand des composants prédéfinis sont ajoutés, vous détectez automatiquement les valeurs comme « 6 » ou les organisations comme « Microsoft ». Vous pouvez consulter cet article pour avoir la liste des entités prédéfinies prises en charge.