Dela via


Anpassa personligt identifierande information (PII) till din domän

Översikt

För att anpassa och anpassa sig till kundens anpassade vokabulär som används för att identifiera entiteter (kallas även "kontexten") entitySynonyms gör funktionen att kunderna kan definiera sina egna synonymer för specifika entitetstyper. Målet med den här funktionen är att hjälpa till att identifiera entiteter i kontexter som modellen inte är bekant med men som används i kundens indata genom att säkerställa att kundens unika termer identifieras och associeras korrekt under identifieringsprocessen.

Detta anpassar den fördefinierade PII-tjänsten som är tränad att identifiera entiteter baserat på allmän domäntext som kanske inte matchar kundens anpassade vokabulär för indata, till exempel att skriva "BAN" i stället för "InternationalBankAccountNumber".

Det innebär att PII-identifiering kan fånga känslig information även när den skrivs i olika format, slang eller tillfälligt språk. Det gör systemet bättre på att skydda integriteten i verkliga situationer.

Vi rekommenderar starkt att kunderna först testar kvaliteten på förutsägelserna utan att introducera synonymer och endast använder dem om modellen inte fungerar bra. Till exempel kan "Org" vara något som modellen redan förstår som "organisation" och det finns inget behov av att använda synonymfunktionen.

Efter att ha testat tjänsten på sina data kan kunderna använda entitySynonyms för att:

API-schema för parametern "entitySynoyms"

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

Användningsriktlinjer

  1. Synonymer måste begränsas till fraser som refererar direkt till typen och bevara semantisk korrekthet. För entitetstypen InternationalBankAccountNumber kan en giltig synonym till exempel vara "Finansiellt Kontonummer" eller "FAN". Men ordet "insättning" kan dock associeras med typ, eftersom det inte direkt har en innebörd av ett bankkontonummer och därför inte bör användas.
  2. Synonymer bör vara landagnostiska. Till exempel skulle "tyskt pass" inte vara till hjälp att inkludera.
  3. Synonymer kan inte återanvändas för mer än en entitetstyp.
  4. Den här synonymigenkänningsfunktionen accepterar endast en delmängd av entitetstyper som stöds av tjänsten. De entitetstyper som stöds och exempel synonymer är:
Entitetstyp som stöds Enhetstyp Exempel synonymer
ABA-routningsnummer ABA-routingnummer Routningsöverföringsnummer (RTN)
Adress Adress Mitt hem är
Ålder Ålder År, ålder i år, aktuell ålder, personens ålder, biologisk ålder
Bankkontonummer Bankkontonummer Bankkontonummer, sparkontonummer, lönekontonummer, finansiellt kontonummer
Kreditkortsnummer CreditCard-nummer Cc-nummer, betalkortsnummer, kredit acct nr.
Datum Datum och tid Givet datum, specificerat datum
Födelsedatum Födelsedatum Födelsedag, DOB, födelsedatum
Internationellt bankkontonummer Internationellt bankkontonummer IBAN, internationellt bankkontonummer.
Organisation Organisation företag, affärsverksamhet, firma, bolag, byrå, grupp, institution, enhet, juridisk enhet, part, svarande, kärande, svarande, jurisdiktion, partner, leverantör, facilitet, praktik, nätverk, institution, verksamhet, LLC, Inc, LLP, inkorporerad, arbetsgivare, varumärke, dotterbolag
Person Person Namn, individ, kontoinnehavare
Persontyp Persontyp Roll, titel, position
Telefonnummer Telefonnummer Fast telefon, mobiltelefon, mobil
Swift Code SWIFTCode SWIFT-kod, BIC (bankidentifierarkod), SWIFT-identifierare

Anpassa PII-utdata genom att ange värden som ska undantas

Alternativet valueExclusionPolicy gör det möjligt för kunder att anpassa PII-tjänsten för scenarier där kunder föredrar att vissa termer inte identifieras och redigeras även om dessa termer tillhör en PII-kategori som de är intresserade av att identifieras. En polismyndighet kanske till exempel vill att personuppgifter ska redigeras i de flesta fall, med undantag för termer som "polis", "misstänkt" och "vittne".

I följande exempel kan kunder använda valueExclusionPolicy alternativet för att ange en lista med värden som de inte vill ska identifieras eller redigeras från indatatexten. Om användaren i exemplet nedan anger värdet "1 Microsoft Way, Redmond, WA 98052, USA", även om entiteten Address är aktiverad, redigeras inte det här värdet eller anges i de returnerade API-nyttolastutdata.

En delmängd av det angivna exkluderade värdet, till exempel "1 Microsoft Way" utesluts inte.

Inmatning

{ 
  "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" 
      } 
    ] 
  } 
} 

Utgång

{ 
    "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" 
    } 
} 

Anpassa PII-identifiering med din egen regex (endast tillgänglig för text-PII-behållare)

Kunder kan nu anpassa PII-tjänstens identifiering genom att ange sin egen regex med hjälp av en konfigurationsfil för regex-igenkänning. Se våra guider för containrar för en handledning om hur du installerar och kör PII-identifieringscontainrar (personligt identifierbar information).

Anmärkning

Detta är endast tillgängligt för TEXT-PII-containern

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 är filsökvägen för de användardefinierade regex-reglerna.

Filformat för Regex-igenkänning

[ 
    { 
      "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" 
            ] 
          } 
        ], 
      } 
    } 
] 

Översikt över varje regex-igenkänningsfilparameter

Parameter Underparametrar och beskrivningar
name Kategori, typ och tagg som ska returneras om det finns en regexmatchning.
decription (valfritt) Beskrivning av användarläsbara regler.
regexPatterns Lista över regexmönster som används för att hitta entiteter.
- id: Identifierare för regex-mönstret.
- matchScore: Konfidenspoäng för regex-matchningar.
- locales: Språk som är giltiga för regex-mönstret.
matchcontext Regex-mönster som ger kontext till matchade entiteter. Kontextmatchning är en dubbelriktad sökning från den matchade entiteten som ökar konfidenspoängen om den hittas. Om flera tips stöder en matchning används tipset med den högsta poängen.
- hints: Lista över regex-mönster som ger kontext till matchade entiteter.
- hintText: Regex-mönster som ger kontext till matchade entiteter.
- boostingScore: (valfritt) Poäng som lagts till i konfidenspoäng från en matchad entitet.
- locales: Språk som är giltigt för hintText.
- contextLimit: (valfritt) Avstånd från den matchade entiteten för att söka efter kontext.

Loggning / Skogsavverkning

Om du vill visa information om körningen regexRuleslägger du till följande egenskap för att aktivera felsökningsloggning: 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 

Regex-regelbegränsningar

  • Regelnamn måste börja med "CE_"
  • Regelnamn måste vara unika.
  • Regelnamn får endast använda alfanumeriska tecken och understreck ("_")
  • Regex-mönster följer formatet för reguljära .NET-uttryck. Mer information finns i vår dokumentation om reguljära .NET-uttryck .