Démarrage rapide : reconnaissance d’entités nommées personnalisées

Utilisez cet article pour commencer à créer un projet NER (reconnaissance d’entité nommée) personnalisé dans lequel vous pouvez effectuer l’apprentissage de modèles personnalisés pour la reconnaissance d’entités personnalisées. Un modèle est un logiciel d’intelligence artificielle qui est entraîné pour effectuer une tâche donnée. Pour ce système, les modèles extraient des entités nommées et sont entraînés en apprenant à partir de données étiquetées.

Dans cet article, nous utilisons Language Studio pour décrire les concepts clés de la Reconnaissance d’entité nommée (NER) personnalisée. À titre d’exemple, nous créons un modèle de NER personnalisée pour extraire les entités pertinentes de contrats de prêt, telles que :

  • Date du contrat
  • Nom, adresse, ville et état de l’emprunteur
  • Nom, adresse, ville et état du prêteur
  • Prêts et montants d’intérêts

Prérequis

Créer une ressource Azure AI Language et un compte de stockage Azure

Avant de pouvoir utiliser un modèle de NER personnalisé, vous devez créer une ressource Azure AI Language, qui vous permettra de disposer des informations d’identification dont vous avez besoin pour créer un projet et commencer à entraîner un modèle. Vous aurez également besoin d’un compte de stockage Azure, où vous pourrez charger le jeu de données à utiliser pour générer votre modèle.

Important

Pour bien démarrer rapidement, nous vous recommandons de créer une ressource Azure AI Language en suivant les étapes fournies dans cet article. En suivant les étapes dans cet article, vous pourrez créer la ressource Language et le compte de stockage simultanément, ce qui s’avère être plus simple que si vous le faisiez ultérieurement.

Si vous disposez d’une ressource préexistante à utiliser, vous devez la connecter au compte de stockage. Pour plus d’informations, consultez les conseils sur l’utilisation d’une ressource préexistante.

Créer une ressource à partir du portail Azure

  1. Connectez-vous au Portail Azure pour créer une ressource Azure AI Language.

  2. Dans la fenêtre qui s’affiche, sélectionnez Classification de texte personnalisée et reconnaissance d’entités nommées personnalisées dans les fonctionnalités personnalisées. Sélectionnez Continuer pour créer votre ressource en bas de l’écran.

    A screenshot showing custom text classification & custom named entity recognition in the Azure portal.

  3. Créez une ressource de langue avec les détails suivants.

    Nom Description
    Abonnement Votre abonnement Azure.
    Resource group Un groupe de ressources comprenant votre ressource. Vous pouvez utiliser un groupe de resources existant ou en créer un.
    Région Région de votre ressource de langue. Par exemple, « USA Ouest 2 ».
    Nom Nom de votre ressource.
    Niveau tarifaire Niveau tarifaire de votre ressource de langue. Vous pouvez utiliser le niveau tarifaire gratuit (F0) pour tester le service.

    Notes

    Si vous recevez un message indiquant « votre compte de connexion n’est pas propriétaire du groupe de ressources du compte de stockage sélectionné », votre compte doit avoir un rôle de propriétaire affecté sur le groupe de ressources avant de pouvoir créer une ressource Language. Pour obtenir de l’aide, contactez le propriétaire de votre abonnement Azure.

  4. Dans la section Classification de texte personnalisée et reconnaissance d’entités nommées personnalisées, sélectionnez un compte de stockage existant ou sélectionnez Nouveau compte de stockage. Ces valeurs vous aident pour un démarrage rapide. Il ne s’agit pas des valeurs du compte de stockage à utiliser dans les environnements de production. Pour éviter la latence lors de la création de votre projet, connectez-vous à des comptes de stockage dans la même région que votre ressource de langue.

    Valeur du compte de stockage Valeur recommandée
    Nom du compte de stockage Nom quelconque
    Type de compte de stockage LRS standard
  5. Vérifiez que l’Avis d’IA responsable est coché. Au bas de la page, sélectionnez Vérifier + créer, puis Créer.

Charger les exemples de données dans un conteneur d’objets blob

Après avoir créé un compte de stockage Azure et l’avoir connecté à votre ressource de langue, vous devez charger les documents de l’exemple de jeu de données dans le répertoire racine de votre conteneur. Ces documents seront utilisés ultérieurement pour effectuer l’apprentissage de votre modèle.

  1. Téléchargez l’exemple de jeu de données à partir de GitHub.

  2. Ouvrez le fichier .zip et extrayez le dossier contenant les documents.

  3. Dans le Portail Azure, accédez au compte de stockage que vous avez créé et sélectionnez-le.

  4. Dans votre compte de stockage, sélectionnez Conteneurs dans le menu de gauche, situé sous Stockage de données. Dans l’écran qui s’affiche, sélectionnez + Conteneur. Donnez au conteneur le nom exemple de données et laissez le Niveau d’accès public par défaut.

    A screenshot showing the main page for a storage account.

  5. Une fois votre conteneur créé, sélectionnez-le. Sélectionnez ensuite le bouton Charger pour sélectionner les fichiers .txt et .json que vous avez téléchargés précédemment.

    A screenshot showing the button for uploading files to the storage account.

