ai-center
2024.10
true
UiPath logo, featuring letters U and I in white
AI Center - Guide de l'utilisateur
Automation CloudAutomation SuiteStandalone
Last updated 11 nov. 2024

Reconnaissance d'entité nommée personnalisée

Packages prêts à l'emploi (Out of the Box Packages) > Analyse du langage UiPath (UiPath Language Analysis) > CustomNamedEntityRecognition

Ce modèle vous permet d'apporter votre propre ensemble de données balisé avec les entités que vous souhaitez extraire. Les ensembles de données d'entraînement et d'évaluation doivent être au format CoNLL ou JSON. Les données peuvent également être exportées à partir de l'outil Labellisation des données AI Center ( AI Center Data Labeling) ou peuvent également être exportées à partir de Label Studio. Ce package ML doit être réentraîné ; s'il est déployé sans entraînement préalable, le déploiement échouera en présentant une erreur indiquant que le modèle n'a pas été entraîné.

Pour un exemple d'utilisation de ce modèle, consultez Extraction de produits chimiques d'un document de recherche par catégorie pour un cas concret.

Recommandations

Quand utiliser le modèle NER (Customer Named Entity Recognition)

Utilisez le modèle NER personnalisé pour extraire :

  • informations spéciales du texte. Ces informations sont appelées entity.
  • les noms de personnes, de endroits, d'organisations, d'emplacements, de dates, de valeurs numériques, etc. Les entités extraites s'excluent mutuellement. Les entités se trouvent au niveau du mot unique ou multi-mots, pas au niveau du sous-mot. Par exemple, dans la phrase Je réside à New York (I live in New York ), une entité peut être New York , mais pas dans la phrase J'ai lu la phrase New Yorker .

Vous pouvez utiliser les entités extraites directement dans les processus d'extraction d'informations ou comme entrées dans les tâches en aval, telles que la classification du texte source, l'analyse des sentiments du texte source, les informations d’identification, etc.

Recommandations pour l'ensemble de données d'entraînement

  • Avoir au moins 200 échantillons par entité si les entités sont denses dans les échantillons, ce qui signifie que la plupart des échantillons (plus de 75 %) contiennent 3 à 5 de ces entités.
  • Si les entités sont rares (chaque échantillon contient moins de trois entités), c'est-à-dire que seules quelques-unes des entités apparaissent dans la plupart des documents, il est alors recommandé d'avoir au moins 400 échantillons par entité. Cela aide le modèle à mieux comprendre les traits distinctifs.
  • S'il y a plus de 10 entités, ajoutez 100 échantillons supplémentaires de manière incrémentielle jusqu'à ce que vous atteigniez la métrique de performances souhaitée.

Meilleures pratiques

  1. Avoir des entités significatives ; si un humain ne peut pas identifier une entité, un modèle ne le peut pas non plus.
  2. Avoir des entités simples. Au lieu d'une seule adresse d'entité, décomposez-la en plusieurs entités : nom de la rue, nom de l'état, nom de la ville, code postal, etc.
  3. Créez à la fois des ensembles de données d'entraînement et de test et utilisez un pipeline complet pour l'entraînement.
  4. Commencer par un nombre minimum d'échantillons pour l'annotation, couvrant toutes les entités.
  5. Assurez-vous que toutes les entités sont représentées à la fois dans le fractionnement d'entraînement et de test.
  6. Exécutez un pipeline complet et vérifiez les métriques de test. Si la mesure de test n'est pas satisfaisante, vérifiez le rapport de classification et identifiez les entités défaillantes. Ajoutez plus d'échantillons qui couvrent les entités peu performantes et répétez le processus d'entraînement, jusqu'à ce que la métrique souhaitée soit atteinte.

Langues

