Reconnaissance d’entité nommée

Important

Le support de Machine Learning Studio (classique) prend fin le 31 août 2024. Nous vous recommandons de passer à Azure Machine Learning avant cette date.

À partir du 1er décembre 2021, vous ne pourrez plus créer de nouvelles ressources Machine Learning Studio (classique). Jusqu’au 31 août 2024, vous pouvez continuer à utiliser les ressources Machine Learning Studio (classique) existantes.

La documentation ML Studio (classique) est en cours de retrait et ne sera probablement plus mise à jour.

Reconnaît les entités nommées dans une colonne de texte.

catégorie : Analyse de texte

Notes

s’applique à: Machine Learning Studio (classic) uniquement

Des modules par glisser-déposer similaires sont disponibles dans Concepteur Azure Machine Learning.

Vue d’ensemble du module

cet article explique comment utiliser le module de reconnaissance d’entités nommées dans Machine Learning Studio (classic) pour identifier les noms des éléments, tels que les personnes, les sociétés ou les emplacements dans une colonne de texte.

La reconnaissance d'entité nommée est un domaine de recherche important de l'apprentissage automatique et du traitement du langage naturel (NLP), car elle permet de répondre à plusieurs questions du monde réel, telles que :

  • Un tweet contient-il le nom d'une personne ? Le tweet fournit-il également son emplacement actuel ?

  • Quelles entreprises sont mentionnées dans un article ?

  • Les produits mentionnés dans des plaintes ou des revues ont-ils été spécifiés ?

Pour obtenir une liste d'entités nommées, vous fournissez comme entrée un jeu de données contenant une colonne de texte. Le module de reconnaissance d’entité nommée identifie alors trois types d’entités : personnes (par), emplacements (LOC) et organisations (org).

Le module étiquette également les séquences en fonction de l’endroit où ces mots ont été trouvés, afin que vous puissiez utiliser les termes pour une analyse plus poussée.

Par exemple, le tableau suivant montre une phrase d'entrée simple et les termes et valeurs générés par le module :

Entrer du texte Sortie de module
« Boston est une ville agréable pour y vivre. » 0,Boston,0,6,LOC

La sortie peut être interprétée comme suit :

  • Le premier « 0 » signifie que cette chaîne est le premier article d'entrée pour le module.

    Comme un seul article peut avoir plusieurs entités, le numéro de ligne d'article dans la sortie est également important pour mapper les fonctionnalités aux articles.

  • Boston est l’entité reconnue.

  • Le 0 qui suit Boston signifie que l’entité Boston démarre à partir de la première lettre de la chaîne d’entrée. Les index sont de base zéro.

  • 6 signifie que la longueur de l’entité Boston est 6.

  • LOC signifie que l’entité Boston est un lieu ou un emplacement. Les autres types d’entités nommés pris en charge sont person ( PER ) et Organization ( ORG ).

Comment configurer la reconnaissance d’entités nommées

  1. Ajoutez le module de reconnaissance d’entité nommé à votre expérience dans Studio (Classic). vous pouvez trouver le module dans la catégorie Analyse de texte .

  2. Sur l’entrée nommée Story, connectez un jeu de données contenant le texte à analyser.

    « Story » doit contenir le texte à partir duquel extraire les entités nommées.

    La colonne utilisée comme récit doit contenir plusieurs lignes, où chaque ligne se compose d’une chaîne. la chaîne peut être abrégée, comme une phrase, ou longue, comme un article d’actualité.

    Vous pouvez connecter n’importe quel jeu de données qui contient une colonne de texte. Toutefois, si le jeu de données d’entrée contient plusieurs colonnes, utilisez l' option Sélectionner des colonnes dans le jeu de données pour choisir uniquement la colonne qui contient le texte que vous souhaitez analyser.

    Notes

    La deuxième entrée, ressources personnalisées (zip), n’est pas prise en charge pour l’instant.

    À l’avenir, vous pouvez ajouter des fichiers de ressources personnalisés ici pour identifier les différents types d’entités.

  3. Exécutez l’expérience.

Résultats

Le module génère un jeu de données contenant une ligne pour chaque entité qui a été reconnue, ainsi que les décalages.