L'exemple de jeu de données fourni contient 20 accords de prêt. Chaque accord comprend deux parties : un prêteur et un emprunteur. Vous pouvez utiliser l’exemple de fichier fourni pour extraire les informations pertinentes relatives aux deux parties, la date du contrat, le montant du prêt et le taux d’intérêt.

Créer un projet de reconnaissance d’entité nommée personnalisée

Une fois votre ressource et votre compte de stockage configurés, créez un projet NER personnalisé. Un projet est une zone de travail qui vous permet de créer des modèles ML personnalisés en fonction de vos données. Seuls les utilisateurs qui disposent d’un accès à la ressource de langue utilisée peuvent accéder à votre projet.

  1. Connectez-vous à Language Studio. Une fenêtre apparaît pour vous permettre de sélectionner votre abonnement et votre ressource Language. Sélectionnez la ressource de langue que vous avez créée à l’étape ci-dessus.

  2. Sous la section Extraire les informations de Language Studio, sélectionnez Reconnaissance d’entités nommées personnalisées.

    A screenshot showing the location of custom NER in the Language Studio landing page.

  3. Sélectionnez Créer un projet dans le menu supérieur de la page des projets. La création d’un projet vous permet d’étiqueter des données, d’entraîner, d’évaluer, d’améliorer et de déployer vos modèles.

    A screenshot of the project creation page.

  4. Une fois que vous avez cliqué sur Créer un projet, une fenêtre apparaît pour vous permettre de connecter votre compte de stockage. Si vous avez déjà connecté un compte de stockage, celui-ci s’affiche. Si ce n’est pas le cas, choisissez votre compte de stockage dans la liste déroulante qui s’affiche, puis sélectionnez Connecter le compte de stockage. Cette opération définit les rôles nécessaires pour votre compte de stockage. Cette étape peut retourner une erreur si le rôle propriétaire ne vous est pas attribué sur le compte de stockage.

    Notes

    • Vous ne devez effectuer cette étape qu’une seule fois pour chaque nouvelle ressource utilisée.
    • Ce processus est irréversible. Si vous connectez un compte de stockage à votre ressource de langue, il n’est pas possible de le déconnecter ultérieurement.
    • Vous pouvez connecter votre ressource de langue à un seul compte de stockage.

    A screenshot showing the storage connection screen.

  5. Entrez les informations relatives au projet, notamment son nom, sa description et la langue des fichiers qu’il contient. Si vous utilisez l’exemple de jeu de données, sélectionnez Anglais. Vous ne pourrez plus changer le nom de votre projet. Sélectionnez Suivant.

    Conseil

    Votre jeu de données n’a pas besoin d’être entièrement dans la même langue. Vous pouvez avoir plusieurs fichiers comportant des langues prises en charge différentes. Si votre jeu de données contient des documents en différentes langues ou si vous prévoyez des textes en d’autres langues au moment de l’exécution, sélectionnez l’option Activer un jeu de données multilingue quand vous entrez les informations de base de votre projet. Cette option peut être activée ultérieurement dans la page des Paramètres du projet.

  6. Sélectionnez le conteneur dans lequel vous avez chargé votre jeu de données. Si vous avez déjà étiqueté les données, vérifiez qu’elles respectent le format pris en charge, puis sélectionnez Oui, mes fichiers comportent déjà des étiquettes et j’ai mis en forme le fichier d’étiquettes JSON. Sélectionnez ensuite le fichier d’étiquettes dans le menu déroulant. Sélectionnez Suivant.

  7. Passez en revue les données entrées, puis sélectionnez Créer un projet.

Entraîner votre modèle

En règle générale, après avoir créé un projet, vous commencez à ajouter des étiquettes aux documents qui se trouvent dans le conteneur connecté à votre projet. Pour ce guide de démarrage rapide, vous avez importé un exemple de jeu de données étiqueté et initialisé votre projet avec l’exemple de fichier de balises JSON.