Ce modèle multilingue prend en charge les langues répertoriées ci-dessous. Ces langues ont été choisies car elles représentent les 100 premières langues les plus utilisées sur Wikipédia :

  • Afrikaans
  • Albanais
  • Arabe
  • Aragonais
  • arménien
  • asturien
  • Azerbaïdjanais
  • Bachkir
  • Basque
  • bavarois
  • Biélorusse
  • bengali
  • Bishnupriya Manipuri
  • Bosniaque
  • breton
  • Bulgare
  • Birman
  • Catalan
  • cebuano
  • Tchétchène
  • Chinois (simplifié)
  • Chinois (traditionnel)
  • Tchouvache
  • croate
  • Tchèque
  • Danois
  • Néerlandais
  • Anglais
  • estonien
  • Finnois
  • Français
  • galicien
  • géorgien
  • Allemand
  • Grec
  • gujarati
  • haïtien
  • Hébreu
  • Hindi
  • Hongrois
  • Islandais
  • Ido
  • Indonésien
  • Irlandais
  • Italien
  • Japonais
  • javanais
  • kannada
  • Kazakh
  • kirghiz
  • Coréen
  • latin
  • letton
  • lituanien
  • lombard
  • bas saxon
  • luxembourgeois
  • macédonien
  • Malgache
  • malais
  • Malayalam
  • marathi
  • Minangkabau
  • mongol
  • népalais
  • newar
  • norvégien (Bokmål)
  • norvégien (Nynorsk)
  • occitan
  • persan (farsi)
  • piémontais
  • Polonais
  • Portugais
  • pendjabi
  • Roumain
  • Russe
  • écossais
  • Serbe
  • serbo-croate
  • sicilien
  • slovaque
  • slovène
  • azerbaïdjanais du sud
  • Espagnol
  • sundanais
  • Swahili
  • Suédois
  • Tagalog
  • Tadjik
  • tamil
  • Tatar
  • telugu
  • Thaï
  • Turque
  • Ukrainien
  • Ourdou
  • ouzbek
  • Vietnamien
  • volapük
  • waray-waray
  • gallois
  • frison occidental
  • pendjabi occidental
  • yoruba

Détails du modèle

Description de l'entrée

Texte dans l'une des langues ci-dessus à partir duquel les entités seront extraites.

Description de la sortie

Liste des entités nommées dans le texte. Chaque élément de la liste a les éléments suivants dans la prédiction :

  • Texte reconnu
  • Positions de début et de fin du texte, au niveau des caractères
  • Type de l'entité nommée
  • Confidence
    {
     "response" : [{
       "value": "George Washington",
       "start_index": 0,
       "end_index": 17,
       "entity": "PER",
       "confidence": 0.96469810605049133 
      }]
    }{
     "response" : [{
       "value": "George Washington",
       "start_index": 0,
       "end_index": 17,
       "entity": "PER",
       "confidence": 0.96469810605049133 
      }]
    }

Recommander un GPU

Par défaut, un GPU est recommandé.

Pipelines

Les trois types de pipelines (complet, formation et évaluation) sont pris en charge par ce package. Pour la plupart des cas d'utilisation, aucun paramètre n'a besoin d'être spécifié ; le modèle utilise des techniques avancées pour trouver un modèle performant. Pour les entraînements subséquents au premier entraînement, le modèle utilise un apprentissage incrémentiel (c'est-à-dire que la version précédemment entraînée sera utilisée à la fin de l'exécution d'un entraînement).

Peaufinage à l'aide des données de la station de validation

Vous pouvez utiliser les API Label Studio pour réécrire les données et les prédictions avec une faible confiance. Vos données peuvent être ré-labellisées et être exportées au format CoNLL.

For more information on how to use Label Studio, see Getting started with Label Studio. Also, you can download the UiPath® Studio activity for Label Studio Integration here.

Vous pouvez également tirer parti de la fonctionnalité de labellisation des données dans AI Center.

Formation sur GPU ou CPU

Vous pouvez utiliser le GPU ou le CPU pour la formation. Nous vous recommandons d'utiliser le GPU car il est plus rapide.

Format d'ensemble de données

Ce modèle prend en charge la lecture de tous les fichiers d'un répertoire donné pendant toutes les exécutions du pipeline (entraînement, évaluation et pipeline complet).

Remarque : assurez-vous que les noms de libellé ne contiennent pas d'espaces ou de caractères spéciaux. Par exemple, au lieu de Set Date , utilisez SetDate .

Format de fichier CoNLL

Ce modèle peut lire tous les fichiers avec une extension .txt et/ou .conll en utilisant le format de fichier CoNLL dans le répertoire fourni.

