Freigeben über


Anpassen von personenbezogenen Informationen (Personally Identifying Information, PII) an Ihre Domäne

Überblick

Um das benutzerdefinierte Vokabular eines Kunden zu berücksichtigen und anzupassen, das zum Identifizieren von Entitäten (auch als "Kontext" bezeichnet) verwendet wird, ermöglicht es entitySynonyms Kunden, ihre eigenen Synonyme für bestimmte Entitätstypen zu definieren. Ziel dieses Features ist es, Entitäten in Kontexten zu erkennen, mit denen das Modell nicht vertraut ist, aber in den Eingaben des Kunden verwendet werden, indem sichergestellt wird, dass die eindeutigen Ausdrücke des Kunden während des Erkennungsprozesses erkannt und ordnungsgemäß zugeordnet werden.

Dadurch wird der vorgefertigte PII-Dienst angepasst, der trainiert wird, Entitäten basierend auf allgemeinem Domänentext zu erkennen, der möglicherweise nicht mit dem benutzerdefinierten Eingabevokabular eines Kunden übereinstimmt, z. B. "BAN" anstelle von "InternationalBankAccountNumber".

Dies bedeutet, dass die PII-Erkennung vertrauliche Informationen erfassen kann, auch wenn sie in verschiedenen Stilen, Slang oder lässigen Sprachen geschrieben ist. Das macht das System besser zum Schutz der Privatsphäre in realen Situationen.

Wir empfehlen unseren Kunden dringend, zuerst die Qualität der Vorhersagen zu testen, ohne Synonyme einzuführen, und sie nur dann zu verwenden, wenn das Modell nicht gut abschneidet. Beispielsweise kann "Org" etwas sein, das das Modell bereits als "Organisation" versteht, und es ist nicht erforderlich, das Synonym-Feature zu verwenden.

Nach dem Testen des Dienstes mit ihren Daten können Kunden entitySynonyms nutzen, um:

  • Geben Sie bestimmte Entitäten innerhalb des vordefinierten Diensts an, für die benutzerdefinierte Synonymkontextwörter in ihrem Eingabevokabular vorhanden sind.
  • Listen Sie die benutzerdefinierten Synonyme auf.
  • Geben Sie die Sprache der einzelnen Synonyme an.

API-Schema für den Parameter 'entitySynoyms'

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

Nutzungsrichtlinien

  1. Synonyme müssen auf Ausdrücke beschränkt sein, die direkt auf den Typ verweisen und die semantische Korrektheit beibehalten. Für den Entitätstyp InternationalBankAccountNumberkönnte beispielsweise ein gültiges Synonym "Finanzkontonummer" oder "FAN" sein. Das Wort "Einzahlung" kann jedoch mit dem Typ verknüpft sein, da es nicht direkt eine Bedeutung einer Bankkontonummer hat und daher nicht verwendet werden sollte.
  2. Synonyme sollten länderunabhängig sein. Beispielsweise wäre es nicht hilfreich, „deutscher Reisepass” einzuschließen.
  3. Synonyme können nicht für mehrere Entitätstypen wiederverwendet werden.
  4. Dieses Synonymerkennungsfeature akzeptiert nur eine Teilmenge von Entitätstypen, die vom Dienst unterstützt werden. Zu den unterstützten Entitätstypen und Beispiel-Synonymen gehören:
Unterstützter Entitätstyp Entitätstyp Beispiel-Synonyme
ABA Routing Number (US-Bankleitzahl) ABARoutingNumber Routingtransitnummer (RTN)
Adresse Adresse Mein Ort ist
Alter Alter Jahre, Alter in Jahren, aktuelles Alter, Alter der Person, biologisches Alter
Bankkontonummer Bankkontonummer Bankkontonummer, Sparbuchnummer, Girokontonummer, Finanzkontonummer
Credit Card Number (Kreditkartennummer) KreditkarteNummer Kreditkartennummer, Zahlungskartennummer, Kreditkontonummer
Datum Datum/Uhrzeit Angegebenes Datum, festgelegtes Datum
Geburtsdatum Geburtsdatum Geburtstag, Geburtsdatum
Internationale Bankkontonummer Internationale Bankkontonummer IBAN, internationale Bankkontonummer
Organization Organization Unternehmen, Firma, Betrieb, Gesellschaft, Agentur, Gruppe, Institution, Entität, Rechtsträger, Partei, Antragsgegner, Kläger, Beklagter, Zuständigkeit, Partner, Anbieter, Einrichtung, Praxis, Netzwerk, Institution, Unternehmen, GmbH, Inc, LLP, eingetragen, Arbeitgeber, Marke, Tochtergesellschaft
Person Person Name, Einzelperson, Kontoinhaber
Personentyp Personentyp Rolle, Titel, Position
Telefonnummer Telefonnummer Festnetz, Handy, Mobiltelefon
SWIFT-Code SWIFTCode SWIFT-Code, BIC (Bank-Identifikationscode), SWIFT-Identifikator

