Compétence cognitive de détection d’informations d’identification personnelle

La compétence Détection des informations d'identification personnelle extrait les informations personnelles d'un texte d'entrée et vous donne la possibilité de les masquer. Cette compétence utilise les modèles de détection fournis dans Azure AI Language.

Remarque

Cette compétence est liée aux services Azure AI et nécessite une ressource facturable pour les transactions qui dépassent 20 documents par indexeur et par jour. L'exécution des compétences intégrées est facturée au prix actuel du paiement à l'utilisation des services Azure AI.

@odata.type

Microsoft.Skills.Text.PIIDetectionSkill

Limites de données

La taille maximale d’un enregistrement doit être de 50 000 caractères telle que mesurée par String.Length. Vous pouvez utiliser la compétence Fractionnement de texte pour la segmentation des données. Définissez la longueur de la page sur 5 000 pour obtenir les meilleurs résultats.

Paramètres de la compétence

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

Nom du paramètre Description
defaultLanguageCode (Facultatif) Code de langue à appliquer aux documents qui ne spécifient pas explicitement une langue. Si le code de langue par défaut n’est pas spécifié, l’anglais (en) est le code de langue par défaut.
Voir la liste complète des langues prises en charge.
minimumPrecision Valeur comprise entre 0.0 et 1.0. Si le score de confiance (dans la piiEntities sortie) est inférieur à la valeur définie minimumPrecision , l’entité n’est pas retournée ou masquée. L’option par défaut est 0.0.
maskingMode Paramètre qui fournit différentes façons de masquer les informations personnelles détectées dans le texte d'entrée. Les options suivantes sont prises en charge :
  • "none" (valeur par défaut) : aucun masquage ne se produit et la maskedText sortie n’est pas retournée.
  • "replace" : remplace les entités détectées par le caractère spécifié dans le paramètre maskingCharacter. Le caractère est répété à la longueur de l’entité détectée afin que les décalages correspondent correctement au texte d’entrée et à la sortie maskedText.
maskingCharacter Caractère utilisé pour masquer le texte si le paramètre maskingMode est défini sur replace. L’option suivante est prise en charge : * (par défaut). Ce paramètre ne peut être null que s’il maskingMode n’est pas défini sur replace.
domain (Facultatif) Une valeur de chaîne, si elle est spécifiée, définit le domaine sur un sous-ensemble des catégories d’entités. Les valeurs possibles incluent : "phi" (détecter les informations de santé confidentielles uniquement), "none".
piiCategories (Facultatif) Si vous souhaitez spécifier les entités détectées et retournées, utilisez ce paramètre facultatif (défini comme une liste de chaînes) avec les catégories d’entités appropriées. Ce paramètre peut également vous permettre de détecter les entités qui ne sont pas activées par défaut pour la langue de votre document. Pour voir la liste complète, consultez Catégories d’entités de données personnelles prises en charge.
modelVersion (Facultatif) Spécifie la version du modèle à utiliser pour appeler la détection des informations d'identification personnelle. Il est défini par défaut sur la version la plus récente lorsqu’elle n’est pas spécifiée. Nous vous recommandons de ne pas spécifier cette valeur, sauf nécessité.

Entrées de la compétence

Nom de l'entrée Description
languageCode Chaîne indiquant la langue des enregistrements. Si ce paramètre n’est pas spécifié, le code de langue par défaut est utilisé pour l’analyse des enregistrements.
Voir la liste complète des langues prises en charge.
text Texte à analyser.

Sorties de la compétence

Nom de sortie Description
piiEntities Tableau de types complexes contenant les champs suivants :
  • "text" (Les informations d’identification personnelle réelles comme extraites)
  • "type"
  • "subType"
  • "score" (une valeur plus élevée signifie qu’il s’agit probablement d’une entité réelle)
  • "offset" (dans le texte d’entrée)
  • "length"

Pour voir la liste complète, consultez Catégories d’entités de données personnelles prises en charge.
maskedText Cette sortie varie en fonction maskingModede . Si maskingMode c’est replacele cas, la sortie est le résultat de chaîne du masquage effectué sur le texte d’entrée, comme décrit par le maskingMode. Si maskingMode c’est nonele cas, il n’y a pas de sortie.

Exemple de définition

  {
    "@odata.type": "#Microsoft.Skills.Text.PIIDetectionSkill",
    "defaultLanguageCode": "en",
    "minimumPrecision": 0.5,
    "maskingMode": "replace",
    "maskingCharacter": "*",
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "piiEntities"
      },
      {
        "name": "maskedText"
      }
    ]
  }

Exemple d’entrée

{
    "values": [
      {
        "recordId": "1",
        "data":
           {
             "text": "Microsoft employee with ssn 859-98-0987 is using our awesome API's."
           }
      }
    ]
}

Exemple de sortie

{
  "values": [
    {
      "recordId": "1",
      "data" : 
      {
        "piiEntities":[ 
           { 
              "text":"859-98-0987",
              "type":"U.S. Social Security Number (SSN)",
              "subtype":"",
              "offset":28,
              "length":11,
              "score":0.65
           }
        ],
        "maskedText": "Microsoft employee with ssn *********** is using our awesome API's."
      }
    }
  ]
}

Les décalages retournés pour les entités dans la sortie de cette compétence sont directement retournés à partir des API Language Service, ce qui signifie que si vous les utilisez pour indexer dans la chaîne d’origine, vous devez utiliser la classe StringInfo dans .NET pour extraire le contenu correct. Pour plus d’informations, consultez Prise en charge de plusieurs langues et des emojis dans les fonctionnalités du service de langage.

Erreurs et avertissements

Si le code de langue du document n’est pas pris en charge, un avertissement est retourné et aucune entité n’est extraite. Si votre texte est vide, un avertissement est renvoyé. Si votre texte comprend plus de 50 000 caractères, seuls les 50 000 premiers caractères sont analysés et un avertissement est émis.

Si la compétence renvoie un avertissement, la sortie maskedText peut être vide, ce qui peut avoir un impact sur toutes les compétences qui attendent la sortie en aval. Vous devez donc rechercher tous les avertissements liés à une sortie manquante lors de l'écriture de la définition de votre ensemble de compétences.

Voir aussi