Criar Entidades
Veja como criar uma entidade.
Entidades de Lista de Valores para Vários Idiomas
Dica:
Para garantir que sua habilidade produza consistentemente respostas no idioma detectado, sempre incluauseFullEntityMatches: true
nos estados Resposta Comum, Resolver Entidades e Entidade de Correspondência. Conforme descrito em Adicionar Idiomas Suportados Nativamente a uma Habilidade, definir essa propriedade como true
(o padrão) retorna o valor da entidade como um objeto cujas propriedades diferenciam o idioma principal do idioma detectado. Quando referenciadas nas expressões FreeMarker do Apache, essas propriedades garantem que o idioma apropriado seja exibido no texto e nos labels da mensagem da habilidade.
Suporte a Stemming de Palavras no Fuzzy Match
A partir da Versão 22.10, a correspondência difusa para entidades de valor de lista é baseada na palavra derivada, em que uma correspondência de valor é baseada na raiz lexical da palavra. Nas versões anteriores, a correspondência difusa era ativada por meio de correspondência parcial e correção automática. Embora essa abordagem fosse tolerante a erros de digitação na entrada do usuário, incluindo palavras transpostas, ela também poderia resultar em correspondências para mais de um valor dentro da entidade da lista de valores. Com a haste, essa dispersão é eliminada: as correspondências são baseadas na ordem das palavras da entrada do usuário, portanto, uma única correspondência é feita ou nenhuma. Por exemplo, "Lovers Veggie" não resultaria em nenhuma correspondência, mas "Veggie Lover" corresponderia ao valor Veggie Lovers de uma entidade do tipo pizza. (Observe que o "amante" é derivado.) Palavras de interrupção, como artigos e preposições, são ignoradas em valores extraídos, assim como caracteres especiais. Por exemplo, "Veggie the Lover" e "Veggie////Lover" corresponderiam ao valor Veggie Lovers.
Criar Entidades de ML
Entidades de ML são uma abordagem orientada a modelos para extração de entidades. Assim como as intenções, você cria Entidades de ML com base em declarações de treinamento - provavelmente as mesmas declarações de treinamento usadas para criar suas intenções. No entanto, para Entidades ML, anote as palavras nas declarações de treinamento que correspondem a uma entidade.
Para começar, você mesmo pode anotar alguns dos dados de treinamento, mas, como é o caso das intenções, você pode desenvolver um conjunto de treinamento mais variado (e, portanto, robusto) por meio do crowd sourcing dele. Conforme observado nas diretrizes de treinamento, a detecção robusta de entidades requer de 600 a 5000 ocorrências de cada entidade de ML em todo o conjunto de treinamento. Além disso, se os dados de treinamento da intenção já forem expansivos, talvez você queira obtê-los em vez de anotar cada declaração por conta própria. Em ambos os casos, você deve analisar seus dados de treinamento para descobrir se as entidades estão representadas uniformemente e se os valores das entidades são suficientemente variados. Com as anotações concluídas, treine o modelo e teste-o. Depois de revisar as entidades detectadas nas execuções de teste, você pode continuar a atualizar o corpus e treinar novamente para melhorar a precisão.
- Clique em + Adicionar Entidade.
- Preencha a caixa de diálogo Criar Entidade. Lembre-se de que Nome e Descrição aparecem nas páginas do colaborador para Jobs de Anotação de Entidade.
- Informe um nome que identifique o conteúdo anotado. Um nome exclusivo ajuda os colaboradores.
- Insira uma descrição. Embora esta seja uma propriedade opcional, os colaboradores a usam, juntamente com a propriedade Nome, para diferenciar entidades.
- Escolha Entidade do ML na lista.
- Ative Excluir Correspondências de Entidade do Sistema quando as anotações de treinamento contiverem nomes, locais, números ou outro conteúdo que possa entrar em conflito com os valores de entidade do sistema. A definição dessa opção impede que o modelo extraia valores de entidade do sistema que estão dentro da entrada resolvida para essa entidade ML. Ele impõe um limite em torno dessa entrada para que o modelo o reconheça apenas como um valor de entidade ML e não faça parsing dele ainda mais para valores de entidade do sistema. Você pode definir essa opção para entidades compostas que fazem referência a entidades ML.
- Clique em Criar.
- Clique em +Value Listar Entidades para associar essa entidade a até cinco Entidades de Lista de Valores. Isso é opcional, mas associar uma Entidade de ML a uma Entidade da Lista de Valores combina a extração contextual da Entidade de ML e a extração independente do contexto da Entidade da Lista de Valores.
- Clique na guia DataSet. Esta página lista todas as declarações de cada Entidade de ML em sua habilidade, que incluem as declarações que você mesmo adicionou para inicializar a entidade, aquelas enviadas de jobs de fornecimento coletivo ou que foram importadas como objetos JSON. Nesta página, você pode adicionar declarações manualmente ou em massa fazendo upload de um arquivo JSON. Você também pode gerenciar as declarações desta página editando-as (incluindo anotando-as ou reanotando-as) ou excluindo, importando e exportando-as.
- Adicione declarações manualmente:
- Clique em Adicionar Declaração. Depois de adicionar a declaração, clique em Editar Anotações para abrir a Lista de Entidades.
Observação
Você só pode adicionar uma declaração de cada vez. Se quiser adicionar declarações em massa, você poderá adicioná-las por meio de um job de Anotação de Entidade ou fazer upload de um arquivo JSON. - Destaque o texto relevante para a Entidade ML e, em seguida, conclua a rotulagem selecionando a Entidade ML na Lista de Entidades. Você pode remover uma anotação clicando em x no label.
- Clique em Adicionar Declaração. Depois de adicionar a declaração, clique em Editar Anotações para abrir a Lista de Entidades.
- Adicione declarações de um arquivo JSON. Este arquivo JSON contém uma lista de objetos de declaração.
Você pode fazer upload dele clicando em Mais > Importar para recuperá-lo do sistema local.[ { "Utterance": { "utterance": "I expensed $35.64 for group lunch at Joe's on 4/7/21", "languageTag": "en", "entities": [ { "entityValue": "Joe's" "entityName": "VendorName", "beginOffset": 37, "endOffset": 42 } ] } }, { "Utterance": { "utterance": "Give me my $30 for Coffee Klatch on 7/20", "languageTag": "en", "entities": [ { "entityName": "VendorName", "beginOffset": 19, "endOffset": 32 } ] } } ]
O objetoentities
descreve as entidades de ML que foram identificadas na declaração. Embora o exemplo anterior ilustre um único objetoentities
para cada declaração, uma declaração pode conter várias entidades de ML, o que significa vários objetosentities
:[ { "Utterance": { "utterance": "I want this and that", "languageTag": "en", "entities": [ { "entityName": "ML_This", "beginOffset": 7, "endOffset": 11 }, { "entityName": "ML_That", "beginOffset": 16, "endOffset": 20 } ] } }, { "Utterance": { "utterance": "I want less of this and none of that", "languageTag": "en", "entities": [ { "entityName": "ML_This", "beginOffset": 15, "endOffset": 19 }, { "entityName": "ML_That", "beginOffset": 32, "endOffset": 36 } ] } } ]
entityName
identifica a própria Entidade ML eentityValue
identifica o texto rotulado para a entidade.entityValue
é uma chave opcional que você pode usar para validar o texto rotulado em relação às alterações feitas na declaração. O próprio label é identificado pelas propriedadesbeginOffset
eendOffset
, que representam o deslocamento dos caracteres que começam e terminam o label. Esse deslocamento é determinado por caractere, não por palavra, e é calculado a partir do primeiro caractere da declaração (0-1).Observação
Você não pode criar as Entidades de ML com base nesse JSON. Eles devem existir antes de você fazer upload do arquivo.Se você não quiser determinar as compensações, poderá deixar o objetoO sistema verifica se há duplicações para evitar entradas redundantes. Somente as alterações feitas na definiçãoentities
indefinido e aplicar os labels depois de fazer upload do arquivo JSON.[ { "Utterance": { "utterance": "I expensed $35.64 for group lunch at Joe's on 4/7/21", "languageTag": "en", "entities": [] } }, { "Utterance": { "utterance": "Give me my $30 for Coffee Klatch on 7/20", "languageTag": "en", "entities": [] } } ]
entities
no arquivo JSON são aplicadas. Se uma declaração tiver sido alterada no arquivo JSON, ela será considerada uma nova declaração. - Edite uma declaração anotada:
- Clique em Editar
para remover a anotação.
Observação
Uma declaração modificada é considerada uma nova declaração (não anotada). - Clique em Editar Anotações para abrir a Lista de Entidades.
- Destaque o texto e selecione uma Entidade de ML na Lista de Entidades.
- Se precisar remover uma anotação, clique em x no label.
- Clique em Editar
- Adicione declarações manualmente:
- Quando terminar de anotar as declarações. Clique em Treinar para atualizar o Tm do instrutor e o modelo de Entidade.
- Teste o reconhecimento inserindo uma frase de teste no Testador de Declarações, idealmente uma com um valor não encontrado em nenhum dado de treinamento. Verifique os resultados para descobrir se o modelo detectou a Entidade ML correta e se o texto foi rotulado corretamente e completamente.
- Associe a Entidade ML a uma intenção.
Excluir Correspondências da Entidade do Sistema
A ativação de Excluir Correspondências de Entidade do Sistema impede que o modelo substitua valores de entidade do sistema extraídos anteriormente por valores concorrentes encontrados dentro dos limites de uma entidade ML. Com essa opção ativada, "Criar uma reunião na segunda-feira para discutir o resultado da terça-feira" mantém os valores da entidade DATE_TIME e ML separados resolvendo a entidade DATE_TIME aplicável (segunda-feira) e ignorando "Terça-feira" no texto reconhecido como a entidade ML ("discuta o resultado da terça-feira").
Você pode definir a opção Excluir Correspondências de Entidade do Sistema para entidades compostas que fazem referência a uma entidade ML.
Importar Entidades de Lista de Valores de um Arquivo CSV
Em vez de criar suas entidades uma por vez, você pode criar conjuntos inteiros delas quando importa um arquivo CSV que contém as definições de entidades.
Esse arquivo CSV contém colunas para nome da entidade (entity
), valor da entidade (value
) e quaisquer sinônimos (synonyms
). Você pode criar esse arquivo do zero ou pode reutilizar ou reajustar um CSV que tenha sido criado com base em uma exportação.
entity
, value
e synonyms
. Por exemplo :entity,value,synonyms
PizzaSize,Large,lrg:lrge:big
PizzaSize,Medium,med
PizzaSize,Small,little
value
e synonyms
. Por exemplo, se o idioma nativo principal da habilidade for inglês (en
), as colunas value
e synonyms
serão en:value
e en:synonyms
:entity,en:value,en:synonyms
PizzaSize,Large,lrg:lrge:big
PizzaSize,Medium,med
PizzaSize,Small,
PizzaSize,Extra Large,XL
Os CSVs que suportam vários idiomas nativos exigem conjuntos adicionais de colunas value
e synonyms
para cada idioma secundário. Se o idioma secundário de uma habilidade em inglês nativo for o francês (fr
), o CSV terá as colunas fr:value
e fr:synonyms
como correspondentes às colunas en
:entity,en:value,en:synonyms,fr:value,fr:synonyms
PizzaSize,Large,lrg:lrge:big,grande,grde:g
PizzaSize,Medium,med,moyenne,moy
PizzaSize,Small,,petite,p
PizzaSize,Extra Large,XL,pizza extra large,
- Se você importar um CSV anterior à versão 20.12 para uma habilidade 20.12 (incluindo aquelas que suportam idiomas nativos ou usam serviços de tradução), os valores e sinônimos serão importados como idiomas principais.
- Todos os valores de entidade dos idiomas principal e secundário devem ser exclusivos em uma entidade; portanto, não será possível importar um CSV se o mesmo valor tiver sido definido mais de uma vez para uma única entidade. Podem ocorrer valores duplicados nas versões anteriores à 20.12, em que os valores podem ser considerados exclusivos por causa das variações de maiúsculas e minúsculas. Isso não vale para a versão 20.12, na qual maiúsculas e minúsculas são aplicadas com mais rigor. Por exemplo, não será possível importar um CSV se ele tiver
PizzaSize, Small
ePizzaSize, SMALL
. Se você planeja fazer upgrade da Versão 20.12, primeiro resolva todos os valores de entidade iguais, mas diferenciados apenas por maiúsculas e minúsculas antes de fazer o upgrade. - O suporte ao idioma principal se aplica às habilidades criadas com o uso da Versão 20.12 e mais recente; sendo assim, remova primeiramente as tags de idioma e quaisquer entradas de idioma secundário para poder importar um CSV da Versão 20.12 para uma habilidade criada com uma versão anterior.
- Você pode importar um CSV multilíngue para habilidades que não usam suporte a idioma nativo, incluindo aquelas que usam serviços de tradução.
- Se você importar um CSV multilíngue para uma habilidade que suporte idiomas nativos ou usa serviços de tradução, somente as linhas que fornecem um valor válido para o idioma principal serão importadas. O restante é ignorado.
-
Clique em Entidades (
) na barra de navegação esquerda.
-
Clique em Mais, escolha Importar entidades da lista de Valores e selecione o arquivo
.csv
no seu sistema local.
Descrição da ilustração import-entities.png -
Adicione as entidades a uma intenção (ou a uma lista de entidades e depois a uma intenção).
Exportar Entidades de Lista de Valores para um Arquivo CSV
entity
, value
e synonyms
. Esse CVS tem requisitos específicos da release que podem impactar a reutilização.
- Os CSVs exportados de habilidades criadas ou atualizados para a Versão 20.12 estão equipados para suporte ao idioma nativo por meio das tags de idioma principal (e, às vezes, secundário) anexadas às colunas
value
esynonyms
. Por exemplo, o CSV no trecho de código a seguir tem um conjunto de colunasvalue
esynonyms
para o idioma principal da habilidade, inglês (en
) e outro conjunto para seu idioma secundário, francês (fr
):
As tags de idioma principal são incluídas em todos os CSVs 20.12, independentemente do suporte ao idioma nativo. Elas estão presentes nas habilidades que não se destinam a executar qualquer tipo de tradução (nativa ou por meio de um serviço de tradução) e nas habilidades que usam serviços de tradução.entity,en:value,en:synonyms,fr:value,fr:synonyms
- Os CSVs exportados das habilidades em execução nas versões anteriores à 20.12 têm as colunas de entidade, valor e sinônimos, mas não têm tags de idioma.
-
Clique em Entidades (
) na barra de navegação esquerda.
-
Clique em Mais, escolha Exportar entidades da lista de Valores e salve o arquivo.
Descrição da ilustração export-entities.pngO arquivo
.csv
exportado é nomeado para sua habilidade. Se você for usar esse arquivo como importação, talvez precise fazer algumas edições descritas em Importar Intenções de um Arquivo CSV se for importá-lo ou exportá-lo das habilidades da Versão 20.12 e de versões anteriores.
Criar entidades dinâmicas
Os valores de entidade dinâmica são gerenciados por meio dos pontos finais da API de Entidades Dinâmicas, descritos em API REST do Oracle Digital Assistant. Para adicionar, modificar e excluir os valores de entidade e sinônimos, primeiro você deve criar uma entidade dinâmica para gerar o entityId
usado nas chamadas REST.
- Clique em + Entidade.
- Escolha Entidades Dinâmicas na lista Tipo.
- Se o serviço de backend estiver indisponível ou ainda não tiver enviado nenhum valor, ou se você não mantiver o serviço, clique em + Valor para adicionar valores simulados que poderão ser usados para fins de teste. Normalmente, você adicionaria esses valores estáticos antes da efetivação da infraestrutura de entidade dinâmica. Esses valores são perdidos quando você clona, cria ou exporta uma habilidade. Depois de provisionar os valores de entidade por meio da API, você poderá substituir ou manter esses valores (embora na maioria dos casos você os substitua).
- Clique em Criar.
Dica:
Se a API atualizar os valores da entidade conforme você estiver testando a conversa, clique em Redefinir para reiniciar a conversa.- Você pode consultar as entidades dinâmicas configuradas para uma habilidade usando o
entityId
gerado com obotId
. Inclua esses valores nas chamadas para criar as solicitações de envio e os objetos que atualizam os valores da entidade. - Uma entidade não pode ter mais de 150.000 valores. Para reduzir a probabilidade de exceder esse limite quando você estiver lidando com grandes quantidades de dados, envie solicitações
PATCH
com suas exclusões antes de enviar solicitaçõesPATCH
com suas adições.
Entidades Dinâmicas são suportadas apenas em instâncias doOracle Digital Assistant provisionadas no Oracle Cloud Infrastructure (às vezes chamada de infraestrutura de nuvem Geração 2). Se sua instância for provisionada no Oracle Cloud Platform (como todas as instâncias da versão 19.4.1), você não poderá usar o recurso.
Diretrizes para a Criação de Entidades de ML
- Crie Entidades de ML concisas. A definição da Entidade de ML está na base de um conjunto de treinamento útil; portanto, a clareza é fundamental em termos de seu nome e da descrição que ajudam os colaboradores a anotar declarações.
Como os colaboradores dependem das descrições e nomes da Entidade de ML, você deve garantir que suas Entidades de ML sejam facilmente distinguíveis entre si, especialmente quando houver sobreposição potencial. Se as diferenças não estiverem claras para você, é provável que os trabalhadores da multidão fiquem confusos. Por exemplo, as entidades Comerciante e Tipo de Conta podem ser difíceis de diferenciar em alguns casos. Em "Transferir US $ 100 da minha conta poupança para a Pacific Gas and Electric", você pode rotular claramente "economia" como Tipo de Conta e Pacific Gas and Electric como Comerciante. No entanto, a fronteira entre os dois pode ser confundida em frases como "Precisa enviar dinheiro para John, transferir US $ 100 da minha poupança para sua conta corrente". A "conta de verificação" é um tipo de Conta ou um nome de Comerciante? Nesse caso, você pode decidir que qualquer destinatário deve ser sempre um nome de comerciante em vez de um tipo de conta.
- Na preparação do crowdsourcing das declarações de treinamento, considere a entrada típica do usuário para diferentes contextos de extração de entidade. Por exemplo, o valor pode ser extraído na mensagem inicial do usuário (contexto de declaração inicial) ou é extraído de respostas para os prompts da habilidade (contexto de declaração de slot)?
Contexto Descrição Exemplo de Declarações (valores de Entidade ML detectados em negrito) Contexto de declaração inicial Uma mensagem que geralmente é bem estruturada e inclui valores de Entidade de ML. Para uma habilidade de relatório de despesas, por exemplo, a declaração incluiria um valor que o modelo pode detectar para uma Entidade de ML chamada Comerciante. Crie uma despesa para o jantar da equipe na John's Pasta Shop por US$ 85 em 3 de maio Contexto de declaração do slot Uma mensagem do usuário que fornece a Entidade ML em resposta a um prompt, seja por causa do design da conversa (a habilidade solicita "Quem é o comerciante?") ou para dividir um valor porque ele não foi fornecido por uma resposta enviada anteriormente. Em outras circunstâncias, o valor da Entidade ML pode já ter sido fornecido, mas pode ser incluído em outras mensagens do usuário na mesma conversa. Por exemplo, a habilidade pode solicitar que os usuários forneçam detalhes de despesas adicionais ou descrevam a imagem de um recebimento carregado.
- O comerciante é a John's Pasta Shop.
- Jantar de equipe. Valor $85. John's Pasta Shop.
- A descrição é TurboTaxi de casa para o aeroporto CMH.
- Recebimento do Grandiose Shack Hotel para simpósio de nuvem
- Reúna seus dados de treinamento e teste.
- Se você já tiver uma coleção suficiente de declarações, talvez queira avaliá-las para distribuição de entidades e diversidade de valores de entidades antes de iniciar um job de Anotação de Entidade.
- Se você não tiver dados de treinamento suficientes ou estiver começando do zero, inicie um Job de Paráfrase da Intenção. Para reunir declarações viáveis (e abundantes) para treinamento e teste, integre o contexto da entidade ao job criando tarefas para cada intenção. Para reunir diversas frases, considere dividir cada intenção pelo contexto da conversa.
- Para o prompt da tarefa, forneça o contexto dos colaboradores e pergunte a eles: "Como você responderia?" ou "O que você diria?" Use as dicas anexas para fornecer exemplos e ilustrar diferentes contextos. Por exemplo :
Prompt Dica Você está conversando com um bot de relatórios de despesas e deseja criar uma despesa. Qual seria a primeira coisa que você diria? Certifique-se de que o nome do comerciante esteja na declaração. Você pode dizer algo como: "Crie uma despesa para jantar em equipe na John's Pasta Shop por US $ 85 em 3 de maio". Prompt Dica Você enviou uma despesa para um bot de relatório de despesas, mas não forneceu um nome de comerciante. Como você responderia? Identifique o comerciante. Por exemplo, "Merchant é John's Pasta Shop". Você fez upload de uma imagem de um recibo para um bot de relatórios de despesas. Agora está pedindo para você descrever o recibo. Como você responderia? Identifique o nome do estabelecimento no recibo. Por exemplo: "Grandiose Shack Hotel recibo para simpósio de nuvem." Contexto Declarações de Exemplo Contexto de declaração inicial Pague-me de volta para o jantar de terça-feira Contexto de declaração do slot - Jantar de apresentação. Valor $ 50, 4 pessoas.
- Descrição xerox lunch for 5
- Recibo do hotel para estadia na entrevista
- Reúna um grande conjunto de treinamento definindo um número apropriado de paráfrases por intenção. Para que o modelo seja generalizado com sucesso, seu conjunto de dados deve conter entre 500 e 5000 ocorrências para cada entidade de ML. Idealmente, você deve evitar a extremidade baixa deste intervalo.
- Depois que os colaboradores concluírem o job (ou tiverem concluído declarações suficientes para que você possa cancelar o job), você poderá adicionar as declarações ou iniciar um job de Validação de Intenção para verificá-las. Você também pode baixar os resultados para o seu sistema local para revisão adicional.
- Reserve cerca de 20% das declarações para teste. Para criar CSVs para o Testador de Declaração com base nos CSVs baixados para jobs de Paráfrase de Intenção e Validação de Intenção:
- Para jobs de Paráfrase de Intenção: transfira o conteúdo na coluna
result
(as declarações fornecidas pelos colaboradores) para a colunautterance
no CSV do Testador de Declaração. Transfira o conteúdo da colunaintentName
para a colunaexpectedIntent
no CSV do Testador de Declaração. - Para jobs de Validação de Intenção: transfira o conteúdo na coluna
prompt
(as declarações fornecidas pelos colaboradores) para a colunautterance
no CSV do Testador de Declaração. Transfira o conteúdo da colunaintentName
para a colunaexpectedIntent
no CSV do Testador de Declaração.
- Para jobs de Paráfrase de Intenção: transfira o conteúdo na coluna
- Adicione as declarações restantes a um arquivo CSV com uma única coluna,
utterance
. Crie um Job de Anotação de Entidade carregando este CSV. Como os colaboradores estão rotulando os valores da entidade, eles provavelmente classificarão declarações negativas como "Não tenho certeza" ou "Nenhuma das entidades se aplica". - Depois que o job de Anotação de Entidade for concluído, você poderá adicionar os resultados ou iniciar um job de Validação de Entidade para verificar a rotulagem. Somente as declarações que os colaboradores consideram corretas em um job de Validação de Entidade podem ser adicionadas ao corpus.
Dica:
Você pode adicionar, remover ou ajustar os rótulos de anotação na guia Conjunto de Dados da página Entidades. - Treine a entidade selecionando Entidade.
- Execute casos de teste para avaliar o reconhecimento de entidade usando as declarações reservadas do job de Paráfrase de Intenção. Você pode dividir essas declarações em diferentes suítes de teste para testar diferentes comportamentos (valores desconhecidos, pontuação que podem não estar presentes nos dados de treinamento, falsos positivos etc.). Como pode haver um grande número dessas declarações, você pode criar suítes de teste fazendo upload de um CSV no Testador de Declaração.Observação
O Testador de Declaração só exibe labels de entidade para aprovação de casos de teste. Use um Teste Rápido para exibir os labels das declarações que são resolvidas abaixo do limite de confiança. - Use os resultados para refinar o conjunto de dados. Adicione, remova ou edite iterativamente as declarações de treinamento até que os resultados da execução do teste indiquem que o modelo está identificando efetivamente as Entidades de ML.
Observação
Para evitar correspondências inadvertidas de entidades que degradam a experiência do usuário, ative Excluir Correspondências de Entidades do Sistema se os dados de treinamento contiverem nomes, locais, números.
ML - Diretrizes de Treinamento de Entidade
O modelo generaliza uma entidade usando tanto o contexto em torno de uma palavra (ou palavras) quanto a informação lexical sobre a própria palavra. Para que o modelo seja generalizado de forma eficaz, recomendamos que o número de anotações por entidade varie entre 500 e 5000. Talvez você já tenha um conjunto de treinamento grande o suficiente e que tenha a variação de valores de entidade esperada dos usuários finais. Se esse for o caso, você poderá iniciar um job de Anotação de Entidade e, em seguida, incorporar os resultados nos dados de treinamento. No entanto, se você não tiver dados de treinamento suficientes ou se os dados que você tem não tiverem cobertura suficiente para todas as entidades de ML, poderá coletar declarações de jobs de Paráfrase de Intenção de origem coletiva.
- Não use em excesso os mesmos valores de entidade em seus dados de treinamento. Valores de entidade repetitivos nos dados de treinamento impedem que o modelo se generalize em valores desconhecidos. Por exemplo, você espera que a Entidade ML reconheça uma variedade de valores, mas a entidade é representada por apenas 10 a 20 valores diferentes em seu conjunto de treinamento. Nesse caso, o modelo não se generalizará, mesmo que haja duas ou três mil anotações.
- Variar o número de palavras para cada valor de entidade. Se você espera que os usuários insiram valores de entidade com três a cinco palavras, mas seus dados de treinamento são anotados com valores de entidade de uma ou duas palavras, o modelo poderá não identificar a entidade à medida que o número de palavras aumenta. Em alguns casos, ela só pode identificar parcialmente a entidade. O modelo assume o limite da entidade das declarações que você forneceu. Se você treinou o modelo em valores com uma ou duas palavras, ele assumirá que o limite da entidade tem apenas uma ou duas palavras. A adição de entidades com mais palavras permite que o modelo reconheça limites mais longos para a entidade.
- O tamanho da declaração deve refletir seu caso de uso e a entrada antecipada do usuário. Você pode treinar o modelo para detectar entidades para mensagens de tamanhos variados, coletando declarações curtas e longas. As declarações podem até ter várias frases. Se você espera declarações curtas que reflitam o contexto de preenchimento de slot, reúna seus dados de amostra adequadamente. Da mesma forma, se você estiver antecipando declarações para o cenário de contexto inicial, o conjunto de treinamento deverá conter frases completas.
- Incluir pontuação. Se os nomes de entidades exigirem caracteres especiais, como '-' e '/', inclua-os nos valores de entidade nos dados de treinamento.
- Certifique-se de que todas as Entidades de ML estejam igualmente representadas em seus dados de treinamento. Um conjunto de treinamento desequilibrado tem muitas instâncias de uma entidade e muito poucas de outra. Os modelos produzidos a partir de conjuntos de treinamento desequilibrados às vezes não conseguem detectar a entidade com poucas instâncias e prever demais as entidades com instâncias desproporcionalmente altas. Isso leva a falsos positivos.
ML - Diretrizes de Teste de Entidade
- Use apenas declarações de contexto de slot para descobrir o quão bem o modelo prevê entidades com menos contexto.
- Use declarações com valores "desconhecidos" para descobrir quão bem o modelo se generaliza com valores que não estão presentes nos dados de treinamento.
- Use declarações sem Entidades de ML para descobrir se o modelo detecta falsos positivos.
- Use declarações que contenham valores de Entidade ML com pontuação para descobrir o desempenho do modelo com valores de entidade incomuns.