Pour commencer à effectuer l’apprentissage de votre modèle à partir de Language Studio :

  1. Dans le menu de gauche, sélectionnez Travaux d’entraînement.

  2. Sélectionnez Démarrer un travail de formation dans le menu supérieur.

  3. Sélectionnez Effectuer l’apprentissage d’un nouveau modèle, puis tapez le nom du modèle dans la zone de texte. Vous pouvez également remplacer un modèle existant en sélectionnant cette option et le modèle de votre choix dans le menu déroulant. La remplacement d’un modèle entraîné est irréversible. Toutefois, cela n’affecte pas vos modèles déployés tant que vous ne déployez pas le nouveau modèle.

    Create a new training job

  4. Sélectionnez la méthode de fractionnement des données. Vous pouvez choisir l’option Fractionnement automatique du jeu de test à partir des données d’apprentissage. Dans ce cas, le système fractionne vos données étiquetées en jeux d’apprentissage et de test, selon les pourcentages spécifiés. Vous pouvez également Utiliser un fractionnement manuel des données d’apprentissage et de test. Cette option est activée uniquement si vous avez ajouté des documents à votre jeu de tests lors de l’étiquetage des données. Pour plus d’informations sur le fractionnement des données, consultez Guide pratique pour effectuer l’apprentissage d’un modèle.

  5. Sélectionner le bouton Train (Entraîner).

  6. Si vous sélectionnez l’ID du travail d’apprentissage dans la liste, un volet latéral vous permet de vérifier la progression de la formation, l’état du travail et d’autres détails pour ce travail.

    Notes

    • Seuls les emplois de formation achevés avec succès génèrent des modèles.
    • L’apprentissage peut durer de quelques minutes à plusieurs heures en fonction de la taille de vos données étiquetées.
    • Vous ne pouvez avoir qu’un seul travail d’entraînement en cours d’exécution à la fois. Vous ne pouvez pas démarrer un autre travail d’apprentissage dans le même projet tant que le travail en cours d’exécution n’est pas terminé.

Déployer votre modèle

En règle générale, après l’apprentissage d’un modèle, vous passez en revue les détails de l’évaluation et vous apportez des améliorations, si nécessaire. Dans ce guide de démarrage rapide, vous allez simplement déployer votre modèle et le rendre disponible pour pouvoir l’essayer dans Language Studio. Vous pouvez également appeler l’API de prévision.

Pour déployer votre modèle à partir de Language Studio :

  1. Dans le menu de gauche, sélectionnez Déploiement d’un modèle.

  2. Sélectionnez Ajouter un déploiement pour démarrer un nouveau travail de déploiement.

    A screenshot showing the deployment button

  3. Sélectionnez Créer un déploiement pour créer un déploiement et attribuer un modèle entraîné dans la liste déroulante ci-dessous. Vous pouvez également Remplacer un déploiement existant en sélectionnant cette option et en sélectionnant le modèle entraîné que vous souhaitez attribuer dans la liste déroulante ci-dessous.

    Notes

    Le remplacement d’un déploiement existant ne nécessite pas de modifier votre appel de l’API de prédiction. Toutefois, les résultats obtenus sont basés sur le modèle qui vient d’être attribué.

    A screenshot showing the deployment screen

  4. Sélectionnez Déployer pour démarrer le travail de déploiement.

  5. Une fois le déploiement réussi, une date d’expiration s’affiche à côté de celui-ci. L’expiration du déploiement correspond au moment où votre modèle déployé n’est plus disponible pour la prédiction. Cela se produit généralement douze mois après l’expiration d’une configuration de l’apprentissage.

Tester votre modèle

Une fois votre modèle déployé, vous pouvez commencer à l’utiliser pour extraire des entités de votre texte via l’API de prédiction. Pour ce guide de démarrage rapide, vous utilisez Language Studio pour envoyer la tâche de reconnaissance d’entité personnalisée et visualiser les résultats. Dans l’exemple de jeu de données que vous avez téléchargé précédemment, vous trouvez des documents de test que vous pouvez utiliser à cette étape.

Pour tester vos modèles déployés à partir de Language Studio :

  1. Sélectionnez Test des déploiements dans le menu de gauche.

  2. Sélectionnez le déploiement à tester. Vous pouvez uniquement tester les modèles qui sont attribués aux déploiements.

  3. Pour les projets multilingues, dans la liste déroulante de langue, sélectionnez la langue du texte que vous testez.

  4. Sélectionnez le déploiement à interroger/tester dans la liste déroulante.

  5. Vous pouvez entrer le texte que vous souhaitez envoyer à la demande ou charger un fichier .txt à utiliser.

  6. Sélectionnez Exécuter le test dans le menu supérieur.

  7. Sous l’onglet Résultat, vous pouvez voir les entités extraites à partir de votre texte, et leurs types. Vous pouvez également voir la réponse JSON sous l’onglet JSON.

