Compétence cognitive Reconnaissance d’entités (v2)

La compétence Reconnaissance d’entités (v2) extrait les entités de différents types du texte. Cette compétence utilise les modèles Machine Learning fournis par Analyse de texte dans les services Azure AI.

Important

La compétence de reconnaissance des entités nommées (v2) (Microsoft.Skills.Text.NamedEntityRecognitionSkill) est désormais abandonnée et remplacée par Microsoft.Skills.Text.V3.EntityRecognitionSk. Suivez les recommandations de la page Compétences déconseillées pour migrer vers une compétence prise en charge.

Remarque

Si vous élargissez le champ en augmentant la fréquence des traitements, en ajoutant des documents supplémentaires ou en ajoutant plusieurs algorithmes d’IA, vous devez attacher une ressource de service Azure AI facturable. Des frais sont applicables durant l’appel des API dans les services Azure AI ainsi que pour l’extraction d’images durant la phase d’extraction du contenu des documents d’Azure AI Search. L’extraction de texte à partir des documents est gratuite.

L'exécution des compétences intégrées est facturée au prix actuel du paiement à l'utilisation des services Azure AI. Les prix appliqués pour l'extraction d'images sont présentés sur la page de tarification d’Azure AI Search.

@odata.type

Microsoft.Skills.Text.EntityRecognitionSkill

Limites de données

La taille maximale d’un enregistrement doit être de 50 000 caractères telle que mesurée par String.Length. Si vous devez subdiviser vos données avant de les envoyer à l’extracteur de phrases clés, envisagez d’utiliser la compétence Fractionnement de texte. Si vous utilisez une compétence de fractionnement de texte, définissez la longueur de la page sur 5 000 pour obtenir les meilleures performances.

Paramètres de la compétence

Les paramètres respectent la casse et sont tous facultatifs.

Nom du paramètre Description
categories Tableau des catégories à extraire. Types de catégorie possibles : "Person", "Location", "Organization", "Quantity", "Datetime", "URL", "Email". Si aucune catégorie n’est précisée, tous les types sont retournés.
defaultLanguageCode Code de langue du texte d’entrée. Langues prises en charge : ar, cs, da, de, en, es, fi, fr, hu, it, ja, ko, nl, no, pl, pt-BR, pt-PT, ru, sv, tr, zh-hans. Les catégories d’entités ne sont pas toutes prises en charge pour toutes les langues. Consultez la remarque ci-dessous.
minimumPrecision Valeur comprise entre 0 et 1 Si le score de confiance (dans la sortie namedEntities) est inférieur à cette valeur, l’entité n’est pas retournée. La valeur par défaut est 0.
includeTypelessEntities Affectez la valeur true si vous souhaitez reconnaître les entités connues qui ne correspondent pas aux catégories actuelles. Les entités reconnues sont retournées dans le champ de sortie complexe entities. Par exemple, « Windows 10 » est une entité bien connue (un produit), mais étant donné que la catégorie « Produits » n’est pas prise en charge, cette entité est incluse dans le champ de sortie des entités. La valeur par défaut est false

Entrées de la compétence

Nom de l'entrée Description
languageCode facultatif. La valeur par défaut est "en".
text Texte à analyser.

Sorties de la compétence

Remarque

toutes les catégories d’entités ne sont pas prises en charge pour toutes les langues. Les types de catégories d’entités "Person", "Location" et "Organization" sont pris en charge pour la liste complète des langues ci-dessus. Seules les langues de, en, es, fr et zh-hans prennent en charge l’extraction des types "Quantity", "Datetime", "URL" et "Email". Pour plus d’informations, consultez Langues et régions prises en charge par l’API Analyse de texte.

