communications-mining
latest
false
Importante :
Este contenido se ha traducido mediante traducción automática.
Guía para desarrolladores de Communications Mining
Last updated 27 de sep. de 2024

Integración de Elasticsearch

Communications Mining ofrece un amplio conjunto de herramientas de análisis integradas. Sin embargo, a veces es necesario unir las predicciones de Communications Mining con datos que no se pueden cargar como parte de los comentarios de Communications Mining. En estos casos, una solución común es indexar las predicciones de Communications Mining y cualquier dato adicional en Elasticsearch y utilizar una herramienta como Kibana para impulsar el análisis. Este tutorial describe cómo importar datos de Communications Mining en Elasticsearch y visualizarlos en Kibana.

Los datos utilizados en los ejemplos de este tutorial se generan en correos electrónicos ficticios desde el dominio del seguro.

Almacenar datos en Elasticsearch

Primero, definamos los datos que queremos importar a Elasticsearch. La API de Communications Mining proporciona el texto del comentario, los metadatos del comentario, las etiquetas previstas y los campos generales previstos en un objeto JSON anidado. A continuación se muestra un ejemplo de un comentario sin procesar proporcionado por la API de Communications Mining. (Ten en cuenta que puedes ver diferentes campos de metadatos en función de cómo se ingirieron tus datos en Communications Mining. Puedes obtener más información sobre los campos de objeto de comentario aquí.)

{
  "comment": {
    "id": "c7a1c529-3f57-4be6-9102-c9f892b81ae51",
    "uid": "49ba2c56a945386c.c7a1c529-3f57-4be6-9102-c9f892b81ae51",
    "timestamp": "2021-03-29T08:36:25.607Z",
    "messages": [
      {
        "body": {
          "text": "The policyholder has changed their address to the new address: 19 Essex Gardens, SW17 2UL"
        },
        "subject": {
          "text": "Change of address - Policy SFG48807871"
        },
        "from": "CPX8460080@broker.com",
        "to": ["underwriter@insurer.com"],
        "sent_at": "2021-03-29T08:36:25.607Z"
      }
    ]
    // (... more properties ...)
  },
  "labels": [
    {
      "name": ["Admin"],
      "probability": 0.9995054006576538
    },
    {
      "name": ["Admin", "Change of address"],
      "probability": 0.9995054006576538
    }
  ],
  "entities": [
    {
      "name": "address-line-1",
      "formatted_value": "19 Essex Gardens",
      "span": {
        "content_part": "body",
        "message_index": 0,
        "char_start": 63,
        "char_end": 79,
        "utf16_byte_start": 126,
        "utf16_byte_end": 158
      }
    },
    {
      "name": "post-code",
      "formatted_value": "SW17 2UL",
      "span": {
        "content_part": "body",
        "message_index": 0,
        "char_start": 81,
        "char_end": 89,
        "utf16_byte_start": 162,
        "utf16_byte_end": 178
      }
    },
    {
      "name": "policy-number",
      "formatted_value": "SFG48807871",
      "span": {
        "content_part": "subject",
        "message_index": 0,
        "char_start": 27,
        "char_end": 38,
        "utf16_byte_start": 54,
        "utf16_byte_end": 76
      }
    }
  ]
}{
  "comment": {
    "id": "c7a1c529-3f57-4be6-9102-c9f892b81ae51",
    "uid": "49ba2c56a945386c.c7a1c529-3f57-4be6-9102-c9f892b81ae51",
    "timestamp": "2021-03-29T08:36:25.607Z",
    "messages": [
      {
        "body": {
          "text": "The policyholder has changed their address to the new address: 19 Essex Gardens, SW17 2UL"
        },
        "subject": {
          "text": "Change of address - Policy SFG48807871"
        },
        "from": "CPX8460080@broker.com",
        "to": ["underwriter@insurer.com"],
        "sent_at": "2021-03-29T08:36:25.607Z"
      }
    ]
    // (... more properties ...)
  },
  "labels": [
    {
      "name": ["Admin"],
      "probability": 0.9995054006576538
    },
    {
      "name": ["Admin", "Change of address"],
      "probability": 0.9995054006576538
    }
  ],
  "entities": [
    {
      "name": "address-line-1",
      "formatted_value": "19 Essex Gardens",
      "span": {
        "content_part": "body",
        "message_index": 0,
        "char_start": 63,
        "char_end": 79,
        "utf16_byte_start": 126,
        "utf16_byte_end": 158
      }
    },
    {
      "name": "post-code",
      "formatted_value": "SW17 2UL",
      "span": {
        "content_part": "body",
        "message_index": 0,
        "char_start": 81,
        "char_end": 89,
        "utf16_byte_start": 162,
        "utf16_byte_end": 178
      }
    },
    {
      "name": "policy-number",
      "formatted_value": "SFG48807871",
      "span": {
        "content_part": "subject",
        "message_index": 0,
        "char_start": 27,
        "char_end": 38,
        "utf16_byte_start": 54,
        "utf16_byte_end": 76
      }
    }
  ]
}