A screenshot showing the model test results.

Nettoyer les ressources

Une fois que vous n’avez plus besoin de votre projet, vous pouvez le supprimer à l’aide de Language Studio. Sélectionnez Reconnaissance d’entités nommées (NER) personnalisées en haut, sélectionnez le projet à supprimer, puis sélectionnez Supprimer dans le menu du haut.

Prérequis

Créer une ressource Azure AI Language et un compte de stockage Azure

Avant de pouvoir utiliser un modèle de NER personnalisé, vous devez créer une ressource Azure AI Language, qui vous permettra de disposer des informations d’identification dont vous avez besoin pour créer un projet et commencer à entraîner un modèle. Vous aurez également besoin d’un compte Stockage Azure, où vous pourrez charger le jeu de données à utiliser pour générer votre modèle.

Important

Pour démarrer rapidement, nous vous recommandons de créer une ressource Azure AI Language en procédant comme expliqué dans cet article. Vous pouvez ainsi créer la ressource Azure AI Language, puis créer et/ou connecter un compte de stockage simultanément, ce qui est plus simple que d’effectuer cette opération ultérieurement.

Si vous disposez d’une ressource préexistante à utiliser, vous devez la connecter au compte de stockage. Pour plus d’informations, consultez les détails relatifs à la création d’un projet.

Créer une ressource à partir du portail Azure

  1. Connectez-vous au Portail Azure pour créer une ressource Azure AI Language.

  2. Dans la fenêtre qui s’affiche, sélectionnez Classification de texte personnalisée et reconnaissance d’entités nommées personnalisées dans les fonctionnalités personnalisées. Sélectionnez Continuer pour créer votre ressource en bas de l’écran.

    A screenshot showing custom text classification & custom named entity recognition in the Azure portal.

  3. Créez une ressource de langue avec les détails suivants.

    Nom Description
    Abonnement Votre abonnement Azure.
    Resource group Un groupe de ressources comprenant votre ressource. Vous pouvez utiliser un groupe de resources existant ou en créer un.
    Région Région de votre ressource de langue. Par exemple, « USA Ouest 2 ».
    Nom Nom de votre ressource.
    Niveau tarifaire Niveau tarifaire de votre ressource de langue. Vous pouvez utiliser le niveau tarifaire gratuit (F0) pour tester le service.

    Notes

    Si vous recevez un message indiquant « votre compte de connexion n’est pas propriétaire du groupe de ressources du compte de stockage sélectionné », votre compte doit avoir un rôle de propriétaire affecté sur le groupe de ressources avant de pouvoir créer une ressource Language. Pour obtenir de l’aide, contactez le propriétaire de votre abonnement Azure.

  4. Dans la section Classification de texte personnalisée et reconnaissance d’entités nommées personnalisées, sélectionnez un compte de stockage existant ou sélectionnez Nouveau compte de stockage. Ces valeurs vous aident pour un démarrage rapide. Il ne s’agit pas des valeurs du compte de stockage à utiliser dans les environnements de production. Pour éviter la latence lors de la création de votre projet, connectez-vous à des comptes de stockage dans la même région que votre ressource de langue.

    Valeur du compte de stockage Valeur recommandée
    Nom du compte de stockage Nom quelconque
    Type de compte de stockage LRS standard
  5. Vérifiez que l’Avis d’IA responsable est coché. Au bas de la page, sélectionnez Vérifier + créer, puis Créer.

Charger les exemples de données dans un conteneur d’objets blob

Après avoir créé un compte de stockage Azure et l’avoir connecté à votre ressource de langue, vous devez charger les documents de l’exemple de jeu de données dans le répertoire racine de votre conteneur. Ces documents seront utilisés ultérieurement pour effectuer l’apprentissage de votre modèle.

  1. Téléchargez l’exemple de jeu de données à partir de GitHub.

  2. Ouvrez le fichier .zip et extrayez le dossier contenant les documents.

  3. Dans le Portail Azure, accédez au compte de stockage que vous avez créé et sélectionnez-le.

  4. Dans votre compte de stockage, sélectionnez Conteneurs dans le menu de gauche, situé sous Stockage de données. Dans l’écran qui s’affiche, sélectionnez + Conteneur. Donnez au conteneur le nom exemple de données et laissez le Niveau d’accès public par défaut.

    A screenshot showing the main page for a storage account.

  5. Une fois votre conteneur créé, sélectionnez-le. Sélectionnez ensuite le bouton Charger pour sélectionner les fichiers .txt et .json que vous avez téléchargés précédemment.

    A screenshot showing the button for uploading files to the storage account.

