Información de identificación personal

Language detecta, clasifica y proporciona opciones para desidentificar la información de identificación personal (PII) en texto no estructurado.

Casos de Uso

Detección y selección de información privada en los comentarios de los usuarios

Muchas organizaciones recopilan comentarios de los usuarios a través de varios canales, como reseñas de productos, solicitudes de devolución, tickets de soporte y foros de comentarios. Puede utilizar el servicio de detección de PII de idioma para la detección automática de entidades de PII no solo para advertir de forma proactiva, sino también para anonimizar antes de almacenar los comentarios publicados. Mediante la detección automática de entidades de PII, puede advertir de forma proactiva a los usuarios sobre el uso compartido de datos privados y a las aplicaciones para implementar medidas como el almacenamiento de datos enmascarados.

Exploración del almacenamiento de objetos para detectar la presencia de datos confidenciales

Las soluciones de almacenamiento en la nube, como OCI Object Storage, son ampliamente utilizadas por los empleados para almacenar documentos de negocio en las ubicaciones controladas localmente o compartidas por muchos equipos. Asegurarse de que dichas ubicaciones compartidas no almacenen información privada, como nombres de empleados, datos demográficos e información de nómina, requiere el escaneo automático de todos los documentos para detectar la presencia de PII. El modelo de PII de OCI Language proporciona una API por lotes para procesar muchos documentos de texto a escala para procesar datos a escala.

Entidades soportadas

En la siguiente tabla se describen las diferentes entidades que PII puede extraer.

Tipo de Entidad Descripción
PERSON Nombre de la Persona
ADDRESS Dirección
AGE Duración
DATE_TIME Fecha o hora
SSN_OR_TAXPAYER Número de la Seguridad Social o ID de contribuyente (EE.UU.)
EMAIL Correo
PASSPORT_NUMBER_US Número de pasaporte (EE.UU.)
TELEPHONE_NUMBER Teléfono o fax (EE. UU.)
DRIVER_ID_US Número de identificación del conductor (US)
BANK_ACCOUNT_NUMBER Número de cuenta bancaria (US)
BANK_SWIFT Cuenta bancaria (SWIFT)
BANK_ROUTING Número de entidad bancaria
CREDIT_DEBIT_NUMBER Número de tarjeta de crédito o débito
IP_ADDRESS Dirección IP, IPV4 y IPV6
MAC_ADDRESS Dirección MAC

A continuación se muestran los tipos de secreto:

COOKIE Cookie de sitio web
XSRF TOKEN Token de falsificación de solicitud entre centros (XSRF)
AUTH_BASIC Autenticación Básica
AUTH_BEARER Autenticación del portador
JSON_WEB_TOKEN Token Web JSON
PRIVATE_KEY Clave privada criptográfica
PUBLIC_KEY Clave pública criptográfica

A continuación, se muestran las credenciales de la cuenta de OCI que son la información de autenticación necesaria para acceder a los recursos de OCI y gestionarlos. Estas credenciales sirven para garantizar la autenticación segura de usuarios, aplicaciones y servicios para interactuar con los servicios y recursos de OCI.

OCI_OCID_USER Usuario de OCI
OCI_OCID_TENANCY OCID de arrendamiento (identificador de Oracle Cloud)
OCI_SMTP_USERNAME Nombre de usuario SMTP (protocolo simple de transferencia de correo)
OCI_OCID_REFERENCE Referencia de OCID
OCI_FINGERPRINT Huella de OCI
OCI_CREDENTIAL Este tipo abarca el token de autenticación de OCI, la credencial OAuth y la credencial SMTP
OCI_PRE_AUTH_REQUEST OCI Pre-Authenticated Request
OCI_STORAGE_SIGNED_URL URL cantada de OCI Storage
OCI_CUSTOMER_SECRET_KEY Clave secreta de cliente de OCI
OCI_ACCESS_KEY Claves de acceso o credenciales de seguridad de OCI

Ejemplos

Texto de Entrada Texto de salida enmascarado con "*"

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, *****

El JSON para el ejemplo es:

Solicitud de ejemplo
POST https://<region-url>/20210101/actions/batchDetectLanguagePiiEntities
Formato de solicitud 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 respuesta:
{
    "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": []
}

Configuración de la salida de texto PII o PHI

En el servicio Language, puede configurar la salida PII/PHI al analizar el texto.

  1. Complete el análisis de texto.
  2. En la sección PII o PHI, haga clic en Configurar en la sección Salida.
  3. Seleccione PII en la lista desplegable.
  4. Seleccione una de las siguientes opciones:
    • Máscara: seleccione para incluir o excluir entidades.
      1. Lista de exclusión de anonimización: introduzca las entidades que desea excluir de la salida de la interfaz de usuario y de SDK.
      2. Incluir entidades excluidas del enmascaramiento en entidades detectadas: seleccione esta opción para incluir la entidad que se ha excluido de la salida en la interfaz de usuario, pero para seguir incluyendo la entidad en la salida del SDK.
      3. Carácter de enmascaramiento: carácter de enmascaramiento para enmascarar el texto de entrada.
    • Sustituir: sustituya las entidades de PII por una secuencia de caracteres determinada.
    • Eliminar: elimina las entidades de PII de la salida.
  5. Haga clic en Guardar cambios.

Reglas de PII

Reglas de PII personalizadas
Claves Escribir Descripción
ruleId Cadena Identificador único de la regla.
regex Cadena Patrón de expresión regular para que coincida con los tipos de dato personalizados. Por ejemplo, ([A-Z]{5}[0-9]{4}[A-Z]{1}) para que coincida con la tarjeta Pan.
type Cadena Nombre del tipo de entidad que debe coincidir. Por ejemplo, PAN_CARD.
prefix Lista<String> Se han detectado palabras o frases en maxDistance de regex.
suffix Lista<String> Se han detectado palabras o frases para buscar en maxDistance de regex.
isCaseSensitive Booleano Determina si el proceso de coincidencia debe considerar las letras mayúsculas y minúsculas como distintas, con un valor de true que indica la sensibilidad a mayúsculas y minúsculas y false que indica la insensibilidad a mayúsculas y minúsculas.
maxDistance Entero Define la distancia máxima permitida en caracteres entre prefix/suffix y el patrón coincidente, lo que garantiza que el patrón se encuentre dentro de una cierta proximidad a prefix/suffix.
priority Entero Prioridad de las normas. Rangos entre 1 y 50 donde la prioridad 1 es la más alta. Por ejemplo, si hay dos reglas con la misma regex pero prefix y suffix diferentes, se considera la regla con la prioridad más alta
regexOnly Booleano

Si se define en true, se eliminan las entidades detectadas de modelo que tienen el mismo regex que la regla regex.

Por ejemplo:

En la frase, "Tengo 25 años y él tiene 11 meses", con el sufijo establecido en ["años"]:

  • Si regexOnly es true, solo se detecta 25 porque el sufijo "months" no coincide con el sufijo especificado "years".
  • Si regexOnly es false, se detectan tanto 25 como 11, 25 de la regla (debido al sufijo "years") y 11 del modelo.
filterEntityTypes Lista<String>

Tipos de entidad de OCI que filtrar. Por ejemplo, [PERSON, AGE] para filtrar los tipos de entidad PERSON y AGE a partir de detecciones de modelo. Si el filtro se define en [ALL], todas las entidades detectadas de modelo se filtran.

Al mostrar [All], la detección se basa en regex e ignora las entidades de modelo predefinidas.

disable Booleano Definir en true para desactivar esta regla.

Archivos de reglas de ejemplo

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