Le format de fichier CoNLL représente un corps de texte avec un mot par ligne, chaque mot contenant 10 colonnes séparées par des tabulations avec des informations sur le mot (par exemple, la surface et la syntaxe).

La reconnaissance d'entité nommée pouvant être entraînée prend en charge deux formats CoNLL :

  • Avec seulement deux colonnes dans le texte.
  • Avec quatre colonnes dans le texte.
Pour utiliser ce format, définissez dataset.input_format variable d'environnement sur conll ou label_studio .
Remarque : le format label_studio est le même que le format CoNLL , avec la séparation entre deux points de données étant une nouvelle ligne vide. Pour prendre en charge la séparation entre deux points de données avec -DOCSTART- -X- O O , ajoutez dataset.input_format en tant que variable d'environnement et définissez sa valeur sur conll .

Pour plus d'informations, consultez les exemples ci-dessous.

Japan NNP B-NP B-LOC
began VBD B-VP O
the DT B-NP O
defence NN I-NP O
of IN B-PP O
their PRP$ B-NP O
Asian JJ I-NP B-MISC
Cup NNP I-NP I-MISC
title NN I-NP O
with IN B-PP O
a DT B-NP O
lucky JJ I-NP O
2-1 CD I-NP O
win VBP B-VP O
against IN B-PP O
Syria NNP B-NP B-LOC
in IN B-PP O
a DT B-NP O
Group NNP I-NP O
C NNP I-NP O
championship NN I-NP O
match NN I-NP O
on IN B-PP O
Friday NNP B-NP O
. . O OFounding O
member O
Kojima B-PER
Minoru I-PER
played O
guitar O
on O
Good B-MISC
Day I-MISC
, O
and O
Wardanceis I-MISC
cover O
of O
a O
song O
by O
UK I-LOC
post O
punk O
industrial O
band O
Killing B-ORG
Joke I-ORG
. OJapan NNP B-NP B-LOC
began VBD B-VP O
the DT B-NP O
defence NN I-NP O
of IN B-PP O
their PRP$ B-NP O
Asian JJ I-NP B-MISC
Cup NNP I-NP I-MISC
title NN I-NP O
with IN B-PP O
a DT B-NP O
lucky JJ I-NP O
2-1 CD I-NP O
win VBP B-VP O
against IN B-PP O
Syria NNP B-NP B-LOC
in IN B-PP O
a DT B-NP O
Group NNP I-NP O
C NNP I-NP O
championship NN I-NP O
match NN I-NP O
on IN B-PP O
Friday NNP B-NP O
. . O OFounding O
member O
Kojima B-PER
Minoru I-PER
played O
guitar O
on O
Good B-MISC
Day I-MISC
, O
and O
Wardanceis I-MISC
cover O
of O
a O
song O
by O
UK I-LOC
post O
punk O
industrial O
band O
Killing B-ORG
Joke I-ORG
. O

Format de fichier JSON

Les variables d'environnement peuvent être définies et ce modèle lira tous les fichiers dans un répertoire fourni avec une extension .json en utilisant le format JSON.

Vérifiez l'exemple et les variables d'environnement suivants pour un exemplede format de fichier J SON .