L'exemple de jeu de données fourni contient 20 accords de prêt. Chaque accord comprend deux parties : un prêteur et un emprunteur. Vous pouvez utiliser l’exemple de fichier fourni pour extraire les informations pertinentes relatives aux deux parties, la date du contrat, le montant du prêt et le taux d’intérêt.

Récupération des clés et du point de terminaison de la ressource

  1. Accédez à la page de vue d’ensemble de votre ressource dans le portail Azure

  2. Dans le menu de gauche, sélectionnez Clés et point de terminaison. Vous utilisez le point de terminaison et la clé pour les demandes d’API

    A screenshot showing the key and endpoint page in the Azure portal

Créer un projet NER personnalisé

Une fois votre ressource et votre compte de stockage configurés, créez un projet NER personnalisé. Un projet est une zone de travail qui vous permet de créer des modèles ML personnalisés en fonction de vos données. Seuls les utilisateurs qui disposent d’un accès à la ressource de langue utilisée peuvent accéder à votre projet.

Utilisez le fichier d’étiquettes que vous avez téléchargé à partir des exemples de données à l’étape précédente et ajoutez-le au corps de la demande suivante.

Déclencher un travail d’importation de projet

Soumettez une demande POST en utilisant l’URL, les en-têtes et le corps JSON suivants pour importer votre fichier d’étiquettes. Vérifiez que votre fichier d’étiquettes respecte le format accepté.

Si un projet portant le même nom existe déjà, les données de ce projet sont remplacées.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. Pour plus d’informations sur les autres versions d’API disponibles, consultez Cycle de vie du modèle. 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

body

Utilisez le code JSON suivant dans votre demande. Remplacez les valeurs d’espace réservé suivantes par vos valeurs :

{
    "projectFileVersion": "{API-VERSION}",
    "stringIndexType": "Utf16CodeUnit",
    "metadata": {
        "projectName": "{PROJECT-NAME}",
        "projectKind": "CustomEntityRecognition",
        "description": "Trying out custom NER",
        "language": "{LANGUAGE-CODE}",
        "multilingual": true,
        "storageInputContainerName": "{CONTAINER-NAME}",
        "settings": {}
    },
    "assets": {
    "projectKind": "CustomEntityRecognition",
        "entities": [
            {
                "category": "Entity1"
            },
            {
                "category": "Entity2"
            }
        ],
        "documents": [
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 500,
                        "labels": [
                            {
                                "category": "Entity1",
                                "offset": 25,
                                "length": 10
                            },
                            {
                                "category": "Entity2",
                                "offset": 120,
                                "length": 8
                            }
                        ]
                    }
                ]
            },
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 100,
                        "labels": [
                            {
                                "category": "Entity2",
                                "offset": 20,
                                "length": 5
                            }
                        ]
                    }
                ]
            }
        ]
    }
}
Clé Espace réservé Valeur Exemple
api-version {API-VERSION} Version de l’API que vous appelez. La version utilisée ici doit être la même version d’API dans l’URL. En savoir plus sur les autres versions d’API disponibles 2022-03-01-preview
projectName {PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
projectKind CustomEntityRecognition Type de projet. CustomEntityRecognition
language {LANGUAGE-CODE} Chaîne spécifiant le code de langue des documents utilisés dans votre projet. Si votre projet est un multilingue, choisissez le code de langue de la majorité des documents. en-us
multilingual true Valeur booléenne permettant à l’ensemble de données de contenir des documents dans plusieurs langues. Quand votre modèle est déployé, vous pouvez interroger le modèle dans n’importe quelle langue prise en charge (pas nécessairement incluse dans vos documents d’apprentissage). Consultez Prise en charge de la langue pour plus d’informations sur la prise en charge multilingue. true
storageInputContainerName {CONTAINER-NAME} Nom du conteneur de stockage Azure dans lequel vous avez chargé vos documents. myContainer
entities Tableau contenant l’ensemble des types d’entité contenus dans le projet. Il s’agit des types d’entités qui seront extraits de vos documents.
documents Tableau contenant tous les documents de votre projet et la liste des entités étiquetées dans chaque document. []
location {DOCUMENT-NAME} Emplacement des documents dans le conteneur de stockage. Étant donné que tous les documents se trouvent à la racine du conteneur, il doit s’agir du nom du document. doc1.txt
dataset {DATASET} Jeu de test dans lequel ce fichier est envoyé lors du fractionnement avant l’apprentissage. Consultez Guide pratique pour effectuer l’apprentissage d’un modèle pour plus d’informations sur la façon dont vos données sont fractionnées. Les valeurs possibles pour ce champ sont Train et Test. Train

Une fois que vous avez envoyé votre requête API, vous recevez une réponse 202 indiquant que le travail a été envoyé correctement. Dans les en-têtes de réponse, extrayez la valeur operation-location. Elle est au format suivant :

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} est utilisé pour identifier votre demande, car cette opération est asynchrone. Vous utilisez cette URL à l’étape suivante pour obtenir l’état du travail d’importation.

