Informações de Identificação Pessoal

O idioma detecta, classifica e fornece opções para desidentificar informações pessoais identificáveis (PII) em texto não estruturado.

Casos de Uso

Detectando e selecionando informações privativas no feedback do usuário

Muitas organizações coletam feedback de usuários por meio de vários canais, como análises de produtos, solicitações de devolução, tickets de suporte e fóruns de feedback. Você pode usar o serviço de detecção de PII de Idioma para detecção automática de entidades de PII para não apenas avisar proativamente, mas também anonimizar antes de armazenar feedback publicado. Usando a detecção automática de entidades de PII, você pode avisar proativamente os usuários sobre o compartilhamento de dados privados e aplicativos para implementar medidas como armazenar dados mascarados.

Verificando o armazenamento de objetos quanto à presença de dados confidenciais

As soluções de armazenamento em nuvem, como OCI Object Storage, são amplamente usadas pelos funcionários para armazenar documentos de negócios nos locais controlados localmente ou compartilhados por muitas equipes. Garantir que esses locais compartilhados não armazenem informações privadas, como nomes de funcionários, dados demográficos e informações de folha de pagamento, requer a digitalização automática de todos os documentos para a presença de PII. O modelo de PII do OCI Language fornece API em lote para processar muitos documentos de texto em escala para processar dados em escala.

Entidades Suportadas

A tabela a seguir descreve as diferentes entidades que o PII pode extrair.

Tipo de Entidade Descrição:
PERSON Nome da pessoa
ADDRESS Endereço
AGE Tempo de existência
DATE_TIME Data ou hora
SSN_OR_TAXPAYER Número da previdência social ou ID do contribuinte (EUA)
EMAIL E-mail
PASSPORT_NUMBER_US Número do passaporte (EUA)
TELEPHONE_NUMBER Telefone ou fax (EUA)
DRIVER_ID_US Número de identificação do condutor (EUA)
BANK_ACCOUNT_NUMBER Número da conta bancária (EUA)
BANK_SWIFT Conta bancária (SWIFT)
BANK_ROUTING Número de roteamento bancário
CREDIT_DEBIT_NUMBER Número do cartão de crédito ou débito
IP_ADDRESS Endereço IP, IPV4 e IPV6
MAC_ADDRESS Endereço MAC

Estes são os tipos de segredo:

COOKIE Cookie do site
XSRF TOKEN Token XSRF (Cross-Site Request Forgery)
AUTH_BASIC Autenticação Básica
AUTH_BEARER Autenticação do portador
JSON_WEB_TOKEN Token da Web do JSON
PRIVATE_KEY Chave Privada Criptográfica
PUBLIC_KEY Chave Pública Criptográfica

Veja a seguir as credenciais da conta do OCI que são as informações de autenticação necessárias para acessar e gerenciar recursos no OCI. Essas credenciais servem ao propósito de garantir autenticação segura de usuários, aplicativos e serviços para interagir com serviços e recursos da OCI.

OCI_OCID_USER Usuários do OCI
OCI_OCID_TENANCY OCID da Tenancy (Oracle Cloud Identifier)
OCI_SMTP_USERNAME Nome de Usuário SMTP (Simple Mail Transfer Protocol)
OCI_OCID_REFERENCE Referência do OCID
OCI_FINGERPRINT Impressão Digital do OCI
OCI_CREDENTIAL Este tipo abrange o Token de Autenticação do OCI, a Credencial OAuth e a Credencial SMTP
OCI_PRE_AUTH_REQUEST Solicitação Pré-autenticada do OCI
OCI_STORAGE_SIGNED_URL URL Singer do OCI Storage
OCI_CUSTOMER_SECRET_KEY Chave Secreta do Cliente do OCI
OCI_ACCESS_KEY Chaves de Acesso do OCI ou credenciais de segurança

Exemplos

Texto de Entrada Texto de Saída Mascarado com "*"

Hello Support Team,

I am reaching out to seek help with my credit card number 5111 1111 1111 1118 expiring on 11/23. There was a suspicious transaction on 12-Aug-2022 which I reported by calling from my mobile number +1 (650) 555-0190 also I emailed from my email id sarah.jones1234@hotmail.com. Would you please let me know the refund status?

