- Documentos de la API
- Introducción
- Uso de la API
- Tutorial de la API
- Resumen
- Fuentes
- Conjuntos de datos
- Comentarios
- Archivos adjuntos
- Predictions
- Crear una transmisión
- Actualizar una transmisión
- Obtener una transmisión por nombre
- Obtener todas las transmisiones
- Eliminar una transmisión
- Obtener resultados de la transmisión
- Obtener comentarios de una transmisión (heredado)
- Avanzar una transmisión
- Restablecer una transmisión
- Etiquetar una excepción
- Desetiquetar una excepción
- Eventos de auditoría
- Obtener todos los usuarios
- CLI
- Guías de integración
- Blog
- Cómo aprenden las máquinas a entender palabras: una guía para las incrustaciones en PNL
- Aprendizaje basado en solicitudes con Transformers
- Efficient Transformers II: destilación de conocimientos y ajuste
- Transformadores eficientes I: mecanismos de atención
- Modelado de intenciones jerárquico profundo no supervisado: obtener valor sin datos de entrenamiento
- Corrección del sesgo de anotación con Communications Mining
- Aprendizaje activo: mejores modelos ML en menos tiempo
- Todo está en los números: evaluar el rendimiento del modelo con métricas
- Por qué es importante la validación del modelo
- Comparación de Communications Mining y Google AutoML para la inteligencia de datos conversacional
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.
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"]
}
}
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"
).
Para recuperar los datos, recomendamos utilizar el archivo . (Consulta aquí para obtener una descripción general de todos los métodos de descarga de datos disponibles). Al crear una transmisión, debes establecer los umbrales para cada etiqueta de modo que se descarten las etiquetas con puntuaciones de confianza por debajo del umbral. Esto es más fácil de hacer desde la interfaz de usuario de Communications Mining yendo a la página "Transmisiones" de un conjunto de datos. Habiendo utilizado las puntuaciones de confianza para determinar si se aplica una etiqueta, puedes importar solo los nombres de las etiquetas en Elasticsearch. (Consulta la sección Etiquetas para análisis para ver una discusión sobre cuándo recomendamos eliminar o mantener las puntuaciones de confianza de las etiquetas).
Los campos generales no tienen puntuaciones de confianza, por lo que no se requiere un tratamiento especial.
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.
Para actualizar a una nueva versión del modelo, debes crear una nueva transmisión que utilice esa versión del modelo y, a continuación, actualizar tu código para utilizar la nueva transmisión. (Por este motivo, te recomendamos que configures el nombre de la transmisión en tu código). Para garantizar que los análisis que utilizan predicciones sean coherentes, debes volver a incorporar las predicciones para los datos históricos utilizando la versión actualizada del modelo. Puedes hacerlo mediante la transmisión a la marca de tiempo anterior a tu comentario más antiguo y volviendo a incorporar los datos desde el principio.
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:(.+) > .*")
Gráfico de barras
Gráfico circular