Scénarios d’erreur possibles pour cette requête :

  • La ressource sélectionnée n’a pas les autorisations appropriées pour le compte de stockage.
  • Le storageInputContainerName spécifié n’existe pas.
  • Le code de langue utilisé est non valide ou si le type de code de langue n’est pas une chaîne.
  • La valeur multilingual est une chaîne et non pas une valeur booléenne.

Obtenir l’état de la tâche d’importation

Utilisez la requête GET suivante pour obtenir l’état de votre projet d’importation. Remplacez les valeurs d’espace réservé suivantes par vos valeurs :

URL de la demande

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{JOB-ID} ID de localisation de l’état d’entraînement de votre modèle. Il s’agit de la valeur d’en-tête location que vous avez reçue à l’étape précédente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. Pour plus d’informations sur les autres versions d’API disponibles, consultez Cycle de vie du modèle. 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Entraîner votre modèle

En règle générale, après avoir créé un projet, vous commencez à ajouter des étiquettes aux documents qui se trouvent dans le conteneur connecté à votre projet. Pour ce guide de démarrage rapide, vous avez importé un exemple de jeu de données étiqueté et initialisé votre projet avec l’exemple de fichier d’étiquettes JSON.

Démarrer le travail d’apprentissage

Une fois votre projet importé, vous pouvez commencer l’apprentissage de votre modèle.

Envoyez une requête POST en utilisant l’URL, les en-têtes et le corps JSON suivants pour envoyer un travail de formation. Remplacez les valeurs d’espace réservé suivantes par vos valeurs :

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. Pour plus d’informations sur les autres versions d’API disponibles, consultez Cycle de vie du modèle. 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Corps de la demande

Utilisez le code JSON suivant dans le corps de la demande. Le modèle reçoit le {MODEL-NAME} une fois l’apprentissage effectué. Seuls les travaux d’apprentissage réussis produisent des modèles.

{
	"modelLabel": "{MODEL-NAME}",
	"trainingConfigVersion": "{CONFIG-VERSION}",
	"evaluationOptions": {
		"kind": "percentage",
		"trainingSplitPercentage": 80,
		"testingSplitPercentage": 20
	}
}
Clé Espace réservé Valeur Exemple
modelLabel {MODEL-NAME} Nom attribué à votre modèle une fois l’apprentissage réussi. myModel
trainingConfigVersion {CONFIG-VERSION} Il s’agit de la version du modèle utilisée pour effectuer l’apprentissage du modèle. 2022-05-01
evaluationOptions Option permettant de fractionner vos données entre des jeux d’apprentissage et de test. {}
kind percentage Méthodes de fractionnement. Les valeurs possibles sont percentage ou manual. Pour plus d’informations, consultez Guide pratique pour effectuer l’apprentissage d’un modèle. percentage
trainingSplitPercentage 80 Pourcentage de vos données étiquetées à inclure dans le jeu d’apprentissage. La valeur recommandée est 80. 80
testingSplitPercentage 20 Pourcentage de vos données étiquetées à inclure dans le jeu de test. La valeur recommandée est 20. 20

Notes

Les trainingSplitPercentage et testingSplitPercentage sont nécessaires uniquement si Kind est défini sur percentage. La somme des deux pourcentages doit être égale à 100.

Une fois que vous avez envoyé votre requête API, vous recevez une réponse 202 indiquant que le travail a été envoyé correctement. Dans les en-têtes de réponse, extrayez la valeur location. Elle est au format suivant :

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} est utilisé pour identifier votre demande, car cette opération est asynchrone. Vous pouvez utiliser cette URL pour obtenir l’état de l’apprentissage.

Obtenir l’état des travaux d’apprentissage

L’apprentissage peut prendre entre 10 et 30 minutes pour cet exemple de jeu de données. Vous pouvez utiliser la requête suivante pour continuer à interroger l’état du travail d’apprentissage jusqu’à ce qu’il soit effectué avec succès.

Utilisez la requête GET suivante pour obtenir l’état de progression du processus d’apprentissage de votre modèle. Remplacez les valeurs d’espace réservé suivantes par vos valeurs :