Regards,

Sarah

Hello Support Team, I am reaching out to seek help with my credit card number ******************* expiring on ***** . There was a suspicious transaction on *********** which I reported by calling from my mobile number ** ************** also I emailed from my email id *************************** . Would you please let me know the refund status? Regards, *****

O JSON para o exemplo é:

Amostra de Solicitação
POST https://<region-url>/20210101/actions/batchDetectLanguagePiiEntities
Formato da Solicitação de API:
{
  "documents": [
    {
      "languageCode": "en",
      "key": "1",
      "text": "Hello Support Team, I am reaching out to seek help with my credit card number 5111 1111 1111 1118 expiring on 11/23. There was a suspicious transaction on 12-Aug-2022 which I reported by calling from my mobile number +1 (650) 555-0190 also I emailed from my email id sarah.jones1234@hotmail.com. Would you please let me know the refund status? Regards, Sarah"
    }
  ],
  "compartmentId": "ocid1.tenancy.oc1..aaaaaaaadany3y6wdh3u3jcodcmm42ehsdno525pzyavtjbpy72eyxcu5f7q",
  "masking": {
    "ALL": {
      "mode": "MASK",
      "isUnmaskedFromEnd": true,
      "leaveCharactersUnmasked": 4
    }
  }
}
JSON de resposta:
{
    "documents": [
        {
            "key": "1",
            "entities": [
                {
                    "offset": 79,
                    "length": 19,
                    "type": "CREDIT_DEBIT_NUMBER",
                    "text": "5111 1111 1111 1118",
                    "score": 0.75,
                    "isCustom": false
                },
                {
                    "offset": 111,
                    "length": 5,
                    "type": "DATE_TIME",
                    "text": "11/23",
                    "score": 0.9992455840110779,
                    "isCustom": false
                },
                {
                    "offset": 156,
                    "length": 11,
                    "type": "DATE_TIME",
                    "text": "12-Aug-2022",
                    "score": 0.998766303062439,
                    "isCustom": false
                },
                {
                    "offset": 218,
                    "length": 2,
                    "type": "TELEPHONE_NUMBER",
                    "text": "+1",
                    "score": 0.6941494941711426,
                    "isCustom": false
                },
                {
                    "offset": 221,
                    "length": 14,
                    "type": "TELEPHONE_NUMBER",
                    "text": "(650) 555-0190",
                    "score": 0.9527066349983215,
                    "isCustom": false
                },
                {
                    "offset": 268,
                    "length": 27,
                    "type": "EMAIL",
                    "text": "sarah.jones1234@hotmail.com",
                    "score": 0.95,
                    "isCustom": false
                },
                {
                    "offset": 354,
                    "length": 5,
                    "type": "PERSON",
                    "text": "Sarah",
                    "score": 0.9918518662452698,
                    "isCustom": false
                }
            ],
            "languageCode": "en",
            "maskedText": "Hello Support Team, \nI am reaching out to seek help with my credit card number ***************2345 expiring on *1/23. There was a suspicious transaction on *******2022 which I reported by calling from my mobile number +1 **********9999 also I emailed from my email id ***********************.com. Would you please let me know the refund status?\nRegards,\n*arah"
        }
    ],
    "errors": []
}

Configurar saída de texto de PII ou PHI

No serviço Language, você pode configurar a saída PII/PHI ao analisar o texto.

  1. Preencha Analisando texto..
  2. Na seção PII ou PHI, clique em Configurar na seção Saída.
  3. Selecione PII no menu suspenso.
  4. Selecione entre as seguintes opções:
    • Mascarar: Selecione para incluir ou excluir entidades.
      1. Lista de exclusão de anonimização: Informe as entidades a serem excluídas da saída da IU e da saída do SDK.
      2. Incluir entidades excluídas do mascaramento em entidades detectadas: Selecione para incluir a entidade que foi excluída da saída na IU, mas para continuar a incluir a entidade na saída do SDK.
      3. Caractere de mascaramento: Caractere de mascaramento para mascarar o texto de entrada.
    • Substituir: Substitua as entidades de PII por uma determinada sequência de caracteres.
    • Remover: remove entidades de PII da saída.
  5. Clique em Salvar alterações.

