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 :
|
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 :
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 maskingMode de . Si maskingMode c’est replace le 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 none le 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.