- Introdução
- Configurando sua conta
- Balanceamento
- Clusters
- Desvio de conceito
- Cobertura
- Conjuntos de dados
- Campos gerais
- Rótulos (previsões, níveis de confiança, hierarquia do rótulo e sentimento do rótulo)
- Modelos
- Transmissões
- Classificação do Modelo
- Projetos
- Precisão
- Lembrar
- Mensagens anotadas e não anotadas
- Campos de extração
- Fontes
- Taxonomias
- Treinamento
- Previsões positivos e negativos verdadeiros e falsos
- Validação
- Mensagens
- Controle de acesso e administração
- Gerencie origens e conjuntos de dados
- Entender a estrutura de dados e permissões
- Criando ou excluindo uma origem de dados na GUI
- Preparando dados para carregamento de .CSV
- Carregar um arquivo CSV para uma origem
- Criação de um conjunto de dados
- Origens e conjuntos de dados multilíngues
- Habilitando o sentimento em um conjunto de dados
- Como corrigir as configurações do conjunto de dados
- Excluindo uma mensagem
- Exclusão de um conjunto de dados
- Exportação de um conjunto de dados
- Usando integrações do Exchange
- Treinamento e manutenção do modelo
- Noções Básicas sobre rótulos, campos gerais e metadados
- Hierarquia de rótulos e práticas recomendadas
- Comparação de casos de uso de análise e automação
- Transformando seus objetivos em rótulos
- Visão geral do processo de treinamento do modelo
- Anotação generativa
- Status do conjunto de dados
- Treinamento de modelos e práticas recomendadas de anotação
- Treinamento com análise de sentimento de rótulo habilitada
- Compreensão dos requisitos de dados
- Treinamento
- Introdução ao Refine
- Precisão e recall explicados
- Precisão e recall
- Como a validação funciona
- Compreender e melhorar o desempenho do modelo
- Motivos para baixa precisão média do rótulo
- Treinamento usando Check label e Perda de rótulo
- Treinamento usando Ensinar rótulo (Refinar)
- Treinamento usando a Pesquisa (Refinamento)
- Noções Básicas e Aumentando a Cobertura
- Melhorando o balanceamento e usando o Rebalanceamento
- Quando parar de treinar seu modelo
- Uso dos campos gerais
- Extração generativa
- Uso de análise e monitoramento
- Automations e Communications Mining™
- Desenvolvedor
- Carregamento de dados
- Baixando dados
- Integração do Exchange com usuário do serviço do Azure
- Integração do Exchange com Autenticação de Aplicativo do Azure
- Integração do Exchange com Autenticação de aplicativo e gráfico do Azure
- Guia de migração: Exchange Web Services (EWS) para a API do Microsoft Graph
- Como buscar dados para o Tableau com o Python
- Integração do Elasticsearch
- Extração de campo geral
- Integração auto-hospedada do Exchange
- Framework de automação da UiPath®
- Atividades oficiais da UiPath®
- Como as máquinas aprendem a entender as palavras: um guia para incorporações ao NLP
- Aprendizado baseado em solicitação com Transformers
- Efficient Transformers II: extração de conhecimento e ajustes finos
- Transformers eficientes I: mecanismos de atenção
- Modelagem de intenção hierárquica profunda não supervisionada: obtenção de valor sem dados de treinamento
- Corrigindo viés de anotação com o Communications Mining™
- Aprendizado ativo: melhores modelos de ML em menos tempo
- Está tudo nos números - avaliando o desempenho do modelo com métricas
- Por que a validação de modelos é importante
- Comparação do Communications Mining™ e do Google AutoML para inteligência de dados de conversa
- Licenciamento
- Perguntas frequentes e mais
Guia do usuário do Communications Mining
O Communications Mining™ oferece um conjunto avançado de ferramentas de análise integradas. No entanto, às vezes é necessário unir as previsões do Communications Mining com dados que não podem ser carregados como parte dos comentários do Communications Mining. Nesses casos, uma solução comum é indexar as previsões do Communications Mining e quaisquer dados adicionais no Elasticsearch e usar uma ferramenta como o Kibana para gerar análises. Esse tutorial descreve como importar dados do Communications Mining para o Elasticsearch e visualizá-los no Kibana.
Os dados usados nos exemplos ao longo deste tutorial são e-mails fictícios gerados do domínio de seguros.
Armazenar dados no Elasticsearch
Primeiro, vamos definir os dados que queremos importar para o Elasticsearch. A API do Communications Mining™ fornece o texto de comentários, metadados de comentários, rótulos previstos e campos gerais previstos em um objeto JSON aninhado. O seguinte é um exemplo de um comentário bruto fornecido pela API do Communications Mining.
Você pode observar diferentes campos de metadados, dependendo de como seus dados foram ingeridos no Communications Mining. Para saber mais sobre campos de objeto de comentário, consulte Comentários.
{
"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
}
}
]
}
O esquema dos comentários brutos retornados pela API do Communications Mining é inconveniente para filtrar e consultar esses dados no Elasticsearch, portanto, você deve alterar o esquema antes de ingerir os dados no Elasticsearch. O seguinte é um exemplo de esquema simples que você pode usar. Você deve adicionar todos os campos necessários para seu 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"]
}
}
Um comentário pode ter zero, um ou vários rótulos, portanto, o campo labels precisa ser uma matriz. Além disso, se um ou mais tipos de campos gerais tiverem sido configurados para o conjunto de dados, um comentário terá zero, um ou mais campos gerais de cada tipo de campo geral. Os nomes de rótulos hierárquicos na resposta de API bruta são, eles próprios, matrizes (["Admin", "Change of address"]) e devem ser convertidos em strings ("Admin > Change of address").
Busca de dados
Para buscar os dados, recomendamos usar o. Para obter uma visão geral de todos os métodos de download de dados disponíveis, consulte Download de dados. Ao criar um Stream, você deve definir os limites para cada rótulo para que rótulos com pontuações de confiança abaixo do limite sejam descartados. Isso é mais fácil de fazer a partir da interface gráfica do Communications Mining™, acessando a página "Streams" de um conjunto de dados. Depois de usar as pontuações de confiança para determinar se um rótulo se aplica, você pode importar apenas os nomes dos rótulos para o Elasticsearch. Para uma análise sobre quando é recomendável descartar ou manter as pontuações de confiança do rótulo, consulte Rótulos para análise.
Os campos gerais não têm pontuações de confiança, portanto, nenhum manuseio especial é necessário.
Gerenciamento de alterações de modelo Ao criar um Stream, você especifica uma versão do modelo, que é usada para fornecer previsões ao buscar comentários do Stream. Mesmo que você continue a treinar novas versões do modelo na plataforma, seu Stream usará a versão do modelo que você especificou, fornecendo resultados determinísticos.
Para atualizar para uma nova versão do modelo, você deve criar um novo Stream que usa essa versão do modelo e, em seguida, atualizar seu código para usar o novo Stream. Por esse motivo, recomendamos que você torne o nome do Stream configurável em seu código.
Para garantir que as análises que usam previsões permaneçam consistentes, você deve ingerir novamente previsões para dados históricos usando a versão do modelo atualizada. Você pode fazer isso pelo Stream para o carimbo de data/hora antes do seu comentário mais antigo e reingerindo os dados do início.
Visualização de dados no Kibana
Após indexar os dados no Elasticsearch, você pode começar a criar visualizações. Essa seção fornece exemplos simples para várias ferramentas de visualização comuns no Kibana.
Temporário
Você pode usar a seguinte expressão para produzir uma plotagem dos 5 principais rótulos mais comuns ao longo do tempo.
Isso mostra rótulos de categoria e subcategoria de nível superior.
.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. Os cinco principais rótulos em um conjunto de dados plotados ao longo do tempo.
Gráfico de Barras
Este gráfico de barras mostra os 20 principais endereços de email de remetentes no conjunto de dados. Os endereços de email do remetente e do destinatário fazem parte dos metadados de comentários em conjuntos de dados baseados em email.
Figura 2. Os 20 principais endereços de email do remetente.
Gráfico de Pizza
Este gráfico de pizza mostra rótulos de subcategoria sob o rótulo de nível superior “Reclamação”. As categorias de rótulos são definidas pelo usuário que treina o modelo.
Figura 3. Subcategorias do rótulo Reivindicação.