Criar um detetor de dicionário personalizado normal

Os dicionários personalizados oferecem a capacidade simples, mas avançada, de fazer a correspondência de uma lista de palavras ou expressões. Pode usar um dicionário personalizado como detetor ou como uma lista de exceções para detetores incorporados. Também pode usar dicionários personalizados para aumentar os detetores de infoType incorporados de modo a corresponder a resultados adicionais.

Esta secção descreve como criar um detetor de dicionário personalizado normal a partir de uma lista de palavras.

Anatomia de um detetor de infoType personalizado de dicionário

Conforme resumido na vista geral da API, para criar um detetor de infoType personalizado de dicionário, define um objeto CustomInfoType que contém o seguinte:

  • O nome que quer dar ao detetor de infoType personalizado, num objeto InfoType.
  • Um valor Likelihood opcional. Se omitir este campo, as correspondências com os itens do dicionário devolvem uma probabilidade predefinida de VERY_LIKELY.
  • Opcional DetectionRule objetos ou regras de palavra de ativação. Estas regras ajustam a probabilidade de deteções numa determinada proximidade de palavras-chave específicas. Saiba mais sobre as regras de palavras de ativação em Personalizar a probabilidade de correspondência.
  • Um valor SensitivityScore opcional. Se omitir este campo, as correspondências com os itens do dicionário devolvem um nível de sensibilidade predefinido de HIGH.

    As classificações de sensibilidade são usadas nos perfis de dados. Quando cria perfis dos seus dados, a proteção de dados confidenciais usa as pontuações de sensibilidade dos infoTypes para calcular o nível de sensibilidade.

  • A Dictionary, como um WordList que contém uma lista de palavras a procurar ou um CloudStoragePath para um ficheiro de texto único que contém uma lista de palavras delimitada por novas linhas a procurar.

Como um objeto JSON, um detetor de infoType personalizado de dicionário que inclui todos os componentes opcionais tem o seguinte aspeto. Este JSON inclui um caminho para um ficheiro de texto de dicionário armazenado no Cloud Storage. Para ver uma lista de palavras inline, consulte a secção Exemplos, mais adiante neste tópico.

{
  "customInfoTypes":[
    {
      "infoType":{
        "name":"CUSTOM_INFOTYPE_NAME"
      },
      "likelihood":"LIKELIHOOD_LEVEL",
      "detectionRules":[
        {
          "hotwordRule":{
            HOTWORD_RULE
          }
        },
        ...
      ],
      "sensitivityScore":{
          "score": "SENSITIVITY_SCORE"
        },
      "dictionary":
      {
        "cloudStoragePath":
        {
          "path": "gs://PATH_TO_TXT_FILE"
        }
      }
    }
  ],
  ...
}

Especificidades da correspondência do dicionário

Seguem-se orientações sobre como a proteção de dados confidenciais faz a correspondência com palavras e expressões do dicionário. Estes pontos aplicam-se aos dicionários personalizados normais e grandes:

  • As palavras do dicionário não são sensíveis a maiúsculas e minúsculas. Se o seu dicionário incluir Abby, vai corresponder a abby, ABBY, Abby e assim sucessivamente.
  • Todos os carateres, em dicionários ou em conteúdo a ser analisado, que não sejam letras, dígitos e outros carateres alfabéticos contidos no plano multilíngue básico do Unicode são considerados espaços em branco quando se procura correspondências. Se o seu dicionário procurar Abby Abernathy, vai encontrar correspondências em abby abernathy, Abby, Abernathy, Abby (ABERNATHY) e assim sucessivamente.
  • Os carateres que envolvem qualquer correspondência têm de ser de um tipo diferente (letras ou dígitos) dos carateres adjacentes na palavra. Se o seu dicionário procurar Abi, vai encontrar os três primeiros carateres de Abi904, mas não de Abigail.
  • As palavras do dicionário que contêm carateres no Supplementary Multilingual Plane da norma Unicode podem gerar resultados inesperados. Exemplos de carateres deste tipo são emojis, símbolos científicos e escritas históricas.

As letras, os dígitos e outros carateres alfabéticos são definidos da seguinte forma:

  • Letras: carateres com categorias gerais Lu, Ll, Lt, Lm ou Lo na especificação Unicode
  • Dígitos: carateres com a categoria geral Nd na especificação Unicode
  • Outros carateres alfabéticos: carateres com a categoria geral Nl na especificação Unicode ou com a propriedade contributiva Other_Alphabetic, conforme definido pela norma Unicode

Exemplos

Lista de palavras simples

Suponhamos que tem dados que incluem a sala do hospital onde um paciente foi tratado durante uma visita. Estas localizações podem ser consideradas confidenciais num conjunto de dados específico, mas não são algo que seria detetado pelos detetores incorporados da proteção de dados confidenciais.

As salas foram apresentadas como:

  • "RM-Orange"
  • "RM-Yellow"
  • "RM-Green"

C#

Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.

Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.


using System;
using Google.Api.Gax.ResourceNames;
using Google.Cloud.Dlp.V2;

public class DeidentifyWithSimpleWordList
{
    public static DeidentifyContentResponse Deidentify(string projectId, string text)
    {
        // Instantiate a client.
        var dlp = DlpServiceClient.Create();

        var contentItem = new ContentItem { Value = text };

        var wordList =