Étant donné que chaque ligne de texte d’entrée peut contenir plusieurs entités nommées, un numéro d’ID d’article est automatiquement généré et inclus dans la sortie, afin d’identifier la ligne d’entrée qui contenait l’entité nommée. L’ID d’article est basé sur l’ordre naturel des lignes dans le jeu de données d’entrée.

Vous pouvez convertir ce jeu de données de sortie au format CSV pour le télécharger ou l’enregistrer en tant que jeu de données en vue d’une réutilisation.

Utiliser la reconnaissance d’entités nommées dans un service Web

si vous publiez un service web à partir de Machine Learning Studio (classic) et que vous souhaitez utiliser le service web à l’aide de C#, Python ou un autre langage tel que R, vous devez d’abord implémenter le code de service fourni sur la page d’aide du service web.

Si votre service web propose plusieurs lignes de sortie, l'URL du service web que vous ajoutez à votre code C#, Python ou R doit avoir le suffixe scoremultirow au lieu de score.

Par exemple, supposons que vous utilisez l’URL suivante pour votre service Web : https://ussouthcentral.services.azureml.net/workspaces/<workspace id>/services/<service id>/score

Pour activer la sortie à plusieurs lignes, modifiez l’URL en https://ussouthcentral.services.azureml.net/workspaces/<workspace id>/services/<service id>/scoremultirow

Pour publier ce service Web, vous devez ajouter un module exécuter le script R supplémentaire après le module de reconnaissance d’entités nommées , afin de transformer la sortie à plusieurs lignes en une seule délimitée par des points-virgules (;). La raison de la consolidation des lignes de sortie en une seule ligne est de renvoyer plusieurs entités par ligne d'entrée.

Par exemple, supposons que vous avez une phrase d'entrée avec deux entités nommées. Plutôt que de renvoyer deux lignes pour chaque ligne d'entrée, vous pouvez renvoyer une seule ligne avec plusieurs entités, séparées par des points-virgules, comme illustré ici :

Texte d'entrée Sortie du service web
Microsoft a deux sites à Boston. 0,Microsoft,0,9,ORG,;,0,Boston,38,6,LOC,;

L'exemple de code suivant montre comment procéder :

# Map 1-based optional input ports to variables  
d <- maml.mapInputPort(1) # class: data.frame  
y=length(d) ##size of cols  
x=dim(d)[1] ##size of rows  
longd=matrix("NA",nrow=1,ncol=x*(y+1))  
for (i in 1:x)  
  {   
     for (j in 1:y)  
     {  
       longd[1,j+(i-1)*(y+1)]=toString(d[i,j])   
     }  
     longd[1,j+(i-1)*(y+1)+1]=c(";")  
  }   

final_output=as.data.frame(longd)  
# Select data.frame to be sent to the output Dataset port  
maml.mapOutputPort("final_output");  

Exemples

Ce blog fournit une explication détaillée du fonctionnement de la reconnaissance d’entités nommées, de son arrière-plan et des applications possibles :

Consultez également les exemples d’expériences suivants dans le Azure ai Gallery pour obtenir des démonstrations de l’utilisation des méthodes de classification de texte couramment utilisées dans machine learning :

Notes techniques

Support multilingue

Actuellement, le module Reconnaissance d'entité nommée prend en charge uniquement du texte en anglais. Il peut détecter des noms d'organisation, de personnes et d'emplacements dans des phrases en anglais. Si vous utilisez le module sur d’autres langues, vous risquez de ne pas obtenir d’erreur, mais les résultats ne sont pas aussi bons que pour le texte anglais.

La prise en charge d'autres langues pourra être activée en intégrant les composants multilingues fournis dans la boîte à outils Office Natural Language Toolkit.

Entrées attendues

Nom Type Description
Histoire Table de données Jeu de données d'entrée (DataTable) qui contient la colonne de texte que vous souhaitez analyser.
CustomResources Zip (Facultatif) Fichier au format ZIP qui contient des ressources personnalisées supplémentaires.

Cette option, non disponible, est fournie pour une compatibilité ascendante uniquement.

Sorties

Nom Type Description
Entités Table de données Liste de décalages de caractères et d'entités

Voir aussi

Analyse de texte
Hachage des caractéristiques
Scorer le modèle Vowpal Wabbit 7-4
Entraîner le modèle Vowpal Wabbit 7-4