Anpassen der PII-Ausgabe durch Angeben von auszuschließenden Werten

Die valueExclusionPolicy Option ermöglicht es Kunden, den PII-Dienst für Szenarien anzupassen, in denen sie bevorzugen, dass bestimmte Ausdrücke unentdeckt bleiben und redigiert werden, selbst wenn diese Ausdrücke in eine PII-Kategorie fallen, die für sie normalerweise von Interesse ist. Beispielsweise könnte eine Polizeibehörde in den meisten Fällen persönliche Daten unkenntlich machen, mit Ausnahme von Bezeichnungen wie "Polizeibeamter", "Verdächtiger" und "Zeuge".

Im folgenden Beispiel können Kunden die valueExclusionPolicy Option verwenden, um eine Liste mit Werten anzugeben, die nicht vom Eingabetext erkannt oder redagiert werden sollen. Wenn der Benutzer im folgenden Beispiel den Wert „1 Microsoft Way, Redmond, WA 98052, US” angibt, auch wenn die Adressentität aktiviert ist, wird dieser Wert nicht in der Ausgabe der zurückgegebenen API-Nutzlast redigiert oder aufgeführt.

Eine Teilmenge des angegebenen ausgeschlossenen Werts, z. B. "1 Microsoft Way", wird nicht ausgeschlossen.

Eingabe

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

Ausgabe

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

Anpassen der PII-Erkennung mithilfe Ihres eigenen regex (nur für Text-PII-Container verfügbar)

Kunden können die Erkennung des PII-Dienstes jetzt anpassen, indem sie ihre eigene Regex mit Hilfe einer speziellen Konfigurationsdatei für die Regex-Erkennung angeben. In unseren Container-Anleitungen finden Sie ein Tutorial zum Installieren und Ausführen von PII-Erkennungscontainern (Personally Identifiable Information, PII).

Hinweis

Dies ist nur für den Text-PII-Container verfügbar.

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 ist der Dateipfad der benutzerdefinierten regex-Regeln.

Regex-Erkennungsdateiformat

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

Übersicht über jeden Regex-Erkennungsdateiparameter

Parameter Unterparameter und Beschreibungen
name Kategorie, Typ und Tag, die zurückgegeben werden sollen, wenn eine RegEx-Übereinstimmung vorhanden ist.
decription (optional) Benutzerlesbare Regelbeschreibung.
regexPatterns Liste der regex-Muster, die zum Suchen von Entitäten verwendet werden.
- id: Bezeichner des regex-Musters.
- matchScore: Zuverlässigkeitsbewertung für RegEx-Übereinstimmungen.
- locales: Sprachen, die für das regex-Muster gültig sind.
matchcontext Regex-Muster, die Kontext für übereinstimmende Entitäten bereitstellen. Der Kontextabgleich ist eine bidirektionale Suche aus der übereinstimmenden Entität, die das Konfidenzergebnis erhöht, falls sie gefunden wurde. Wenn mehrere Hinweise eine Übereinstimmung unterstützen, wird der Hinweis mit der höchsten Bewertung unterstützt.
- hints: Liste der regex-Muster, die Kontext zu übereinstimmenden Entitäten geben.
- hintText: Regex-Muster, das Kontext für übereinstimmende Entitäten bereitstellt.
- boostingScore: (optional) Bewertung, die der Konfidenzbewertung aus einer übereinstimmenden Entität hinzugefügt wurde.
- locales: Sprache, die für „hintText” gültig ist.
- contextLimit: (optional) Abstand von der übereinstimmenden Entität, um nach Kontext zu suchen.

Protokollierung

Fügen Sie zum Anzeigen von Informationen zur ausgeführten regexRulesAusführung die folgende Eigenschaft hinzu, um die Debugprotokollierung zu aktivieren: 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-Regeleinschränkungen

  • Regelnamen müssen mit "CE_" beginnen.
  • Regelnamen müssen eindeutig sein.
  • Regelnamen dürfen nur alphanumerische Zeichen und Unterstriche ("_") verwenden.
  • Regex-Muster folgen dem regulären .NET-Ausdrucksformat. Weitere Informationen finden Sie in unserer Dokumentation zu regulären .NET-Ausdrücken .