- 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
- 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
Permissões necessárias: Consumir fluxos, Exibir rótulos, Exibir origens.
/results é a nova maneira de buscar comentários e suas previsões de um stream, substituindo a rota /fetch existente (Streams - legado). Mantemos a rota /fetch para suporte legado, mas recomendamos que todos os novos casos de uso usem a rota /results , pois ela é compatível com todos os casos de uso possíveis, incluindo aqueles que usam a extração generativa.
- Bash
curl -X GET 'https://<my_api_endpoint>/api/v1/datasets/project1/collateral/streams/dispute/results?max_results=5&max_filtered=15' \ -H "Authorization: Bearer $REINFER_TOKEN"curl -X GET 'https://<my_api_endpoint>/api/v1/datasets/project1/collateral/streams/dispute/results?max_results=5&max_filtered=15' \ -H "Authorization: Bearer $REINFER_TOKEN" - Nó
const request = require("request"); request.get( { url: "https://<my_api_endpoint>/api/v1/datasets/project1/collateral/streams/dispute/results?max_results=5&max_filtered=15", headers: { Authorization: "Bearer " + process.env.REINFER_TOKEN, }, }, function (error, response, json) { // digest response console.log(JSON.stringify(json, null, 2)); } );const request = require("request"); request.get( { url: "https://<my_api_endpoint>/api/v1/datasets/project1/collateral/streams/dispute/results?max_results=5&max_filtered=15", headers: { Authorization: "Bearer " + process.env.REINFER_TOKEN, }, }, function (error, response, json) { // digest response console.log(JSON.stringify(json, null, 2)); } ); - Python
import json import os import requests response = requests.get( "https://<my_api_endpoint>/api/v1/datasets/project1/collateral/streams/dispute/results", headers={"Authorization": "Bearer " + os.environ["REINFER_TOKEN"]}, params={"max_results": 5, "max_filtered": 15}, ) print(json.dumps(response.json(), indent=2, sort_keys=True))import json import os import requests response = requests.get( "https://<my_api_endpoint>/api/v1/datasets/project1/collateral/streams/dispute/results", headers={"Authorization": "Bearer " + os.environ["REINFER_TOKEN"]}, params={"max_results": 5, "max_filtered": 15}, ) print(json.dumps(response.json(), indent=2, sort_keys=True)) - Resposta
{ "status": "ok", "results": [ { "comment": { "uid": "18ba5ce699f8da1f.0123456789abcdef", "id": "0123456789abcdef", "timestamp": "2018-09-17T09:54:56.332000Z", "user_properties": { "number:Messages": 1, "string:Folder": "Sent (/ Sent)", "string:Has Signature": "Yes", "string:Message ID": "<abcdef@abc.company.com>", "string:Sender": "alice@company.com", "string:Sender Domain": "company.com", "string:Thread": "<abcdef@abc.company.com>" }, "messages": [ { "from": "alice@company.com", "to": [ "bob@organisation.org" ], "sent_at": "2018-09-17T09:54:56.332000Z", "body": { "text": "Hi Bob,\n\nCould you send me today's figures?" }, "subject": { "text": "Today's figures" }, "signature": { "text": "Thanks,\nAlice" } } ], "text_format": "plain", "attachments": [], "source_id": "18ba5ce699f8da1f", "last_modified": "2024-07-03T13:30:53.991000Z", "created_at": "2020-12-14T15:07:03.718000Z", "context": "1", "has_annotations": true }, "prediction": { "taxonomies": [ { "name": "default", "labels": [ { "name": "Margin Call", "occurrence_confidence": { "value": 0.9905891418457031, "thresholds": ["stream"] }, "extraction_confidence": { "value": 0.4712367373372217, "thresholds": [] }, "fields": [ { "name": "Notification Date", "value": null } ] }, { "name": "Margin Call > Interest Accrual", "occurrence_confidence": { "value": 0.9905891418457031, "thresholds": [] }, "extraction_confidence": { "value": 0.9905891418457031, "thresholds": [] }, "fields": [ { "name": "Amount", "value": { "formatted": "636,000.00" } }, { "name": "Broker number", "value": null }, { "name": "Client name", "value": null }, { "name": "Currency", "value": { "formatted": "AUD" } } ] } ], "general_fields": [ { "name": "monetary-quantity", "value": { "formatted": "636,000.00 GBP" } }, { "name": "MarginCallDateType", "value": { "formatted": "2018-09-21 00:00 UTC" } }, { "name": "client-name", "value": { "formatted": "Big Client Example Bank" } } ] } ] }, "continuation": "pmjKYXYBAAADqHUvPkQf1ypNCZFR37vu" } ], "num_filtered": 0, "more_results": true, "continuation": "pmjKYXYBAAAsXghZ2niXPNP6tOIJtL_8" }{ "status": "ok", "results": [ { "comment": { "uid": "18ba5ce699f8da1f.0123456789abcdef", "id": "0123456789abcdef", "timestamp": "2018-09-17T09:54:56.332000Z", "user_properties": { "number:Messages": 1, "string:Folder": "Sent (/ Sent)", "string:Has Signature": "Yes", "string:Message ID": "<abcdef@abc.company.com>", "string:Sender": "alice@company.com", "string:Sender Domain": "company.com", "string:Thread": "<abcdef@abc.company.com>" }, "messages": [ { "from": "alice@company.com", "to": [ "bob@organisation.org" ], "sent_at": "2018-09-17T09:54:56.332000Z", "body": { "text": "Hi Bob,\n\nCould you send me today's figures?" }, "subject": { "text": "Today's figures" }, "signature": { "text": "Thanks,\nAlice" } } ], "text_format": "plain", "attachments": [], "source_id": "18ba5ce699f8da1f", "last_modified": "2024-07-03T13:30:53.991000Z", "created_at": "2020-12-14T15:07:03.718000Z", "context": "1", "has_annotations": true }, "prediction": { "taxonomies": [ { "name": "default", "labels": [ { "name": "Margin Call", "occurrence_confidence": { "value": 0.9905891418457031, "thresholds": ["stream"] }, "extraction_confidence": { "value": 0.4712367373372217, "thresholds": [] }, "fields": [ { "name": "Notification Date", "value": null } ] }, { "name": "Margin Call > Interest Accrual", "occurrence_confidence": { "value": 0.9905891418457031, "thresholds": [] }, "extraction_confidence": { "value": 0.9905891418457031, "thresholds": [] }, "fields": [ { "name": "Amount", "value": { "formatted": "636,000.00" } }, { "name": "Broker number", "value": null }, { "name": "Client name", "value": null }, { "name": "Currency", "value": { "formatted": "AUD" } } ] } ], "general_fields": [ { "name": "monetary-quantity", "value": { "formatted": "636,000.00 GBP" } }, { "name": "MarginCallDateType", "value": { "formatted": "2018-09-21 00:00 UTC" } }, { "name": "client-name", "value": { "formatted": "Big Client Example Bank" } } ] } ] }, "continuation": "pmjKYXYBAAADqHUvPkQf1ypNCZFR37vu" } ], "num_filtered": 0, "more_results": true, "continuation": "pmjKYXYBAAAsXghZ2niXPNP6tOIJtL_8" }
Depois de criar um stream, você pode consulte-lo para buscar comentários e suas previsões. Isso inclui rótulos, campos gerais e extrações de rótulos, contendo um conjunto de campos de extração para cada instância da ocorrência desse rótulo.
Ao criar um stream, você define sua posição inicial para ser igual a seu tempo de criação. Se necessário, você pode definir o stream para uma posição diferente (para frente ou para trás no tempo), usando o ponto de extremidade de redefinição. O stream retorna comentários a partir de sua posição atual. Você determina a posição do comentário na fila de comentários pela ordem em que você carregou os comentários.
Dependendo do design do seu aplicativo, você pode escolher entre:
- avançando o stream uma vez, para todo o lote. Use o
continuationdo lote contido na resposta. - avançar o fluxo para cada comentário individual. Use o
continuationdo comentário, contido na resposta.
comment_filter ao criar o stream, os resultados não incluirão comentários que não correspondam ao filtro, mas ainda contarão para o max_filtered solicitado. Você pode observar respostas em que todos os comentários max_filtered são filtrados, levando a uma matriz results vazia. No exemplo a seguir, você solicita um lote de 8 comentários, todos os quais são filtrados.
{
"filtered": 8,
"results": [],
"sequence_id": "qs8QcHIBAADJ1p3W2FtmBB3QiOJsCJlR",
"status": "ok"
}{
"filtered": 8,
"results": [],
"sequence_id": "qs8QcHIBAADJ1p3W2FtmBB3QiOJsCJlR",
"status": "ok"
}max_filtered , para evitar que os comentários filtrados sejam contados no max_results solicitado.
/fetch legada não retorna comentários com previsões que não atenderam ao limite de confiança.
/results , você retorna todas as previsões para um comentário e o confidencevalue também. Você também indica quais tipos de limite ele atende.
"occurrence_confidence": {
"value": 0.9905891418457031,
"thresholds": ["stream"]
} "occurrence_confidence": {
"value": 0.9905891418457031,
"thresholds": ["stream"]
}confidence para uma previsão 0.9905.. e o valor thresholds indica que a previsão atende ao limite configurado para o stream.
stream para confirmar se a previsão atende ao limite que você configurou no stream. Além disso, os limites automáticos podem ser retornados, e os valores esperados para eles são: high_recall, high_precision e balanced.
Para obter mais informações sobre as extrações geradas e como trabalhar com limites, consulte a página Compreensão da validação das extrações e do desempenho da extração .
| Nome | Tipo | Required | Descrição |
|---|---|---|---|
max_results | Número | não | O número de comentários a serem buscados para este fluxo. Retorna menos comentários se atingir o fim do lote ou se você filtrar os comentários de acordo com o filtro de comentários. O valor máximo é 32. O padrão é 16. |
max_filtered | Número | não | Parâmetro de conveniência para transmissões com um filtro de comentários. Quando você os fornece, até max_filtered comentários filtrados não são contabilizados para os max_results solicitados. Isso é útil se você espera que um grande número de comentários não corresponda ao filtro. Não tem efeito em transmissões sem um filtro de comentários. O valor máximo é 1024. O padrão é nulo.
|
| Nome | Tipo | Descrição |
|---|---|---|
status | String | ok se a solicitação for bem-sucedida ou error, em caso de erro. Para saber mais sobre respostas de erro, consulte a página Visão geral .
|
num_filtered | Número | Número de comentários que foram filtrados com base em um filtro de comentários. Se você criou o stream sem um filtro, esse número é sempre 0.
|
continuation | String | O token de continuação de lote. Use-o para confirmar o processamento desse lote e avançar o stream para o próximo lote. |
more_results | Bool | Verdadeiro se não houvesse resultados adicionais no fluxo, quando você fez a solicitação. Caso contrário, falso. |
results | array<Result> | Uma matriz que contém objetos de resultado. |
Result tem o seguinte formato:
| Nome | Tipo | Descrição |
|---|---|---|
comment | Comentar | Dados do comentário. Para uma explicação detalhada, consulte a Referência de comentário. |
continuation | String | O token de continuação do comentário. Usado para confirmar o processamento deste comentário e avançar para o próximo comentário. |
prediction | array<Prediction> | A previsão para este comentário. Está disponível apenas se o fluxo especificar uma versão do modelo. Para obter mais informações sobre previsões generativas, consulte a página: Communications Mining™ - Entendendo a validação em extrações e a página desempenho de extração . |
Prediction tem o seguinte formato:
| Nome | Tipo | Descrição |
|---|---|---|
taxonomies | array<TaxonomyPrevisão><TaxonomyPrediction> | Lista de previsões de taxonomia. Atualmente, você define apenas uma taxonomia por conjunto de dados, mas a fornece como uma lista, para compatibilidade futura. |
TaxonomyPrediction tem o seguinte formato:
| Nome | Tipo | Descrição |
|---|---|---|
name | String | Nome da taxonomia. O único valor no momento é default.
|
labels | matriz<LabelPrediction> | Uma lista de previsões de rótulos extraídas com seus occurrence_confidence, extraction_confidence e fields extraídos. Para obter mais informações sobre previsões generativas, consulte a página Communications Mining - Validação de compreensão sobre extrações e desempenho de extração .
|
general_fields | matriz<FieldPrediction> | Uma lista de previsões de campo geral extraídas com seus name e value extraídos. Para obter mais informações sobre previsões generativas, consulte a página Communications Mining - Validação de compreensão sobre extrações e desempenho de extração .
|