Nom de sortie Description
persons Tableau de chaînes représentant chacune le nom d’une personne.
locations Tableau de chaînes représentant chacune un lieu.
organizations Tableau de chaînes représentant chacune une organisation.
quantities Tableau de chaînes représentant chacune une quantité.
dateTimes Tableau de chaînes représentant chacune une valeur DateTime (telle qu’elle apparaît dans le texte).
urls Tableau de chaînes représentant chacune une URL.
emails Tableau de chaînes représentant chacune un e-mail.
namedEntities Tableau de types complexes contenant les champs suivants :
  • catégorie
  • la valeur (le nom réel de l’entité) ;
  • le décalage (l’emplacement où elle a été trouvée dans le texte) ;
  • confiance (une valeur plus élevée signifie qu’il s’agit d’une entité réelle)
entities Tableau de types complexes contenant des informations détaillées sur les entités extraites du texte, avec les champs suivants
  • name (nom réel de l’entité. Cela représente un formulaire « normalisé »)
  • wikipediaId
  • wikipediaLanguage
  • wikipediaUrl (lien vers la page Wikipedia relative à l’entité)
  • bingId
  • type (catégorie de l’entité reconnue)
  • subType (disponible uniquement pour certaines catégories ; il offre une vue plus précise du type d’entité)
  • matches (collection complexe contenant)
    • text (texte brut pour l’entité)
    • offset (emplacement où cela a été trouvé)
    • length (longueur du texte brut d’entité)

Exemple de définition

  {
    "@odata.type": "#Microsoft.Skills.Text.EntityRecognitionSkill",
    "categories": [ "Person", "Email"],
    "defaultLanguageCode": "en",
    "includeTypelessEntities": true,
    "minimumPrecision": 0.5,
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "persons",
        "targetName": "people"
      },
      {
        "name": "emails",
        "targetName": "contact"
      },
      {
        "name": "entities"
      }
    ]
  }

Exemple d’entrée

{
    "values": [
      {
        "recordId": "1",
        "data":
           {
             "text": "Contoso corporation was founded by John Smith. They can be reached at contact@contoso.com",
             "languageCode": "en"
           }
      }
    ]
}

Exemple de sortie

{
  "values": [
    {
      "recordId": "1",
      "data" : 
      {
        "persons": [ "John Smith"],
        "emails":["contact@contoso.com"],
        "namedEntities": 
        [
          {
            "category":"Person",
            "value": "John Smith",
            "offset": 35,
            "confidence": 0.98
          }
        ],
        "entities":  
        [
          {
            "name":"John Smith",
            "wikipediaId": null,
            "wikipediaLanguage": null,
            "wikipediaUrl": null,
            "bingId": null,
            "type": "Person",
            "subType": null,
            "matches": [{
                "text": "John Smith",
                "offset": 35,
                "length": 10
            }]
          },
          {
            "name": "contact@contoso.com",
            "wikipediaId": null,
            "wikipediaLanguage": null,
            "wikipediaUrl": null,
            "bingId": null,
            "type": "Email",
            "subType": null,
            "matches": [
            {
                "text": "contact@contoso.com",
                "offset": 70,
                "length": 19
            }]
          },
          {
            "name": "Contoso",
            "wikipediaId": "Contoso",
            "wikipediaLanguage": "en",
            "wikipediaUrl": "https://en.wikipedia.org/wiki/Contoso",
            "bingId": "349f014e-7a37-e619-0374-787ebb288113",
            "type": null,
            "subType": null,
            "matches": [
            {
                "text": "Contoso",
                "offset": 0,
                "length": 7
            }]
          }
        ]
      }
    }
  ]
}

Notez que les décalages renvoyés pour les entités dans la sortie de cette qualification le sont directement à partir de l'API Analyse de texte, ce qui signifie que si vous les utilisez pour indexer dans la chaîne d'origine, vous devez utiliser la classe StringInfo dans .NET afin d'extraire le bon contenu. Pour plus d’informations, cliquez ici.

Cas d’avertissement

Si le code de langue du document n’est pas pris en charge, un avertissement est retourné et aucune entité n’est extraite.

Voir aussi