{
    "text": "Serotonin receptor 2A ( HTR2A ) gene polymorphism predicts treatment response to venlafaxine XR in generalized anxiety disorder . anxiety disorder ( GAD ) is a chronic psychiatric disorder with significant morbidity and mortality .\)
Antidepressant drugs are the preferred choice for treatment ; however , treatment response is often variable .\)
Several studies in major depression have implicated a role of the serotonin receptor gene ( HTR2A ) in treatment response to antidepressants .\)
We tested the hypothesis that the genetic polymorphism rs7997012 in the HTR2A gene predicts treatment outcome in GAD patients treated with venlafaxine XR . Treatment response was assessed in 156 patients that participated in a 6-month open - label clinical trial of venlafaxine XR for GAD . Primary analysis included Hamilton Anxiety Scale ( HAM-A ) reduction at 6 months .\)
Secondary outcome measure was the Clinical Global Impression of Improvement ( CGI-I ) score at 6 months .\)
Genotype and allele frequencies were compared between groups using χ(2) contingency analysis .\)
The frequency of the G-allele differed significantly between responders ( 70% ) and nonresponders ( 56% ) at 6 months ( P=0.05 ) using the HAM-A scale as outcome measure .\)
Similarly , using the CGI-I as outcome , the G-allele was significantly associated with improvement ( P=0.01 ) .\)
Assuming a dominant effect of the G-allele , improvement differed significantly between groups ( P=0.001 , odds ratio=4.72 ) .\)
Similar trends were observed for remission although not statistically significant .\)
We show for the first time a pharmacogenetic effect of the HTR2A rs7997012 variant in anxiety disorders , suggesting that pharmacogenetic effects cross diagnostic categories .\)
Our data document that individuals with the HTR2A rs7997012 single nucleotide polymorphism G-allele have better treatment outcome over time .\)
Future studies with larger sample sizes are necessary to further characterize this effect in treatment response to antidepressants in GAD .",
    "entities": [{
        "entity": "TRIVIAL",
        "value": "Serotonin",
        "start_index": 0,
        "end_index": 9
    }, {
        "entity": "TRIVIAL",
        "value": "venlafaxine",
        "start_index": 81,
        "end_index": 92
    }, {
        "entity": "TRIVIAL",
        "value": "serotonin",
        "start_index": 409,
        "end_index": 418
    }, {
        "entity": "TRIVIAL",
        "value": "venlafaxine",
        "start_index": 625,
        "end_index": 636
    }, {
        "entity": "TRIVIAL",
        "value": "venlafaxine",
        "start_index": 752,
        "end_index": 763
    }, {
        "entity": "FAMILY",
        "value": "nucleotide",
        "start_index": 1800,
        "end_index": 1810
    }]
}{
    "text": "Serotonin receptor 2A ( HTR2A ) gene polymorphism predicts treatment response to venlafaxine XR in generalized anxiety disorder . anxiety disorder ( GAD ) is a chronic psychiatric disorder with significant morbidity and mortality .\)
Antidepressant drugs are the preferred choice for treatment ; however , treatment response is often variable .\)
Several studies in major depression have implicated a role of the serotonin receptor gene ( HTR2A ) in treatment response to antidepressants .\)
We tested the hypothesis that the genetic polymorphism rs7997012 in the HTR2A gene predicts treatment outcome in GAD patients treated with venlafaxine XR . Treatment response was assessed in 156 patients that participated in a 6-month open - label clinical trial of venlafaxine XR for GAD . Primary analysis included Hamilton Anxiety Scale ( HAM-A ) reduction at 6 months .\)
Secondary outcome measure was the Clinical Global Impression of Improvement ( CGI-I ) score at 6 months .\)
Genotype and allele frequencies were compared between groups using χ(2) contingency analysis .\)
The frequency of the G-allele differed significantly between responders ( 70% ) and nonresponders ( 56% ) at 6 months ( P=0.05 ) using the HAM-A scale as outcome measure .\)
Similarly , using the CGI-I as outcome , the G-allele was significantly associated with improvement ( P=0.01 ) .\)
Assuming a dominant effect of the G-allele , improvement differed significantly between groups ( P=0.001 , odds ratio=4.72 ) .\)
Similar trends were observed for remission although not statistically significant .\)
We show for the first time a pharmacogenetic effect of the HTR2A rs7997012 variant in anxiety disorders , suggesting that pharmacogenetic effects cross diagnostic categories .\)
Our data document that individuals with the HTR2A rs7997012 single nucleotide polymorphism G-allele have better treatment outcome over time .\)
Future studies with larger sample sizes are necessary to further characterize this effect in treatment response to antidepressants in GAD .",
    "entities": [{
        "entity": "TRIVIAL",
        "value": "Serotonin",
        "start_index": 0,
        "end_index": 9
    }, {
        "entity": "TRIVIAL",
        "value": "venlafaxine",
        "start_index": 81,
        "end_index": 92
    }, {
        "entity": "TRIVIAL",
        "value": "serotonin",
        "start_index": 409,
        "end_index": 418
    }, {
        "entity": "TRIVIAL",
        "value": "venlafaxine",
        "start_index": 625,
        "end_index": 636
    }, {
        "entity": "TRIVIAL",
        "value": "venlafaxine",
        "start_index": 752,
        "end_index": 763
    }, {
        "entity": "FAMILY",
        "value": "nucleotide",
        "start_index": 1800,
        "end_index": 1810
    }]
}

