Création d'entités
Pour créer une entité, procédez comme suit :
Entités de liste de valeurs pour plusieurs langues
Conseil :
Pour vous assurer que votre brique génère systématiquement les réponses dans la langue détectée, incluez toujoursuseFullEntityMatches: true
dans les états Réponse commune, Résoudre les entités et Faire correspondre l'entité. Comme décrit dans Ajouter des langues prises en charge de façon native à une brique, la définition de cette propriété sur true
(valeur par défaut) renvoie la valeur d'entité en tant qu'objet dont les propriétés différencient la langue principale de la langue détectée. Lorsqu'elles sont référencées dans des expressions Apache FreeMarker, ces propriétés garantissent que la langue appropriée s'affiche dans le texte et les libellés du message de la brique.
Prise en charge de la radicalation de mots dans une correspondance partielle
A partir de la version 22.10, la mise en correspondance partielle pour les entités de valeur de liste est basée sur la dérive de mot, où une correspondance de valeur est basée sur la racine lexicale du mot. Dans les versions précédentes, la correspondance partielle était activée via la correspondance partielle et la correction automatique. Bien que cette approche tolère les fautes de frappe dans la saisie utilisateur, y compris les mots transposés, elle peut également entraîner des correspondances avec plusieurs valeurs dans l'entité de liste de valeurs. Avec la dérivation, ce nuage de points est éliminé : les correspondances sont basées sur l'ordre des mots de l'entrée utilisateur, de sorte qu'une seule correspondance est effectuée, ou aucune du tout. Par exemple, "Lovers Veggie" n'entraînerait aucune correspondance, mais "Veggie Lover" correspondrait à la valeur Veggie Lovers d'une entité de type pizza. (Notez que "L'amant" est déduit.) Les mots vides, tels que les articles et les prépositions, sont ignorés dans les valeurs extraites, tout comme les caractères spéciaux. Par exemple, "Veggie l'Amant" et "Veggie////Amant" correspondraient à la valeur "Veggie Lovers".
Créer des entités d'apprentissage automatique
Les entités ML sont une approche basée sur des modèles pour l'extraction d'entités. Comme pour les intentions, vous créez des entités d'apprentissage automatique à partir de variations d'entraînement, probablement les mêmes variations d'entraînement que celles utilisées pour créer vos intentions. Toutefois, pour les entités d'apprentissage automatique, vous annotez les mots des variations d'entraînement qui correspondent à une entité.
Pour commencer, vous pouvez annoter certaines données d'entraînement vous-même, mais comme c'est le cas pour les intentions, vous pouvez développer un entraînement plus varié (et donc robuste) défini par crowd sourcing. Comme indiqué dans les instructions de formation, une détection d'entité robuste nécessite entre 600 et 5000 occurrences de chaque entité d'apprentissage automatique tout au long de l'ensemble d'entraînement. En outre, si les données d'entraînement d'intention sont déjà expansives, vous pouvez regrouper les sources au lieu d'annoter chaque variation vous-même. Dans les deux cas, vous devez analyser vos données d'entraînement pour savoir si les entités sont représentées uniformément et si les valeurs d'entité sont suffisamment variées. Une fois les annotations terminées, vous entraînez le modèle, puis vous le testez. Après avoir examiné les entités détectées dans les exécutions de test, vous pouvez continuer à mettre à jour le corpus et à effectuer un nouvel entraînement pour améliorer la précision.
- Cliquez sur + Ajouter une entité.
- Renseignez la boîte de dialogue Créer une entité. N'oubliez pas que le nom et la description apparaissent dans les pages du crowdworker pour les travaux d'annotation d'entité.
- Entrez un nom qui identifie le contenu annoté. Un nom unique aide les crowdworkers.
- Entrez une description. Bien qu'il s'agisse d'une propriété facultative, les crowdworkers l'utilisent, avec la propriété Name, pour différencier les entités.
- Choisissez Entité ML dans la liste.
- Activez l'option Exclure les correspondances d'entités système lorsque les annotations d'entraînement contiennent des noms, des emplacements, des numéros ou tout autre contenu susceptible d'entrer en conflit avec les valeurs d'entité système. La définition de cette option empêche le modèle d'extraire les valeurs d'entité système comprises dans l'entrée résolue en cette entité d'apprentissage automatique. Il applique une limite autour de cette entrée afin que le modèle la reconnaisse uniquement comme une valeur d'entité ML et ne l'analyse pas davantage pour les valeurs d'entité système. Vous pouvez définir cette option pour les entités de conteneur composite qui référencent des entités d'apprentissage automatique.
- Cliquez sur Créer.
- Cliquez sur +Value Répertorier les entités pour associer cette entité à cinq entités de liste de valeurs au maximum. Cette option est facultative, mais l'association d'une entité ML à une entité de liste de valeurs combine l'extraction contextuelle de l'entité ML et l'extraction contextuelle de l'entité de liste de valeurs.
- Cliquez sur l'onglet DataSet. Cette page répertorie toutes les variations de chaque entité d'apprentissage automatique de votre brique, y compris les variations que vous avez vous-même ajoutées pour initialiser l'entité, celles soumises à partir de travaux de sourcing groupé ou celles importées en tant qu'objets JSON. A partir de cette page, vous pouvez ajouter des variations manuellement ou en masse en téléchargeant un fichier JSON. Vous pouvez également gérer les variations à partir de cette page en les modifiant (notamment en les annotant ou en les réannotant), ou en les supprimant, en les important et en les exportant.
- Ajoutez des variations manuellement :
- Cliquez sur Ajouter une variation. Une fois la variation ajoutée, cliquez sur Modifier les annotations pour ouvrir la liste des entités.
Remarque
Vous ne pouvez ajouter qu'une seule variation à la fois. Si vous voulez ajouter des variations en masse, vous pouvez soit les ajouter via un travail d'annotation d'entité, soit télécharger un fichier JSON. - Mettez en surbrillance le texte correspondant à l'entité d'apprentissage automatique, puis complétez le libellé en sélectionnant l'entité d'apprentissage automatique dans la liste des entités. Vous pouvez enlever une annotation en cliquant sur x dans le libellé.
- Cliquez sur Ajouter une variation. Une fois la variation ajoutée, cliquez sur Modifier les annotations pour ouvrir la liste des entités.
- Ajoutez des variations à partir d'un fichier JSON. Ce fichier JSON contient la liste des objets de variation.
Vous pouvez le télécharger en cliquant sur Plus > Importer pour l'extraire du système local.[ { "Utterance": { "utterance": "I expensed $35.64 for group lunch at Joe's on 4/7/21", "languageTag": "en", "entities": [ { "entityValue": "Joe's" "entityName": "VendorName", "beginOffset": 37, "endOffset": 42 } ] } }, { "Utterance": { "utterance": "Give me my $30 for Coffee Klatch on 7/20", "languageTag": "en", "entities": [ { "entityName": "VendorName", "beginOffset": 19, "endOffset": 32 } ] } } ]
L'objetentities
décrit les entités d'apprentissage automatique qui ont été identifiées dans la variation. Bien que l'exemple précédent illustre un seul objetentities
pour chaque variation, une variation peut contenir plusieurs entités d'apprentissage automatique, ce qui signifie plusieurs objetsentities
:[ { "Utterance": { "utterance": "I want this and that", "languageTag": "en", "entities": [ { "entityName": "ML_This", "beginOffset": 7, "endOffset": 11 }, { "entityName": "ML_That", "beginOffset": 16, "endOffset": 20 } ] } }, { "Utterance": { "utterance": "I want less of this and none of that", "languageTag": "en", "entities": [ { "entityName": "ML_This", "beginOffset": 15, "endOffset": 19 }, { "entityName": "ML_That", "beginOffset": 32, "endOffset": 36 } ] } } ]
entityName
identifie l'entité d'apprentissage automatique elle-même etentityValue
identifie le texte libellé pour l'entité.entityValue
est une clé facultative que vous pouvez utiliser pour valider le texte libellé par rapport aux modifications apportées à la variation. Le libellé lui-même est identifié par les propriétésbeginOffset
etendOffset
, qui représentent le décalage des caractères qui commencent et terminent le libellé. Ce décalage est déterminé par caractère, et non par mot, et est calculé à partir du premier caractère de la variation (0-1).Remarque
Vous ne pouvez pas créer les entités d'apprentissage automatique à partir de ce JSON. Ils doivent exister avant que vous ne chargiez le fichier.Si vous ne voulez pas déterminer les décalages, vous pouvez laisser l'objetLe système recherche les doublons afin d'éviter les entrées redondantes. Seules les modifications apportées à la définitionentities
non défini, puis appliquer les libellés après le téléchargement du fichier JSON.[ { "Utterance": { "utterance": "I expensed $35.64 for group lunch at Joe's on 4/7/21", "languageTag": "en", "entities": [] } }, { "Utterance": { "utterance": "Give me my $30 for Coffee Klatch on 7/20", "languageTag": "en", "entities": [] } } ]
entities
dans le fichier JSON sont appliquées. Si une variation a été modifiée dans le fichier JSON, elle est considérée comme une nouvelle variation. - Modifiez une variation annotée :
- Cliquez sur Modifier
pour enlever l'annotation.
Remarque
Une variation modifiée est considérée comme une nouvelle variation (non annotée). - Cliquez sur Modifier les annotations pour ouvrir la liste des entités.
- Mettez le texte en surbrillance, puis sélectionnez une entité ML dans la liste des entités.
- Si vous devez enlever une annotation, cliquez sur x dans le libellé.
- Cliquez sur Modifier
- Ajoutez des variations manuellement :
- Une fois l'annotation des variations terminée. Cliquez sur Entraîner pour mettre à jour le formateur Tm et le modèle d'entité.
- Testez la reconnaissance en entrant une phrase de test dans le testeur de variations, idéalement une phrase avec une valeur introuvable dans les données d'entraînement. Vérifiez les résultats pour savoir si le modèle a détecté la bonne entité ML et si le texte a été étiqueté correctement et complètement.
- Associez l'entité d'apprentissage automatique à une intention.
Exclure les correspondances d'entités système
L'activation de l'option Exclure les correspondances d'entité système empêche le modèle de remplacer les valeurs d'entité système précédemment extraites par des valeurs concurrentes trouvées dans les limites d'une entité d'apprentissage automatique. Lorsque cette option est activée, "Créer une réunion le lundi pour discuter du livrable du mardi" permet de séparer les valeurs d'entité DATE_TIME et ML en résolvant l'entité DATE_TIME applicable (lundi) et en ignorant "Mardi" dans le texte reconnu comme l'entité ML ("discuter du livrable du mardi").
Vous pouvez définir l'option Exclure les correspondances d'entité système pour les entités de conteneur composite qui référencent une entité d'apprentissage automatique.
Import d'entités de liste de valeurs à partir d'un fichier CSV
Au lieu de créer vos entités une par une, vous pouvez en créer des ensembles entiers lorsque vous importez un fichier CSV contenant les définitions d'entité.
Ce fichier CSV contient des colonnes pour le nom d'entité (entity
), la valeur d'entité (value
) et les synonymes (synonyms
). Vous pouvez créer ce fichier à partir de zéro, ou réutiliser et adapter un fichier CSV créé à partir d'un export.
entity
, value
et synonyms
. Par exemple :entity,value,synonyms
PizzaSize,Large,lrg:lrge:big
PizzaSize,Medium,med
PizzaSize,Small,little
value
et synonyms
. Par exemple, si la langue native principale de la brique est l'anglais (en
), les colonnes value
et synonyms
sont en:value
et en:synonyms
:entity,en:value,en:synonyms
PizzaSize,Large,lrg:lrge:big
PizzaSize,Medium,med
PizzaSize,Small,
PizzaSize,Extra Large,XL
Les fichiers CSV qui prennent en charge plusieurs langues natives nécessitent des ensembles de colonnes value
et synonyms
supplémentaires pour chaque langue secondaire. Si la langue secondaire d'une brique de langue native anglaise est le français (fr
), le fichier CSV comporte les colonnes fr:value
et fr:synonyms
comme équivalents aux colonnes en
:entity,en:value,en:synonyms,fr:value,fr:synonyms
PizzaSize,Large,lrg:lrge:big,grande,grde:g
PizzaSize,Medium,med,moyenne,moy
PizzaSize,Small,,petite,p
PizzaSize,Extra Large,XL,pizza extra large,
- Si vous importez un fichier CSV de version antérieure à la version 20.12 vers une brique 20.12 (y compris avec prise en charge des langues natives ou utilisation de services de traduction), les valeurs et les synonymes sont importés en tant que langues principales.
- Toutes les valeurs d'entité pour les langues principale et secondaire doivent être uniques au sein d'une entité. Vous ne pouvez donc pas importer de fichier CSV si la même valeur a été définie plusieurs fois pour une même entité. Des valeurs en double peuvent apparaître dans les versions antérieures à la version 20.12, où les valeurs peuvent être considérées comme uniques en raison de variantes de casse. Cela n'est plus possible pour la version 20.12, où la casse est plus strictement appliquée. Par exemple, vous ne pouvez pas importer un fichier CSV s'il contient à la fois
PizzaSize, Small
etPizzaSize, SMALL
. Si vous prévoyez une mise à niveau vers la version 20.12, vous devez d'abord distinguer toutes les valeurs d'entité qui sont identiques, mais uniquement différenciées par la casse avant d'effectuer la mise à niveau. - La prise en charge de la langue principale s'applique aux briques créées à l'aide de la version 20.12 et des versions ultérieures. Vous devez donc d'abord enlever les balises de langue et les entrées de langue secondaire pour pouvoir importer un fichier CSV de version 20.12 dans une brique créée avec une version antérieure.
- Vous pouvez importer un fichier CSV multilingue vers des briques qui n'utilisent pas la prise en charge des langues natives, y compris celles qui emploient des services de traduction.
- Si vous importez un fichier CSV multilingue vers une brique qui prend en charge les langues natives ou utilise des services de traduction, seules les lignes fournissant une valeur valide pour la langue principale sont importées. Les autres sont ignorées.
-
Cliquez sur Entités (
) dans la barre de navigation latérale.
-
Cliquez sur Plus, choisissez Importer des entités de liste de valeurs, puis sélectionnez le fichier
.csv
dans votre système local.
Description de l'image import-entities.png -
Ajoutez les entités à une intention (ou à une liste d'entités, puis à une intention).
Export d'entités de liste de valeurs vers un fichier CSV
entity
, value
et synonyms
. Ces fichiers CSV s'accompagnent d'exigences propres à la version qui peuvent avoir un impact sur leur réutilisation.
- Les fichiers CSV exportés à partir de briques créées avec la version 20.12 ou mises à niveau vers cette version prennent en charge les langues natives via les balises de langue principale (et parfois secondaire) ajoutées aux colonnes
value
etsynonyms
. Par exemple, le fichier CSV du fragment de code suivant comporte un ensemble de colonnesvalue
etsynonyms
pour la langue principale de la brique, l'anglais (en
), et un autre ensemble pour sa langue secondaire, le français (fr
) :
Les balises de langue principale sont incluses dans tous les fichiers CSV de version 20.12, quelle que soit la prise en charge des langues natives. Elles sont présentes dans les briques qui ne sont pas destinées à effectuer une traduction (native ou par l'intermédiaire d'un service de traduction) et dans les briques qui utilisent des services de traduction.entity,en:value,en:synonyms,fr:value,fr:synonyms
- Les fichiers CSV exportés à partir des briques exécutées sur des versions antérieures à la version 20.12 comportent des colonnes d'entités, de valeurs et de synonymes, mais aucune balise de langue.
-
Cliquez sur Entités (
) dans la barre de navigation latérale.
-
Cliquez sur Plus, sélectionnez Exporter les entités de liste de valeurs et enregistrez le fichier.
Description de l'illustration export-entities.pngLe fichier
.csv
exporté est nommé pour votre brique. Si vous voulez utiliser ce fichier pour import, vous devrez peut-être effectuer certaines des modifications décrites dans Import d'intentions à partir d'un fichier CSV si vous comptez l'importer vers des briques de version 20.12 et versions antérieures, ou l'exporter vers ces briques.
Création d'entités dynamiques
Les valeurs d'entité dynamique sont gérées via les adresses de l'API des entités dynamiques qui sont décrites dans API REST pour Oracle Digital Assistant. Pour ajouter, modifier et supprimer des valeurs et des synonymes d'entité, vous devez d'abord créer une entité dynamique afin de générer l'élément entityId
utilisé dans les appels REST.
- Cliquez sur + Entité.
- Sélectionnez Entités dynamiques dans la liste Type.
- Si le service back-end n'est pas disponible ou n'a pas encore propagé de valeurs, ou si vous ne gérez pas le service, cliquez sur + Valeur pour ajouter des valeurs de simulation à utiliser à des fins de test. En règle générale, vous ajoutez ces valeurs statiques avant la mise en place de l'infrastructure d'entités dynamiques. Ces valeurs sont perdues lors du clonage, de la gestion des versions ou de l'export d'une brique. Après avoir provisionné les valeurs d'entité via l'API, vous pouvez les écraser ou les conserver (mais dans la plupart des cas, vous les écraserez).
- Cliquez sur Créer.
Conseil :
Si l'API actualise les valeurs d'entité lors du test de la conversation, cliquez sur Réinitialiser pour redémarrer la conversation.- Vous pouvez rechercher les entités dynamiques configurées pour une brique à l'aide du script
entityId
généré avecbotId
. Vous incluez ces valeurs dans les appels pour créer les demandes Push et les objets qui mettent à jour les valeurs de l'entité. - Une entité ne peut pas posséder plus de 150 000 valeurs. Pour réduire le risque de dépasser cette limite lorsque vous traitez de grandes quantités de données, envoyez des demandes
PATCH
avec vos suppressions avant d'envoyer des demandesPATCH
avec vos ajouts.
Les entités dynamiques sont uniquement prises en charge sur les instances d'Oracle Digital Assistant provisionnées sur Oracle Cloud Infrastructure (parfois appelée infrastructure cloud Generation 2). Si votre instance est provisionnée sur Oracle Cloud Platform (comme toutes les instances de la version 19.4.1), vous ne pouvez pas utiliser la fonctionnalité.
Instructions pour la création d'entités d'apprentissage automatique
- Créez des entités d'apprentissage automatique concises. La définition d'entité d'apprentissage automatique est à la base d'un ensemble d'entraînement utile. La clarté est donc essentielle en termes de nom et de description qui aident les crowdworkers à annoter les variations.
Etant donné que les crowdworkers s'appuient sur les descriptions et les noms des entités d'apprentissage automatique, vous devez vous assurer que vos entités d'apprentissage automatique peuvent être facilement distinguées les unes des autres, en particulier en cas de chevauchement potentiel. Si les différences ne sont pas claires pour vous, il est probable que les travailleurs de foule seront confus. Par exemple, les entités Marchand et Type de compte peuvent être difficiles à différencier dans certains cas. Dans "Transférer 100 $ de mon compte d'épargne à Pacific Gas and Electric", vous pouvez clairement étiqueter "économies" comme Type de compte et Pacific Gas and Electric comme Marchand. Cependant, la frontière entre les deux peut être floue dans des phrases comme "Besoin d'envoyer de l'argent à John, transférer 100 $ de mon épargne à son compte courant." Le "compte chèque" est-il un type de compte ou un nom de commerçant ? Dans ce cas, vous pouvez décider que tout destinataire doit toujours être un nom de commerçant plutôt qu'un type de compte.
- Pour préparer le sourcing groupé des variations d'entraînement, tenez compte de l'entrée utilisateur standard pour différents contextes d'extraction d'entité. Par exemple, la valeur peut-elle être extraite dans le message initial de l'utilisateur (contexte de variation initial) ou est-elle extraite des réponses aux invites de la brique (contexte de variation d'emplacement) ?
Contexte Description Exemples de variations (valeurs d'entité ML détectées en gras) Contexte de variation initial Message généralement bien structuré et incluant des valeurs d'entité d'apprentissage automatique. Par exemple, pour une brique de reporting des dépenses, la variation inclut une valeur que le modèle peut détecter pour une entité d'apprentissage automatique appelée Marchand. Créez des frais pour le dîner d'équipe à la boutique de pâtes John pour 85 $ le 3 mai. Contexte de variation de créneau Message utilisateur qui fournit l'entité d'apprentissage automatique en réponse à une invite, soit en raison de la conception de la conversation (la brique invite à indiquer "Qui est le commerçant ?"), soit pour insérer une valeur car elle n'a pas été fournie par une réponse soumise précédemment. Dans d'autres cas, la valeur Entité d'apprentissage automatique a peut-être déjà été fournie, mais elle peut être incluse dans d'autres messages utilisateur de la même conversation. Par exemple, la brique peut inviter les utilisateurs à fournir des détails supplémentaires sur les dépenses ou à décrire l'image d'un justificatif chargé.
- Le commerçant est John's Pasta Shop.
- Dîner d'équipe. Montant 85 $. Boutique de pâtes John.
- La description est TurboTaxi du domicile à l'aéroport CMH.
- Réception Grandiose Shack Hotel pour le symposium sur le cloud
- Collectez vos données d'entraînement et de test.
- Si vous disposez déjà d'un ensemble suffisant de variations, vous pouvez les évaluer pour la distribution d'entité et la diversité des valeurs d'entité avant de lancer un travail d'annotation d'entité.
- Si vous ne disposez pas de suffisamment de données d'entraînement ou si vous recommencez à zéro, lancez un travail de paraphrase d'intention. Pour collecter des variations viables (et abondantes) à des fins d'entraînement et de test, intégrez le contexte d'entité au travail en créant des tâches pour chaque intention. Pour rassembler diverses phrases, pensez à décomposer chaque intention par contexte de conversation.
- Pour l'invite de la tâche, fournissez le contexte des crowdworkers et demandez-leur : "Comment répondriez-vous ?" ou "Que diriez-vous ?" Utilisez les conseils associés pour fournir des exemples et illustrer différents contextes. Par exemple :
Invite Conseil Vous parlez à un bot de reporting des dépenses et vous voulez créer une dépense. Quelle serait la première chose que vous diriez ? Assurez-vous que le nom du commerçant figure dans la variation. Vous pourriez dire quelque chose comme : "Créez une dépense pour le dîner d'équipe à John's Pasta Shop pour 85 $ le 3 mai." Invite Conseil Vous avez soumis une dépense à un bot de note de frais, mais vous n'avez pas fourni de nom de commerçant. Comment répondriez-vous ? Identifiez le commerçant. Par exemple, "Merchant is John's Pasta Shop". Vous avez chargé une image d'un justificatif dans un bot de note de frais. Il vous demande maintenant de décrire le reçu. Comment répondriez-vous ? Identifiez le nom du commerçant sur le reçu. Par exemple : "Réception Grandiose Shack Hotel pour le symposium sur le cloud". Contexte Exemples de variation Contexte de variation initial Remboursez-moi pour le dîner de mardi Contexte de variation de créneau - Pos dîner de présentation. Montant $50. 4 personnes.
- Description xerox déjeuner pour 5
- Reçu d'hôtel pour un séjour d'entretien
- Réunissez un ensemble de formations volumineux en définissant un nombre approprié de paraphrases par intention. Pour que le modèle puisse être généralisé, l'ensemble de données doit contenir entre 500 et 5000 occurrences pour chaque entité d'apprentissage automatique. Idéalement, vous devriez éviter l'extrémité inférieure de cette plage.
- Une fois que les crowdworkers ont terminé le travail (ou ont terminé suffisamment de variations pour que vous puissiez annuler le travail), vous pouvez ajouter les variations ou lancer un travail de validation d'intention pour les vérifier. Vous pouvez également télécharger les résultats sur votre système local pour révision supplémentaire.
- Réservez environ 20 % des variations pour les tests. Pour créer des CSV pour le testeur de variations à partir des fichiers CSV téléchargés pour les travaux de paraphrase d'intention et de validation d'intention :
- Pour les travaux de paraphrase d'intention : transférez le contenu de la colonne
result
(les variations fournies par les crowdworkers) vers la colonneutterance
dans le fichier CSV du testeur de variations. Transférez le contenu de la colonneintentName
vers la colonneexpectedIntent
dans le fichier CSV du testeur de variations. - Pour les travaux de validation d'intention : transférez le contenu de la colonne
prompt
(les variations fournies par les crowdworkers) vers la colonneutterance
dans le fichier CSV du testeur de variations. Transférez le contenu de la colonneintentName
vers la colonneexpectedIntent
dans le fichier CSV du testeur de variations.
- Pour les travaux de paraphrase d'intention : transférez le contenu de la colonne
- Ajoutez les variations restantes à un fichier CSV avec une seule colonne,
utterance
. Créez un travail d'annotation d'entité en téléchargeant ce fichier CSV. Etant donné que les salariés étiquetent les valeurs d'entité, ils classeront probablement les variations négatives comme "Je ne suis pas sûr" ou "Aucune des entités ne s'applique". - Une fois le travail d'annotation d'entité terminé, vous pouvez ajouter les résultats ou lancer un travail de validation d'entité pour vérifier l'étiquetage. Seules les variations jugées correctes par les salariés dans un travail de validation d'entité peuvent être ajoutées au corpus.
Conseil :
Vous pouvez ajouter, supprimer ou ajuster les libellés d'annotation dans l'onglet Ensemble de données de la page Entités. - Entraînez l'entité en sélectionnant Entité.
- Exécutez des cas de test pour évaluer la reconnaissance d'entité à l'aide des variations que vous avez réservées à partir du travail de paraphrase d'intention. Vous pouvez diviser ces variations en différentes séries de tests pour tester différents comportements (valeurs inconnues, ponctuation qui peut ne pas être présente dans les données d'entraînement, faux positifs, etc.). Etant donné qu'il peut y avoir un grand nombre de ces variations, vous pouvez créer des suites de tests en téléchargeant un fichier CSV dans le testeur de variations.Remarque
Le testeur de variations affiche uniquement les libellés d'entité pour les cas de test de réussite. Utilisez plutôt un test rapide pour afficher les libellés des variations qui se résolvent en dessous du seuil de confiance. - Utilisez les résultats pour affiner l'ensemble de données. Ajoutez, enlevez ou modifiez de manière itérative les variations d'entraînement jusqu'à ce que les résultats de l'exécution de test indiquent que le modèle identifie efficacement les entités d'apprentissage automatique.
Remarque
Pour éviter que des correspondances d'entité par inadvertance ne dégradent l'expérience utilisateur, activez l'option Exclure les correspondances d'entité système si les données d'entraînement contiennent des noms, des emplacements et des numéros.
Instructions de formation des entités ML
Le modèle généralise une entité en utilisant à la fois le contexte autour d'un mot (ou de mots) et les informations lexicales sur le mot lui-même. Pour que le modèle soit généralisé efficacement, nous recommandons que le nombre d'annotations par entité se situe entre 500 et 5000. Vous disposez peut-être déjà d'un ensemble d'entraînement suffisamment grand et présentant la variation des valeurs d'entité que vous attendez des utilisateurs finaux. Si tel est le cas, vous pouvez lancer une tâche d'annotation d'entité, puis incorporer les résultats dans les données d'entraînement. Toutefois, si vous ne disposez pas de suffisamment de données d'entraînement ou si les données dont vous disposez ne sont pas suffisamment couvertes pour toutes les entités d'apprentissage automatique, vous pouvez collecter des variations à partir de travaux de paraphrase d'intention d'origine collective.
- N'utilisez pas trop les mêmes valeurs d'entité dans vos données d'entraînement. Les valeurs d'entité répétitives dans vos données d'entraînement empêchent le modèle de se généraliser sur des valeurs inconnues. Par exemple, vous attendez que l'entité ML reconnaisse une variété de valeurs, mais l'entité n'est représentée que par 10 à 20 valeurs différentes dans votre jeu d'entraînement. Dans ce cas, le modèle ne généralisera pas, même s'il y a deux ou trois mille annotations.
- Faites varier le nombre de mots pour chaque valeur d'entité. Si vous attendez des utilisateurs qu'ils entrent des valeurs d'entité de trois à cinq mots, mais que vos données d'entraînement sont annotées avec des valeurs d'entité de un ou deux mots, le modèle risque de ne pas identifier l'entité à mesure que le nombre de mots augmente. Dans certains cas, il ne peut identifier que partiellement l'entité. Le modèle suppose la limite d'entité à partir des variations que vous avez fournies. Si vous avez entraîné le modèle sur des valeurs comportant un ou deux mots, il suppose que la limite de l'entité ne comporte qu'un ou deux mots. L'ajout d'entités avec plus de mots permet au modèle de reconnaître des limites d'entité plus longues.
- La longueur de variation doit refléter votre cas d'utilisation et la saisie utilisateur prévue. Vous pouvez entraîner le modèle à détecter les entités pour les messages de longueurs variables en collectant les variations courtes et longues. Les variations peuvent même comporter plusieurs expressions. Si vous attendez des variations courtes qui reflètent le contexte de remplissage des emplacements, collectez les données échantillon en conséquence. De même, si vous prévoyez des variations pour le scénario de contexte initial, l'ensemble d'entraînement doit contenir des expressions complètes.
- Inclure la ponctuation. Si les noms d'entité nécessitent des caractères spéciaux, tels que '-' et '/', incluez-les dans les valeurs d'entité dans les données d'entraînement.
- Assurez-vous que toutes les entités d'apprentissage automatique sont également représentées dans vos données d'entraînement. Un ensemble d'entraînement non équilibré contient trop d'instances d'une entité et trop peu d'instances d'une autre. Les modèles produits à partir d'ensembles d'entraînement non équilibrés ne détectent parfois pas l'entité avec trop peu d'instances et surprédisent les entités avec des instances disproportionnellement élevées. Cela conduit à des faux positifs.
Directives de test d'entité ML
- Utilisez uniquement des variations de contexte de créneau pour déterminer dans quelle mesure le modèle prédit les entités avec moins de contexte.
- Utilisez des variations avec des valeurs "inconnues" pour déterminer dans quelle mesure le modèle se généralise avec des valeurs qui ne sont pas présentes dans les données d'entraînement.
- Utilisez des variations sans entités d'apprentissage automatique pour déterminer si le modèle détecte des faux positifs.
- Utilisez des variations contenant des valeurs d'entité ML avec ponctuation pour déterminer les performances du modèle avec des valeurs d'entité inhabituelles.