- Notes de publication
- Avant de commencer
- Démarrage
- Installation d'AI Center
- Migration et mise à niveau
- Projets
- Jeux de données
- Labellisation des données
- Paquets ML
- Paquets prêts à l’emploi
- Pipelines
- Compétences ML
- Journaux ML
- Document UnderstandingTM dans AI Center
- API AI Center
- Comment
- Licences
- Guide de dépannage de base
AI Center - Guide de l'utilisateur
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.
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
- Avoir des entités significatives ; si un humain ne peut pas identifier une entité, un modèle ne le peut pas non plus.
- 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.
- Créez à la fois des ensembles de données d'entraînement et de test et utilisez un pipeline complet pour l'entraînement.
- Commencer par un nombre minimum d'échantillons pour l'annotation, couvrant toutes les entités.
- Assurez-vous que toutes les entités sont représentées à la fois dans le fractionnement d'entraînement et de test.
- 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.
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
Texte dans l'une des langues ci-dessus à partir duquel les entités seront extraites.
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 }] }
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).
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.
Pour plus d'informations sur l'utilisation de Label Studio, consultez Premiers pas avec Label Studio. Vous pouvez également télécharger l’activité UiPath® Studio pour l’intégration de Label Studio ici.
Vous pouvez également tirer parti de la fonctionnalité de labellisation des données dans AI Center.
Vous pouvez utiliser le GPU ou le CPU pour la formation. Nous vous recommandons d'utiliser le GPU car il est plus rapide.
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).
Set Date
, utilisez SetDate
.
Format de fichier CoNLL
.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.
conll
ou label_studio
.
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
. O
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
. O
Format de fichier JSON
.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
.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
-
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
ouJSON
.
-
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
ouJSON
.
-
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
oujson
.Remarque : le formatlabel_studio
est le même que le formatCoNLL
, 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 surconll
.
- 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.
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.