URL de la demande

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{JOB-ID} ID de localisation de l’état d’entraînement de votre modèle. Il s’agit de la valeur d’en-tête location que vous avez reçue à l’étape précédente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. Pour plus d’informations sur les autres versions d’API disponibles, consultez Cycle de vie du modèle. 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Corps de la réponse

Une fois que vous avez envoyé la demande, vous recevez la réponse suivante.

{
  "result": {
    "modelLabel": "{MODEL-NAME}",
    "trainingConfigVersion": "{CONFIG-VERSION}",
    "estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
    "trainingStatus": {
      "percentComplete": 3,
      "startDateTime": "2022-04-18T15:45:06.8190649Z",
      "status": "running"
    },
    "evaluationStatus": {
      "percentComplete": 0,
      "status": "notStarted"
    }
  },
  "jobId": "{JOB-ID}",
  "createdDateTime": "2022-04-18T15:44:44Z",
  "lastUpdatedDateTime": "2022-04-18T15:45:48Z",
  "expirationDateTime": "2022-04-25T15:44:44Z",
  "status": "running"
}

Déployer votre modèle

En règle générale, après l’entraînement d’un modèle, vous passez en revue les détails de l’évaluation et vous apportez des améliorations si nécessaire. Dans ce guide de démarrage rapide, vous allez simplement déployer votre modèle et le rendre disponible pour pouvoir l’essayer dans Language Studio. Vous pouvez également appeler l’API de prévision.

Démarrer le travail de déploiement

Envoyez une requête PUT en utilisant l’URL, les en-têtes et le corps JSON suivants pour envoyer un travail de déploiement. Remplacez les valeurs d’espace réservé suivantes par vos valeurs :

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{DEPLOYMENT-NAME} Nom de votre déploiement. Cette valeur respecte la casse. staging
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. Pour plus d’informations sur les autres versions d’API disponibles, consultez Cycle de vie du modèle. 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Corps de la demande

Utilisez le code JSON suivant dans le corps de la demande. Utilisez le nom du modèle que vous attribuez au déploiement.

{
  "trainedModelLabel": "{MODEL-NAME}"
}
Clé Espace réservé Valeur Exemple
trainedModelLabel {MODEL-NAME} Nom du modèle qui est attribué à votre déploiement. Vous pouvez uniquement attribuer des modèles entraînés avec succès. Cette valeur respecte la casse. myModel

Une fois que vous avez envoyé votre requête API, vous recevez une réponse 202 indiquant que le travail a été envoyé correctement. Dans les en-têtes de réponse, extrayez la valeur operation-location. Elle est au format suivant :

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} est utilisé pour identifier votre demande, car cette opération est asynchrone. Vous pouvez utiliser cette URL pour obtenir l’état du déploiement.

Obtenir l’état du travail de déploiement

Utilisez la requête GET suivante pour interroger l’état du processus de déploiement de votre modèle. Vous pouvez utiliser l’URL que vous avez reçue à l’étape précédente ou remplacer les valeurs d’espace réservé ci-dessous par vos propres valeurs.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{DEPLOYMENT-NAME} Nom de votre déploiement. Cette valeur respecte la casse. staging
{JOB-ID} ID de localisation de l’état d’entraînement de votre modèle. Il s’agit de la valeur d’en-tête location que vous avez reçue à l’étape précédente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. Pour plus d’informations sur les autres versions d’API disponibles, consultez Cycle de vie du modèle. 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Corps de la réponse

Une fois que vous avez envoyé la demande, vous recevez la réponse suivante. Continuez à interroger ce point de terminaison jusqu’à ce que le paramètre status passe à « réussi ». Vous devez normalement obtenir un code 200 pour indiquer la réussite de la demande.

{
    "jobId":"{JOB-ID}",
    "createdDateTime":"{CREATED-TIME}",
    "lastUpdatedDateTime":"{UPDATED-TIME}",
    "expirationDateTime":"{EXPIRATION-TIME}",
    "status":"running"
}

Extraire des entités personnalisées

Une fois votre modèle déployé, vous pouvez commencer à l’utiliser pour extraire des entités de votre texte à l’aide de l’API de prédiction. Dans l’exemple de jeu de données que vous avez téléchargé précédemment, vous trouvez des documents de test que vous pouvez utiliser dans cette étape.

Envoyer une tâche NER personnalisée

Utilisez cette requête POST pour démarrer une tâche de classification de texte.

{ENDPOINT}/language/analyze-text/jobs?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. Pour plus d’informations sur les autres versions d’API disponibles, consultez Cycle de vie du modèle. 2022-05-01

headers

Clé active
Ocp-Apim-Subscription-Key Clé qui fournit l’accès à cette API.

body

