Condividi tramite


Adattamento delle informazioni personali (PII) al dominio

Informazioni generali

Per adattarsi al vocabolario personalizzato di un cliente usato per identificare le entità (dette anche "contesto"), la funzionalità entitySynonyms consente ai clienti di definire i propri sinonimi per tipi di entità specifici. L'obiettivo di questa funzionalità è aiutare a rilevare le entità nei contesti con cui il modello non ha familiarità, ma vengono usate negli input del cliente assicurando che i termini univoci del cliente vengano riconosciuti e associati correttamente durante il processo di rilevamento.

Questo adatta il servizio PII predefinito sottoposto a training per rilevare le entità in base al testo di dominio generale che potrebbe non corrispondere al vocabolario di input personalizzato di un cliente, ad esempio la scrittura di "BAN" anziché "InternationalBankAccountNumber".

Ciò significa che il rilevamento delle informazioni personali può intercettare le informazioni riservate anche quando viene scritto in stili, gergo o linguaggio casuale diversi. Questo rende il sistema migliore per proteggere la privacy in situazioni reali.

È consigliabile che i clienti verifichino prima di tutto la qualità delle stime senza introdurre sinonimi e li usino solo se il modello non funziona correttamente. Ad esempio, "Org" può essere qualcosa che il modello riconosce già come "organizzazione" e non è necessario usare la funzionalità Synonym.

Dopo aver testato il servizio sui dati, i clienti possono usare entitySynonyms per:

Schema API per il parametro 'entitySynoyms'

{ 
    "parameter":  
    "entitySynonyms": [  
        { 
            "entityType": "InternationalBankAccountNumber", 
            "synonyms": [ {"synonym": "BAN", "language": "en"} ] 
        } 
    ]
} 

Linee guida per l'utilizzo

  1. I sinonimi devono essere limitati alle frasi che fanno riferimento direttamente al tipo e mantenere la correttezza semantica. Ad esempio, per il tipo di InternationalBankAccountNumberentità , un sinonimo valido può essere "Numero conto finanziario" o "FAN". Tuttavia, la parola "deposito" anche se può essere associata al tipo, in quanto non ha direttamente un significato di un numero di conto bancario e pertanto non deve essere usata.
  2. I sinonimi devono essere indipendenti dal paese. Ad esempio, "Passaporto tedesco" non sarebbe utile da includere.
  3. I sinonimi non possono essere riutilizzati per più di un tipo di entità.
  4. Questa funzionalità di riconoscimento dei sinonimi accetta solo un subset di tipi di entità supportati dal servizio. I tipi di entità supportati e i sinonimi di esempio includono:
Tipo di entità supportato Tipo di entità Sinonimi di esempio
Numero di registrazione ABA Numero di Instradamento ABA Codice di instradamento (RTN)
Indirizzo Indirizzo Il mio posto è
Età Età Anni, età in anni, età corrente, età della persona, età biologica
Numero conto corrente bancario Numero di Conto Bancario Numero conto corrente bancario, numero conto di risparmio, numero conto corrente, numero conto finanziario
Numero della carta di credito Numero di carta di credito Numero CC, numero carta di pagamento, n. conto di credito.
Dati Data e ora Data fornita, data specificata
Data di nascita DataDiNascita Compleanno, DOB, data di nascita
Numero conto corrente bancario internazionale Numero Internazionale di Conto Bancario IBAN, n. conto bancario internazionale.
Organizzazione Organizzazione società, azienda, ditta, corporazione, agenzia, gruppo, istituzione, ente, ente giuridico, parte, convenuto, attore, imputato, giurisdizione, partner, fornitore, struttura, pratica, rete, istituzione, impresa, Srl, Spa, Sas, incorporata, datore di lavoro, marchio, filiale
Persona Persona Nome, individuo, titolare del conto
Tipo di persona Tipo di Persona Ruolo, titolo, posizione
Numero di telefono Numero di telefono Rete fissa, cella, cellulare
Codice Swift Codice SWIFT Codice SWIFT, BIC (Codice Identificativo Bancario), Identificativo SWIFT

Personalizzazione dell'output delle informazioni personali specificando i valori da escludere

L'opzione valueExclusionPolicy consente ai clienti di adattare il servizio PII per scenari in cui preferiscono che determinati termini non vengano rilevati e oscurati, anche se tali termini rientrano in una categoria di PII che sono interessati a individuare. Ad esempio, un reparto di polizia potrebbe volere che gli identificatori personali vengano redatti nella maggior parte dei casi, ad eccezione dei termini "agente di polizia", "sospetto" e "testimone".

Nell'esempio seguente, i clienti possono usare l'opzione valueExclusionPolicy per specificare un elenco di valori che non vogliono essere rilevati o elaborati dal testo di input. Nell'esempio seguente, se l'utente specifica il valore "1 Microsoft Way, Redmond, WA 98052, US", anche se l'entità Address è attivata, questo valore non viene elaborato o elencato nell'output del payload dell'API restituito.

Non è escluso un subset del valore escluso specificato, ad esempio "1 Microsoft Way".

Inserimento

{ 
  "kind": "PiiEntityRecognition", 
  "parameters": { 
    "modelVersion": "latest", 
    "redactionPolicy": { 
      "policyKind": "characterMask", 
      "redactionCharacter": "-" 
    }, 
    "valueExclusionPolicy": { 
      "caseSensitive": false, 
      "excludedValues": { 
        "1 Microsoft Way, Redmond, WA 98052", 
        "1045 La Avenida St, Mountain View, CA 94043" 
      } 
    } 
  }, 
  "analysisInput": { 
    "documents": [ 
      { 
        "id": "1", 
        "text": "The police and John Doe inspected the storage garages located at 123 Main St, 1 Microsoft Way, Redmond, WA 98052, 456 Washington Blvd, Portland, OR, and 1045 La Avenida St, Mountain View, CA 94043" 
      } 
    ] 
  } 
} 