Regras de PII

Regras de PII personalizadas
Chaves Tipo Descrição:
ruleId String Identificador exclusivo da regra.
regex String Padrão de expressão regular para corresponder a tipos de dados personalizados. Por exemplo, ([A-Z]{5}[0-9]{4}[A-Z]{1}) para corresponder ao cartão de Ponto.
type String Nome do tipo de entidade a ser correspondente. Por exemplo, PAN_CARD.
prefix Lista<String> Palavras ou frases a serem procuradas em maxDistance da palavra detectada em regex.
suffix Lista<String> Palavras ou frases a serem pesquisadas em maxDistance da palavra detectada em regex.
isCaseSensitive Boolean Determina se o processo de correspondência deve considerar letras maiúsculas e minúsculas como distintas, com um valor true indicando distinção entre maiúsculas e minúsculas e false indicando distinção entre maiúsculas e minúsculas.
maxDistance Inteiro Define a distância máxima permitida em caracteres entre prefix/suffix e o padrão correspondente, garantindo que o padrão seja encontrado em uma certa proximidade com prefix/suffix.
priority Inteiro Prioridade de regras. Intervalos entre 1 e 50 em que a Prioridade 1 é mais alta. Por exemplo, se houver duas regras com o mesmo regex, mas prefix e suffix diferentes, a regra com a prioridade mais alta será considerada
regexOnly Boolean

Se for verdadeiro, isso removerá as entidades detectadas pelo modelo que têm o mesmo regex da regra regex.

Por exemplo:

Na frase, "Tenho 25 anos e ele tem 11 meses", com o sufixo definido como ["anos"]:

  • Se regexOnly for verdadeiro, apenas 25 serão detectados porque o sufixo "meses" não corresponde ao sufixo especificado "anos".
  • Se regexOnly for falso, 25 e 11 serão detectados - 25 da regra (devido ao sufixo "anos") e 11 do modelo.
filterEntityTypes Lista<String>

Tipos de entidade do OCI a serem filtrados. Por exemplo, [PERSON, AGE] para filtrar os tipos de entidade PERSON e AGE das detecções de modelo. Se o filtro for definido como [ALL], todas as entidades detectadas pelo modelo serão filtradas.

Ao listar [All], detecte regex com base e ignore entidades de modelo predefinidas.

disable Boolean Definir como verdadeiro para desativar esta regra.

Arquivos de regras de amostra

[
          {
          "ruleId": "rule 1",
          "regex": "([A-Z]{2}[0-9]{2}-[0-9]{3}-[0-9]{3}-[0-9]{3}\/[0-9]{3})",
          "type": "NAREGA_ID",
          "isCaseSensitive": true,
          "suffix": ["id", "narega"],
          "regexOnly": true,
          "maxDistance": 10,
          "priority": 2
          },
          {
          "ruleId": "rule 2",
          "regex": "([A-Z]{5}[0-9]{4}[A-Z]{3})",
          "type": "PAN_CARD",
          "prefix": ["pan", "pancard"],
          "isCaseSensitive": false,
          "regexOnly": false,
          "maxDistance": 10,
          "priority": 2,
          "filterEntityTypes": ["PERSON"]
          },
          {
          "ruleId": "rule 3",
          "regex": "([A-Z]{4}[0-9]{7})",
          "type": "IFSC_CODE",
          "prefix": ["IFSC"],
          "isCaseSensitive": false,
          "regexOnly":false,
          "maxDistance": 20,
          "priority": 2,
          "disable": false
          },
          {
          "ruleId": "rule 4",
          "regex": "([A-Z]{2}[0-9]{2}-[0-9]{3}-[0-9]{3}-[0-9]{3}\/[0-9]{3})",
          "type": "TIRA_ID",
          "isCaseSensitive": false,
          "prefix": ["Narega"],
          "regexOnly": false,
          "maxDistance": 10,
          "priority": 1
          }
          ]