{
  "displayName": "Extracting entities",
  "analysisInput": {
    "documents": [
      {
        "id": "1",
        "language": "{LANGUAGE-CODE}",
        "text": "Text1"
      },
      {
        "id": "2",
        "language": "{LANGUAGE-CODE}",
        "text": "Text2"
      }
    ]
  },
  "tasks": [
     {
      "kind": "CustomEntityRecognition",
      "taskName": "Entity Recognition",
      "parameters": {
        "projectName": "{PROJECT-NAME}",
        "deploymentName": "{DEPLOYMENT-NAME}"
      }
    }
  ]
}
Clé Espace réservé Valeur Exemple
displayName {JOB-NAME} Nom de votre travail. MyJobName
documents [{},{}] Liste des documents sur lesquels exécuter des tâches. [{},{}]
id {DOC-ID} Nom ou ID du document. doc1
language {LANGUAGE-CODE} Chaîne spécifiant le code de langue du document. Si cette clé n’est pas spécifiée, le service adoptera la langue par défaut du projet qui a été sélectionnée lors de la création du projet. Pour obtenir la liste des codes de langue pris en charge, consultez Prise en charge linguistique. en-us
text {DOC-TEXT} Tâche de document sur laquelle exécuter les tâches. Lorem ipsum dolor sit amet
tasks Liste des tâches à effectuer. []
taskName CustomEntityRecognition Nom de la tâche CustomEntityRecognition
parameters Liste de paramètres à passer à la tâche.
project-name {PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
deployment-name {DEPLOYMENT-NAME} Nom de votre déploiement. Cette valeur respecte la casse. prod

response

Vous recevez une réponse 202 indiquant que votre tâche a été envoyée avec succès. Dans les en-têtes de réponse, extrayez operation-location. operation-location est au format suivant :

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}

Vous pouvez utiliser cette URL pour interroger l’état d’achèvement de la tâche et obtenir les résultats une fois la tâche terminée.

Obtenir les résultats de la tâche

Utilisez la demande GET suivante pour interroger l’état/les résultats de la tâche de reconnaissance d’entité personnalisée.

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. Pour plus d’informations sur les autres versions d’API disponibles, consultez Cycle de vie du modèle. 2022-05-01

headers

Clé active
Ocp-Apim-Subscription-Key Clé qui fournit l’accès à cette API.

Corps de la réponse

La réponse est un document JSON avec les paramètres suivants.

{
  "createdDateTime": "2021-05-19T14:32:25.578Z",
  "displayName": "MyJobName",
  "expirationDateTime": "2021-05-19T14:32:25.578Z",
  "jobId": "xxxx-xxxx-xxxxx-xxxxx",
  "lastUpdateDateTime": "2021-05-19T14:32:25.578Z",
  "status": "succeeded",
  "tasks": {
    "completed": 1,
    "failed": 0,
    "inProgress": 0,
    "total": 1,
    "items": [
      {
        "kind": "EntityRecognitionLROResults",
        "taskName": "Recognize Entities",
        "lastUpdateDateTime": "2020-10-01T15:01:03Z",
        "status": "succeeded",
        "results": {
          "documents": [
            {
              "entities": [
                {
                  "category": "Event",
                  "confidenceScore": 0.61,
                  "length": 4,
                  "offset": 18,
                  "text": "trip"
                },
                {
                  "category": "Location",
                  "confidenceScore": 0.82,
                  "length": 7,
                  "offset": 26,
                  "subcategory": "GPE",
                  "text": "Seattle"
                },
                {
                  "category": "DateTime",
                  "confidenceScore": 0.8,
                  "length": 9,
                  "offset": 34,
                  "subcategory": "DateRange",
                  "text": "last week"
                }
              ],
              "id": "1",
              "warnings": []
            }
          ],
          "errors": [],
          "modelVersion": "2020-04-01"
        }
      }
    ]
  }
}

Nettoyer les ressources

Quand vous n’avez plus besoin de votre projet, vous pouvez le supprimer avec la demande DELETE suivante. Remplacez les valeurs d’espace réservé par vos propres valeurs.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. Pour plus d’informations sur les autres versions d’API disponibles, consultez Cycle de vie du modèle. 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé active
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Une fois que vous avez envoyé votre requête API, vous recevez une réponse 202 indiquant la réussite, ce qui signifie que votre projet a été supprimé. Un appel réussi donne un en-tête Operation-Location utilisé pour vérifier l’état du travail.

Étapes suivantes

Une fois que vous avez créé le modèle d’extraction d’entités, vous pouvez :

Au moment de vous lancer dans la création de vos propres projets NER personnalisés, utilisez les articles de guide pratique pour en savoir plus sur l’étiquetage, l’entraînement et la consommation de votre modèle :