Risultato

{ 
    "kind": "PiiEntityRecognitionResults", 
    "results": { 
        "documents": [ 
            { 
                "redactedText": "The police and John Doe inspected the storage garages located at **********, 1 Microsoft Way, Redmond, WA 98052, ********************************, and 1045 La Avenida St, Mountain View, CA 94043" 
                "id": "1", 
                "entities": [ 
                    { 
                        "text": "John Doe", 
                        "category": "Person", 
                        "offset": 16, 
                        "length": 5, 
                        "confidenceScore": 0.98 
                    } 
                ], 
                "warnings": [] 
            } 
        ], 
        "errors": [], 
        "modelVersion": "2021-01-15" 
    } 
} 

Personalizzazione del rilevamento di PII tramite un'espressione regolare personalizzata (disponibile solo per il contenitore PII testuali)

I clienti possono ora adattare il rilevamento del servizio PII specificando la propria espressione regolare usando un file di configurazione di riconoscimento regex. Consulta le guide pratiche sui contenitori per un tutorial su come installare ed eseguire contenitori per la rilevazione delle Informazioni di Identificazione Personale (PII).

Annotazioni

Questa opzione è disponibile solo per il contenitore informazioni personali di testo

docker run --rm -it -p 5000:5000 --memory 8g --cpus 1 \ 
mcr.microsoft.com/azure-cognitive-services/textanalytics/pii:{IMAGE_TAG} \ 
Eula=accept \ 
Billing={ENDPOINT_URI} \ 
ApiKey={API_KEY} \ 
UserRegexRuleFilePath={REGEX_RULE_FILE_PATH} 

UserRegexRuleFilePath è il percorso del file delle regole regex definite dall'utente.

Formato del file per il riconoscimento delle regex

[ 
    { 
      "name": "USSocialSecurityNumber", // category, type and tag to be returned. This name must be unique 
      "description": "Rule to identify USSocialSecurityNumber in text", // used to describe the category 
      "regexPatterns": [ // list of regex patterns to identify the entities 
        { 
          "id": "StrongSSNPattern", // id for the regex pattern 
          "pattern": "(?<!\\d)([0-9]{3}-[0-9]{2}-[0-9]{4}|[0-9]{3} [0-9]{2} [0-9]{4}|[0-9]{3}.[0-9]{2}.[0-9]{4})(?!\\d)", // regex pattern to provide matches 
          "matchScore": 0.65, // score to assign if the regex matches 
          "locales": [ // list of languages valid for this regex 
            "en" 
         ] 
        }, 
        { 
          "id": "WeakSSNPattern", 
          "pattern": "(?<!\\d)([0-9]{9})(?!\\d)", 
          "matchScore": 0.55, 
          "locales": [ 
            "en" 
          ] 
        } 
      ], 
      "matchContext": { // patterns to give matches context 
        "hints": [ 
          { 
            "hintText": "ssa(\\s*)number", // regex pattern to find to give a match context. 
            "boostingScore": 0.2, // score to boost match confidence if hint is found 
            "locales": [ // list of languages valid for this context 
              "en" 
            ] 
          }, 
          { 
            "hintText": "social(\\s*)security(\\s*)(#*)", 
            "boostingScore": 0.2, 
            "locales": [ 
              "en" 
            ] 
          } 
        ], 
      } 
    } 
] 

Panoramica di ogni parametro del file di riconoscimento regex

Parametro Sottoparametri e descrizioni
name Categoria, tipo e tag da restituire se esiste una corrispondenza regex.
decription (facoltativo) Descrizione della regola leggibile dall'utente.
regexPatterns Elenco di modelli regex usati per trovare le entità.
- id: identificatore del modello regex.
- matchScore: punteggio di confidenza per le corrispondenze regex.
- locales: lingue valide per il modello regex.
matchcontext Modelli regex che forniscono contesto per le entità corrispondenti. La corrispondenza del contesto è una ricerca bidirezionale dall'entità corrispondente che aumenta il punteggio di affidabilità nel caso in cui l'entità corrispondente venga trovata. Se vengono usati più suggerimenti a supporto di una corrispondenza, viene utilizzato il suggerimento con il punteggio più alto.
- hints: elenco di modelli regex che danno contesto alle entità corrispondenti.
- hintText: modello Regex che fornisce il contesto per le entità corrispondenti.
- boostingScore: (facoltativo) Punteggio aggiunto al punteggio di attendibilità da un'entità corrispondente.
- locales: linguaggio valido per suggerimento di testo.
- contextLimit: (facoltativo) Distanza dall'entità corrispondente per cercare il contesto.

Registrazione

Per visualizzare informazioni sull'esecuzione di regexRules, aggiungere la seguente proprietà per abilitare la registrazione di debug: Logging:Console:LogLevel:Default=Debug

docker run --rm -it -p 5000:5000 --memory 8g --cpus 1 \ 
mcr.microsoft.com/azure-cognitive-services/textanalytics/pii:{IMAGE_TAG} \ 
Eula=accept \ 
Billing={ENDPOINT_URI} \ 
ApiKey={API_KEY} \ 
UserRegexRuleFilePath={REGEX_RULE_FILE_PATH} \ 
Logging:Console:LogLevel:Default=Debug 

Vincoli delle regole del modello regex

  • I nomi delle regole devono iniziare con "CE_"
  • I nomi delle regole devono essere univoci.
  • I nomi delle regole possono usare solo caratteri alfanumerici e caratteri di sottolineatura ("_")
  • I modelli regex seguono il formato espressioni regolari .NET. Per altre informazioni , vedere la documentazione sulle espressioni regolari .NET .