Les variables d'environnement de l'exemple précédent seraient les suivantes :

  • dataset.input_format: json
  • dataset.input_column_name: text
  • dataset.nom_colonne_sortie : entities

format de fichier ai_center

Il s'agit du format par défaut et également du format d'exportation de l'outil de labellisation des données dans AI Center, et ce modèle lira tous les fichiers dans un répertoire fourni avec une extension .json .

Consultez l'exemple et les variables d'environnement suivants pour obtenir un exemple de format de fichier ai_center.

{
    "annotations": {
        "intent": {
            "to_name": "text",
            "choices": [
                "TransactionIssue",
                "LoanIssue"
            ]
        },
        "sentiment": {
            "to_name": "text",
            "choices": [
                "Very Positive"
            ]
        },
        "ner": {
            "to_name": "text",
            "labels": [
                {
                    "start_index": 37,
                    "end_index": 47,
                    "entity": "Stakeholder",
                    "value": " Citi Bank"
                },
                {
                    "start_index": 51,
                    "end_index": 61,
                    "entity": "Date",
                    "value": "07/19/2018"
                },
                {
                    "start_index": 114,
                    "end_index": 118,
                    "entity": "Amount",
                    "value": "$500"
                },
                {
                    "start_index": 288,
                    "end_index": 293,
                    "entity": "Stakeholder",
                    "value": " Citi"
                }
            ]
        }
    },
    "data": {
        "cc": "",
        "to": "xyz@abc.com",
        "date": "1/29/2020 12:39:01 PM",
        "from": "abc@xyz.com",
        "text": "I opened my new checking account with Citi Bank in 07/19/2018 and met the requirements for the promotion offer of $500 . It has been more than 6 months and I have not received any bonus. I called the customer service several times in the past few months but no any response. I request the Citi honor its promotion offer as advertised."
    }
}{
    "annotations": {
        "intent": {
            "to_name": "text",
            "choices": [
                "TransactionIssue",
                "LoanIssue"
            ]
        },
        "sentiment": {
            "to_name": "text",
            "choices": [
                "Very Positive"
            ]
        },
        "ner": {
            "to_name": "text",
            "labels": [
                {
                    "start_index": 37,
                    "end_index": 47,
                    "entity": "Stakeholder",
                    "value": " Citi Bank"
                },
                {
                    "start_index": 51,
                    "end_index": 61,
                    "entity": "Date",
                    "value": "07/19/2018"
                },
                {
                    "start_index": 114,
                    "end_index": 118,
                    "entity": "Amount",
                    "value": "$500"
                },
                {
                    "start_index": 288,
                    "end_index": 293,
                    "entity": "Stakeholder",
                    "value": " Citi"
                }
            ]
        }
    },
    "data": {
        "cc": "",
        "to": "xyz@abc.com",
        "date": "1/29/2020 12:39:01 PM",
        "from": "abc@xyz.com",
        "text": "I opened my new checking account with Citi Bank in 07/19/2018 and met the requirements for the promotion offer of $500 . It has been more than 6 months and I have not received any bonus. I called the customer service several times in the past few months but no any response. I request the Citi honor its promotion offer as advertised."
    }
}

Pour tirer parti de l'exemple JSON précédent, les variables d'environnement doivent être définies comme suit :

  • dataset.input_format à ai_center
  • dataset.input_column_name à data.text
  • dataset.nom_colonne_sortie : annotations.ner.labels

