- Notes de publication
- Avant de commencer
- Démarrage
- Projets
- Jeux de données
- Paquets ML
- Pipelines
- Compétences ML
- Journaux ML
- Document Understanding dans AI Center
- Comment
- Guide de dépannage de base
Classification de texte clair
Packages prêts à l'emploi (Out of the Box Packages) > Analyse du langage UiPath (UiPath Language Analysis) > LightTextClassification
Il s'agit d'un modèle générique réentraîné pour la classification de texte. Il prend en charge toutes les langues basées sur des caractères latins, telles que l’anglais, le français, l’espagnol et autres. Ce paquet ML doit être entraîné. S'il est déployé sans entraînement, le déploiement échouera avec une erreur indiquant que le modèle n'a pas été entraîné. Ce modèle fonctionne sur Bag of Words. Ce modèle fournit une explicabilité basée sur les n-grammes.
JSON avec classe et confiance (entre 0 et 1).
{
"class": "7",
"confidence": 0.1259827300369445,
"ngrams": [
[
"like",
1.3752658445706787
],
[
"like this",
0.032029048484416685
]
]
}
{
"class": "7",
"confidence": 0.1259827300369445,
"ngrams": [
[
"like",
1.3752658445706787
],
[
"like this",
0.032029048484416685
]
]
}
Ce package prend en charge les trois types de pipelines (formation complète, formation et évaluation). Le modèle utilise des techniques avancées pour trouver un modèle performant à l'aide de la recherche par hyperparamètres. Par défaut, la recherche par hyperparamètres (la variable BOW.hyperparameter_search.enable ) est activée. Les paramètres du modèle le plus performant sont disponibles dans le rapport d'évaluation.
Trois options sont disponibles pour structurer votre jeu de données pour ce modèle : JSON, CSV et AI Center au format JSON. Le modèle lira tous les fichiers CSV et JSON dans le répertoire spécifié. Pour chaque format, le modèle attend deux colonnes ou deux propriétés, dataset.input_column_name et dataset.target_column_name Par défaut Les noms de ces deux colonnes et/ou répertoires sont configurables à l'aide de variables d'environnement.
Format de fichier CSV
Chaque fichier CSV peut avoir n'importe quel nombre de colonnes, mais seules deux seront utilisées par le modèle. Ces colonnes sont spécifiées par dataset.input_column_name et dataset.target_column_name paramètres.
Consultez l'exemple et les variables d'environnement suivants pour obtenir un exemple de format de fichier CSV.
text, label
I like this movie, 7
I hated the acting, 9
text, label
I like this movie, 7
I hated the acting, 9
Les variables d'environnement de l'exemple précédent seraient les suivantes :
- dataset.input_format:
auto
- dataset.input_column_name:
text
- dataset.nom_colonne_cible :
label
Format de fichier JSON
Plusieurs points de données peuvent faire partie du même fichier JSON.
Consultez l'exemple et les variables d'environnement suivants pour obtenir un exemple de format de fichier JSON.
[
{
"text": "I like this movie",
"label": "7"
},
{
"text": "I hated the acting",
"label": "9"
}
]
[
{
"text": "I like this movie",
"label": "7"
},
{
"text": "I hated the acting",
"label": "9"
}
]
Les variables d'environnement de l'exemple précédent seraient les suivantes :
- dataset.input_format:
auto
- dataset.input_column_name:
text
- dataset.nom_colonne_cible :
label
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_cible :
annotations.intent.choices
- dataset.input_column_name
- Le nom de la colonne d'entrée contenant le texte.
- La valeur par défaut est
data.text
. - Assurez-vous que cette variable est configurée en fonction de votre fichier JSON ou CSV d'entrée.
- dataset.target_column_name
- Le nom de la colonne cible contenant le texte.
- La valeur par défaut est
annotations.intent.choices
. - Assurez-vous que cette variable est configurée en fonction de votre fichier JSON ou CSV d'entrée.
- 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
ouauto
. - Si
ai_center
est sélectionné, seuls les fichiersJSON
sont pris en charge. Assurez-vous également de remplacer la valeur de dataset.target_column_name parannotations.sentiment.choices
siai_center
est sélectionné. - Si
auto
est sélectionné, les fichiersCoNLL
etJSON
sont pris en charge.
- BOW.hyperparameter_search.enable
- La valeur par défaut de ce paramètre est
True
. Si cette option est laissée activée, elle trouvera le modèle le plus performant dans la période donnée et les ressources de calcul. - Cela générera également un fichier PDF
HyperparameterSearch_report
pour présenter les variations des paramètres qui ont été essayés.
- La valeur par défaut de ce paramètre est
- BOW.hyperparameter_search.timeout
- Durée maximale d'exécution autorisée en secondes de la recherche d'hyperparamètres.
- La valeur par défaut est
1800
.
- BOW.explain_inference
- Lorsqu'il est défini sur
True
, pendant la période d'inférence lorsque le modèle est utilisé en tant que compétence ML, certains des n-grammes les plus importants seront également renvoyés avec la prédiction. - La valeur par défaut est
False
.
- Lorsqu'il est défini sur
Variables facultatives
True
, les valeurs optimales de ces variables sont recherchées. Pour que les paramètres facultatifs suivants soient utilisés par le modèle, définissez la variable de recherche BOW.hyperparameter_search.enable sur False
:
- BOW.lr_kwargs.class_weight
- Les valeurs prises en charge sont :
balanced
ouNone
.
- Les valeurs prises en charge sont :
- BOW.plage_ngram
- Plage de longueurs de séquence de mots consécutifs pouvant être considérés comme des caractéristiques du modèle.
- Assurez-vous de suivre ce format :
(1, x)
, oùx
est la longueur de séquence maximale que vous souhaitez autoriser.
- ARC.min_df
- Utilisé pour définir le nombre minimum d'occurrences du n-gramme dans l'ensemble de données à considérer comme une entité.
- Les valeurs recommandées sont comprises entre
0
et10
.
- dataset.text_pp_remove_stop_words
- Utilisé pour configurer si les mots vides doivent être inclus ou non dans la recherche (par exemple, des mots comme
the
,or
). - Les valeurs prises en charge sont :
True
ouFalse
.
- Utilisé pour configurer si les mots vides doivent être inclus ou non dans la recherche (par exemple, des mots comme
Le rapport d'évaluation est un fichier PDF contenant les informations suivantes dans un format lisible par l'homme :
- ngrammes par classe
- Diagramme de rappel de précision
- Rapport de classification
- Matrice de confusion
- Meilleurs paramètres de modèle pour la recherche d'hyperparamètres
ngrammes par classe
Cette section contient les 10 principaux n-grammes qui affectent la prédiction du modèle pour cette classe. Il existe une table différente pour chaque classe sur laquelle le modèle a été entraîné.
Diagramme de rappel de précision
Vous pouvez utiliser ce diagramme et le tableau pour vérifier la précision, le compromis de rappel, ainsi que les scores f1 du modèle. Les seuils et les valeurs de précision et de rappel correspondantes sont également fournis dans un tableau sous ce diagramme. Ce tableau choisira 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 de rappel de précision pour chaque classe.
Pour obtenir un exemple de diagramme de rappel de précision, consultez la figure ci-dessous.
Pour obtenir un exemple de table de rappel de précision, consultez le tableau ci-dessous.
Précision | Rappel | Seuil |
---|---|---|
0.8012232415902141 | 0.6735218508997429 | 0.30539842728983285 |
0.8505338078291815 | 0.6143958868894601 | 0.37825683923133907 |
0.9005524861878453 | 0.4190231362467866 | 0.6121292357073038 |
0.9514563106796117 | 0.2519280205655527 | 0.7916427288647211 |
Rapport de classification
Le rapport de classification contient les informations suivantes :
- Libellé - la partie libellée de l'ensemble de tests
- Précision - l'exactitude de la prédiction
- Rappel - instances pertinentes qui ont été récupérées
- Score F1 - la moyenne géométrique entre la précision et le rappel ; vous pouvez utiliser ce score pour comparer deux modèles
- Prise en charge (Support) - le nombre de fois qu'un certain libellé apparaît dans l'ensemble de tests
Pour obtenir un exemple de rapport de classification, consultez le tableau ci-dessous.
Label | Précision | Rappel | Score F1 | Assistance |
---|---|---|---|---|
0.0 | 0.805 | 0.737 | 0.769 | 319 |
1.0 | 0.731 | 0.812 | 0.77 | 389 |
2,0 | 0.778 | 0.731 | 0.754 | 394 |
3.0 | 0.721 | 0.778 | 0.748 | 392 |
4.0 | 0.855 | 0.844 | 0.85 | 385 |
5.0 | 0.901 | 0.803 | 0.849 | 395 |
Matrice de confusion
Meilleurs paramètres de modèle pour la recherche d'hyperparamètres
True
, les meilleurs paramètres de modèle sélectionnés par l'algorithme sont affichés dans ce tableau. Pour réentraîner le modèle avec des paramètres différents non couverts par la recherche par hyperparamètres , vous pouvez également définir ces paramètres manuellement dans les variables d'environnement. Pour plus d'informations à ce sujet, consultez la section (doc:light-text-classification#environment-variables).
Pour obtenir un exemple de ce rapport, consultez le tableau ci-dessous.
Nom | Valeur (Value) |
---|---|
BOW.plage_ngram | (1, 2) |
ARC.min_df | 2 |
BOW.lr_kwargs.class_weight | Équilibré |
dataset.text_pp_remove_stop_words | Vrai |
Rapport de recherche d'hyperparamètres
True
. Le rapport contient les meilleures valeurs pour les variables facultatives et un diagramme pour afficher les résultats.
Fichiers JSON
Vous pouvez trouver des 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.