El esquema de los comentarios sin procesar devueltos por la API de Communications Mining es un inconveniente para filtrar y consultar estos datos en Elasticsearch, por lo que debes cambiar el esquema antes de introducir los datos en Elasticsearch. A continuación se muestra un ejemplo de esquema plano que puedes utilizar. Debes añadir todos los campos que necesites para tu caso de uso.

{
  "id": "c7a1c529-3f57-4be6-9102-c9f892b81ae51",
  "uid": "49ba2c56a945386c.c7a1c529-3f57-4be6-9102-c9f892b81ae51",
  "timestamp": "2021-03-29T08:36:25.607Z",
  "subject": "Change of address - Policy SFG48807871",
  "body": "The policyholder has changed their address to the new address: 19 Essex Gardens, SW17 2UL",
  // (... more fields ...)
  "labels": ["Admin", "Admin > Change of address"],
  "entities": {
    "policy_number": ["SFG48807871"],
    "address-line-1": ["19 Essex Gardens"],
    "post-code": ["SW17 2UL"]
  }
}{
  "id": "c7a1c529-3f57-4be6-9102-c9f892b81ae51",
  "uid": "49ba2c56a945386c.c7a1c529-3f57-4be6-9102-c9f892b81ae51",
  "timestamp": "2021-03-29T08:36:25.607Z",
  "subject": "Change of address - Policy SFG48807871",
  "body": "The policyholder has changed their address to the new address: 19 Essex Gardens, SW17 2UL",
  // (... more fields ...)
  "labels": ["Admin", "Admin > Change of address"],
  "entities": {
    "policy_number": ["SFG48807871"],
    "address-line-1": ["19 Essex Gardens"],
    "post-code": ["SW17 2UL"]
  }
}
Ten en cuenta que un comentario puede tener cero, una o varias etiquetas, por lo que el campo labels debe ser una matriz. Además, si se han configurado uno o más tipos de campos generales para el conjunto de datos, un comentario tendrá cero, uno o más campos generales de cada tipo de campo general. Los nombres de las etiquetas jerárquicas en la respuesta API sin formato son matrices (["Admin", "Change of address"]) y deben convertirse en cadenas ("Admin > Change of address").

Obtener datos

In order to fetch the data, we recommend using the . (See here for an overview of all available data download methods.) When creating a Stream, you should set the thresholds for each label so that labels with confidence scores below the threshold are discarded. This is easiest to do from the Communications Mining UI by going to the "Streams" page of a dataset. Having used the confidence scores to determine whether a label applies, you can then import just the label names into Elasticsearch. (See the Labels for Analytics section for a discussion on when we recommend to drop or keep label confidence scores.)

Los campos generales no tienen puntuaciones de confianza, por lo que no se requiere un tratamiento especial.

Nota:

GESTIÓN DE CAMBIOS DE MODELO

Al crear una secuencia, se especifica una versión del modelo. Esta versión del modelo se utiliza para proporcionar predicciones al obtener comentarios de la secuencia. Aunque los usuarios sigan entrenando nuevas versiones del modelo en la plataforma, tu secuencia utilizará la versión del modelo que hayas especificado, proporcionándote resultados deterministas.

To upgrade to a new model version, you have to create a new Stream which uses that model version, then update your code to use the new Stream. (For this reason, we recommend that you make the Stream name configurable in your code.) To ensure that analytics using predictions stay consistent, you should re-ingest predictions for historical data using the updated model version. You can do that by the Stream to the timestamp before your oldest comment, and re-ingesting the data from the start.

Visualizar datos en Kibana

Una vez indexados los datos en Elasticsearch, puedes empezar a crear visualizaciones. Esta sección proporciona ejemplos sencillos de una serie de herramientas de visualización comunes en Kibana.

Timelion

Puedes utilizar la siguiente expresión para producir un gráfico de las 5 etiquetas más comunes a lo largo del tiempo. Ten en cuenta que esto muestra tanto las etiquetas de categoría de nivel superior como las de subcategoría.

.es(index=example-data,split=labels:5,timefield=@timestamp)
    .label("$1", "^.* > labels:(.+) > .*").es(index=example-data,split=labels:5,timefield=@timestamp)
    .label("$1", "^.* > labels:(.+) > .*")
Figura 1. Las 5 etiquetas principales de un conjunto de datos trazadas a lo largo del tiempo.

Gráfico de barras

Este gráfico de barras muestra las 20 direcciones de correo electrónico de los principales remitentes en el conjunto de datos. Las direcciones de correo electrónico del remitente y del destinatario forman parte de los metadatos de los comentarios en los conjuntos de datos basados en correo electrónico.
Figura 2. Las 20 direcciones de correo electrónico de los principales remitentes.

Gráfico circular

Este gráfico circular muestra las etiquetas de las subcategorías bajo la etiqueta "Reclamación" de nivel superior. Las categorías de etiquetas las define el usuario que entrena el modelo.
Figura 3. Subcategorías de la etiqueta Reclamación.

  • Almacenar datos en Elasticsearch
  • Obtener datos
  • Visualizar datos en Kibana

¿Te ha resultado útil esta página?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Uipath Logo White
Confianza y seguridad
© 2005-2024 UiPath. Todos los derechos reservados.