Partage via


Comment préparer des données et définir un schéma pour une NER personnalisée

Pour créer un modèle de NER personnalisée, vous avez besoin de l’entraîner avec des données de qualité. Cet article explique comment sélectionner et préparer vos données, ainsi que définir un schéma. La définition du schéma constitue la première étape du cycle de vie de développement de projet et définit les types d’entités et ou de catégories dont vous avez besoin pour extraire votre modèle du texte au moment de l’exécution.

Conception du schéma

Le schéma définit les types/catégories d’entité que votre modèle doit extraire du texte au moment de l’exécution.

  • Passez en revue les documents de votre jeu de données pour vous familiariser avec leur format et leur structure.

  • Identifiez les entités à extraire des données.

    Par exemple, si vous extrayez des entités à partir d’e-mails de support, vous devrez peut-être extraire le « Nom du client », le « Nom du produit », la « Date de demande » et les « Informations de contact ».

  • Évitez l’ambiguïté des types d’entité.

    Une ambiguïté se produit lorsque les types d’entités que vous sélectionnez sont similaires entre eux. Plus votre schéma est ambigu, plus vous aurez besoin de données étiquetées pour différencier les types d’entités.

    Par exemple, si vous extrayez les données d’un contrat juridique, pour extraire le « Nom de la première partie » et le « Nom de la second partie », vous devez ajouter d’autres exemples afin de lever l’ambiguïté, car les noms des deux parties se ressemblent. Évitez toute ambiguité afin de gagner du temps, d’éviter les efforts inutiles et d’obtenir de meilleurs résultats.

  • Évitez les entités complexes. Les entités complexes peuvent être difficiles à extraire du texte de manière précise. Divisez-les en plusieurs entités.

    Par exemple, l’extraction d’« Adresse » serait difficile si elle n’est pas divisée en entités plus petites. Il existe tellement de variantes dans la présentation des adresses qu’un grand nombre d’entités étiquetées serait nécessaire pour apprendre au modèle à extraire une adresse comme un tout, sans la décomposer. Cependant, si vous remplacez « Adresse » par « Nom de rue », « Boîte postale », « Ville », « Département » et « Code postal », le modèle va avoir besoin de moins d’étiquettes par entité.

Sélection de données

La qualité des données avec lesquelles vous entraînez votre modèle affecte considérablement ses performances.

  • Utilisez des données réelles qui reflètent l’espace des problèmes de votre domaine pour entraîner efficacement votre modèle. Vous pouvez utiliser des données synthétiques pour accélérer le processus d’entraînement initial du modèle. Toutefois, elles diffèrent probablement de vos données réelles et rendent le modèle moins efficace quand il est utilisé.

  • Équilibrez autant que possible la distribution de vos données sans trop vous éloigner de leur distribution réelle. Par exemple, si vous entraînez votre modèle pour extraire des entités de documents juridiques qui peuvent se présenter dans de nombreux formats et langues différents, vous devez fournir des exemples qui illustrent la diversité attendue dans la vie réelle.

  • Utilisez des données diversifiées chaque fois que cela est possible pour éviter le surajustement de votre modèle. Une diversité moindre des données d’entraînement peut conduire votre modèle à apprendre de fausses corrélations qui n’existent peut-être pas dans les données réelles.

  • Évitez les documents dupliqués dans vos données. Les données dupliquées ont un effet négatif sur le processus d’entraînement ainsi que sur les métriques et les performances du modèle.

  • Tenez compte de la provenance de vos données. Si vous collectez les données auprès d’une personne, d’un service ou dans le cadre de votre scénario, le modèle risque probablement de manquer de la diversité nécessaire.

Notes

Si vos documents se présentent en plusieurs langues, sélectionnez l’option Activer plusieurs langues lors de la création du projet et définissez l’option Langue sur la langue correspondant à la plupart de vos documents.

Préparation des données

En guise de prérequis pour la création d’un projet, vos données d’entraînement doivent être chargées vers un conteneur d’objets blob dans votre compte de stockage. Vous pouvez créer et charger des documents d’entraînement directement à partir d’Azure ou via l’outil Explorateur Stockage Azure. L’outil Explorateur Stockage Azure vous permet de charger plus de données rapidement.

Seule les documents .txt peuvent être utilisés. Si vos données sont dans un autre format, vous pouvez utiliser la commande d’analyse CLUtils pour changer le format de votre document.

Vous pouvez charger un jeu de données annoté, ou charger un jeu non annoté et étiqueter vos données dans Language Studio.

Jeu de test

Lors de la définition du jeu de test, veillez à inclure des exemples de documents qui ne sont pas présents dans le jeu d’entraînement. La définition du jeu de tests est une étape importante pour calculer les performances du modèle. Vérifiez aussi que le jeu de test inclut des documents qui représentent toutes les entités utilisées dans votre projet.

Étapes suivantes

Si vous ne l’avez pas déjà fait, créez un projet de NER personnalisée. Si vous utilisez une NER personnalisée pour la première fois, suivez le guide de démarrage rapide afin de créer un exemple de projet. Vous pouvez également consulter l’article de guide pratique pour obtenir des informations supplémentaires sur les éléments nécessaires à la création d’un projet.