Personaliza la probabilidad de coincidencia

Las reglas de palabra clave permiten ampliar aún más los detectores de infotipo integrados o personalizados con reglas de contexto avanzadas. Las reglas de palabra clave te permiten agregar una regex y un detector de proximidad a un detector de infotipo existente y definir el valor de probabilidad de coincidencia de manera adecuada.

Anatomía de una regla de palabra clave

Un detector de infotipo puede tener cero o más reglas de palabra clave. Puedes definir cada regla de palabra clave (objeto HotwordRule) dentro de una regla de inspección (objeto InspectionRule). Cada regla de inspección se especifica con un objeto InspectConfig.

Las reglas de palabras clave se dirigen donde lo indica [HOTWORDRULE_OBJECT] en el ejemplo de JSON en Cómo crear un infotipo personalizado de diccionario y Cómo crear un infotipo personalizado de regex. Al igual que un objeto JSON, una sola regla de palabra clave dentro de un arreglo "detectionRules" se ve así:

"detectionRules":[
  {
    "hotwordRule":{
      "hotwordRegex":{
        "pattern":"[REGEX_PATTERN]"
      },
      "proximity":{
        "windowAfter":"[NUM_CHARS_TO_CONSIDER_AFTER_FINDING]",
        "windowBefore":"[NUM_CHARS_TO_CONSIDER_BEFORE_FINDING]"
      }
      "likelihoodAdjustment":{
        "fixedLikelihood":"[LIKELIHOOD_VALUE]"
             -- OR --
        "relativeLikelihood":"[LIKELIHOOD_ADJUSTMENT]"
      },
    }
  },
  ...
]

Cada regla de palabra clave consta de tres componentes:

  • "hotwordRegex": un patrón regex (objeto Regex) que define lo que califica como palabra clave.
  • "proximity": la proximidad del resultado en el que debe contener toda la palabra clave. Este campo contiene un objeto Proximity, que está compuesto por dos valores:

    • "windowBefore": la cantidad de caracteres antes del resultado a considerar.
    • "windowAfter": la cantidad de caracteres luego del resultado a considerar.
  • "likelihoodAdjustment": el ajuste de la probabilidad de un resultado. Este campo contiene un objeto LikelihoodAdjustment que se puede establecer en uno de dos valores:

    • "fixedLikelihood": un valor Likelihood fijo para establecer el resultado a.
    • "relativeLikelihood": un número que indica los niveles por los cuales se aumenta o disminuye la probabilidad del resultado. Por ejemplo, si un resultado fuera POSSIBLE sin la regla de detección y relativeLikelihood es 1, se actualiza a LIKELY, mientras que un valor de -1 podría pasar a una versión anterior a UNLIKELY. La probabilidad nunca puede estar por debajo de VERY_UNLIKELY o superar VERY_LIKELY, por lo que aplicar un ajuste de 1 seguido de un ajuste de -1, cuando la probabilidad de base es VERY_LIKELY, dará como resultado una probabilidad final de LIKELY.

Ejemplo de palabra clave: coincidencia de los números de historias clínicas

Supongamos que deseas detectar un infotipo personalizado como un número de historia clínica en formato ###-#-##### y, además, deseas mejorar la probabilidad de coincidencia de los resultados de Cloud DLP cuando la palabra clave "MRN" estaba antes, pero no después, de este número. Por lo tanto:

  • 123-4-56789 coincidiría con POSSIBLE.
  • MRN 123-4-56789 coincidiría con VERY_LIKELY.

En el ejemplo de JSON a continuación, se muestra la regex personalizada definida como se explica en Cómo crear un detector de infotipo de regex, pero con la regla de palabra clave adecuada que se agrega en:

Entrada de JSON:

POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:inspect?key={YOUR_API_KEY}

{
  "item":{
    "value":"Patient's MRN 444-5-22222"
  },
  "inspectConfig":{
    "customInfoTypes":[
      {
        "infoType":{
          "name":"C_MRN"
        },
        "regex":{
          "pattern":"[0-9]{3}-[0-9]{1}-[0-9]{5}"
        },
        "likelihood":"POSSIBLE",
        "detectionRules":[
          {
            "hotwordRule":{
              "hotwordRegex":{
                "pattern":"\b(?i)mrn(?-i)|\b(?i)Medical(?-i)"
              },
              "likelihoodAdjustment":{
                "fixedLikelihood":"VERY_LIKELY"
              },
              "proximity":{
                "windowBefore":10
              }
            }
          }
        ]
      }
    ]
  }
}

Resultado de JSON:

{
  "result":{
    "findings":[
      {
        "infoType":{
          "name":"C_MRN"
        },
        "likelihood":"VERY_LIKELY",
        "location":{
          "byteRange":{
            "start":"14",
            "end":"25"
          },
          "codepointRange":{
            "start":"14",
            "end":"25"
          }
        },
        "createTime":"2018-11-13T18:50:44.337Z"
      }
    ]
  }
}

El resultado muestra que con el uso del detector de infotipo personalizado, le dimos el nombre C_MRN y la regex personalizada y que Cloud DLP identificó de forma correcta el número de historia clínica. Además, debido a la coincidencia de contexto en la regla de detección, Cloud DLP asignó al MRN una certeza de VERY_LIKELY, según la configuración.

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación sobre prevención de pérdida de datos