Variables de l'environnement

  • dataset.input_column_name

    • Le nom de la colonne contenant du texte.
    • La valeur par défaut est data.text.
    • Cette variable n'est nécessaire que si le format du fichier d'entrée est ai_center ou JSON .
  • dataset.target_column_name

    • Le nom de la colonne contenant les libellés.
    • La valeur par défaut est annotations.ner.labels.
    • Cette variable n'est nécessaire que si le format du fichier d'entrée est ai_center ou JSON .
  • modèle.époques

    • Le nombre d'époques.
    • La valeur par défaut est 5.
  • jeu de données.format_entrée

    • Le format d'entrée des données d'entraînement.
    • La valeur par défaut est ai_center.
    • Les valeurs prises en charge sont : ai_center , conll , label_studio ou json .
      Remarque : le format label_studio est le même que le format CoNLL , avec la séparation entre deux points de données étant une nouvelle ligne vide. Pour prendre en charge la séparation entre deux points de données avec -DOCSTART- -X- O O , ajoutez dataset.input_format en tant que variable d'environnement et définissez sa valeur sur conll .

Artefacts

Les artefacts présentent les valeurs suivantes :
  • Rapport d'évaluation contenant les fichiers suivants :
    • Rapport de classification
    • Matrice de confusion
    • Informations de rappel de précision
  • Fichiers JSON : fichiers JSON distincts correspondant à chaque section du fichier PDF du rapport d'évaluation. Ces fichiers JSON sont lisibles par machine et vous pouvez les utiliser pour diriger l'évaluation du modèle vers Insights à l'aide du workflow.

Rapport de classification

Le rapport de classification est dérivé de l'ensemble de données de test lors de l'exécution d'un pipeline complet ou d'un pipeline d'évaluation. Il contient les informations suivantes pour chaque entité sous la forme d'un diagramme :

  • Entité : le nom de l'entité.
  • Précision : la mesure de précision permettant de prédire correctement l'entité sur l'ensemble de tests.
  • Rappel (Recall) - La mesure de rappel permettant de prédire correctement l'entité sur l'ensemble de test.
  • Score F1 : la mesure du score f1 permettant de prédire correctement l'entité sur l'ensemble de tests ; vous pouvez utiliser ce score pour comparer les performances basées sur les entités de deux versions entraînées différemment de ce modèle.


Matrice de confusion



Un tableau avec des explications expliquant les différentes catégories d'erreurs est également fourni sous la matrice de confusion. Les catégories d'erreurs par entité sontcorrectes,incorrectes,manquéeset parasites sont expliquées dans ce tableau.

Informations de rappel de précision

Vous pouvez utiliser ces informations pour vérifier la précision et le compromis du modèle. Les seuils et les valeurs de précision et de rappel correspondantes sont également fournis dans un tableau au-dessus du diagramme pour chaque entité. Ce tableau vous permettra de choisir le seuil souhaité à configurer dans votre workflow afin de décider quand envoyer les données à Action Center pour Human in the loop. Notez que plus le seuil choisi est élevé, plus la quantité de données acheminées vers Action Center pour Human in the loop sera élevée.

Il existe un diagramme et une table de rappel de précision pour chaque entité.

Pour obtenir un exemple de table de rappel de précision par entité, consultez le tableau ci-dessous.

seuil

précision

rappel

0,5

0.9193

0.979

0.55

0.9224

0.9777

0.6

0.9234

0.9771

0,65

0.9256

0.9771

0.7

0.9277

0.9759

0,75

0.9319

0.9728

0.8

0.9356

0.9697

0.85

0.9412

0.9697

0,9

0.9484

0.9666

0,95

0.957

0.9629

Pour obtenir un exemple de diagramme de rappel de précision par entité, consultez la figure ci-dessous.



Données

Fichier CSV d'évaluation

Il s'agit d'un fichier CSV contenant des prédictions sur l'ensemble de tests utilisé pour l'évaluation. Le fichier contient les colonnes :

  • Texte (Text) - Le texte utilisé pour l'évaluation.
  • Actual_entities (Actual_entities) : les entités qui ont été fournies en tant que données labellisées dans l'ensemble de données d'évaluation.
  • Predicted_entities : les entités que le modèle entraîné a prédites.
  • Nombres de types d'erreurs (Error_type_counts) : la différence entre les entités réelles et les entités prévues, classées par types d'erreurs.

Cette page vous a-t-elle été utile ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Uipath Logo White
Confiance et sécurité
© 2005-2024 UiPath Tous droits réservés.