Criar uma Intenção
Veja a seguir as etapas para criar uma intenção em uma habilidade.
Adicionar Entidades a Intenções


Agnóstico de Valor só se aplica a entidades incorporadas. Não é possível aplicá-lo a entidades personalizadas.
Você tem a opção de clicar em Nova Entidade para adicionar uma entidade específica da intenção.
Dica:
Somente as entidades de intenção incluídas nos payloads JSON são enviadas ao Component Service e retornadas por ele. As que não estiverem associadas a uma intenção não serão incluídas, mesmo que contribuam para a resolução da intenção reconhecendo a entrada do usuário. Se seu componente personalizado acessar entidades por meio de correspondências de entidade, certifique-se de adicionar a entidade à sua intenção.Entidades de Intenção Independentes de Valor
O recurso Agnóstico do Valor permite ajustar como os valores da entidade afetam a classificação da intenção. Quando você ativa esse recurso, os valores específicos de uma entidade incorporada associada não têm relação com a classificação da intenção. No entanto, ao desativar esse recurso, você permite que o valor da entidade desempenhe um papel fundamental na resolução da entrada.
Intenções de Exemplo | Entidade Associada | Declarações de Treinamento | Ativar Agnóstico de Valor? |
---|---|---|---|
Saldo da Conta | DATE |
|
Sim - Os valores de data específicos não sinalizam a intenção. Os vários valores de data nessas declarações podem ser ignorados porque um usuário pode solicitar um saldo de conta em qualquer dia. |
Horário da Loja de Feriados | DATE |
|
Não - A classificação da intenção é baseada em um conjunto específico (e limitado) de valores e os usuários estão perguntando sobre feriados. |
|
DATE |
|
Não - Desative Agnóstico de Valor para ambas as intenções. Nesse caso, valores DATE agnósticos significariam que o modelo não consideraria um valor como passado ou futuro. Um valor "último mês", que deve sinalizar a intenção Verificar Saldo de Férias Passado, será ignorado. Como resultado, uma entrada com palavras semelhantes, como "Eu tirei alguma folga no próximo mês", pode ser resolvida incorretamente para essa intenção. |
Importar Intenções de um Arquivo CSV
Você pode adicionar suas intenções manualmente ou importá-las de um arquivo CSV. Você pode criar esse arquivo com base em um CSV de intenções exportadas ou criando-o do zero em um programa de planilha ou arquivo de texto.
O arquivo CSV tem seis colunas para habilidades que usam o modo de idioma Suportado Nativamente e cinco colunas para aquelas que não usam. Estes são os nomes das colunas e o que elas representam:
query
: Um exemplo de declaração.topIntent
: A intenção à qual a declaração deve corresponder.conversationName
: O nome da conversa da intenção.answer
: Para intenções de resposta, a resposta estática da intenção.enabled
: Setrue
, a intenção será ativada na habilidade.nativeLanguageTag
: (Para habilidades com suporte ao idioma nativo somente) o idioma da declaração. Para valores, use tags de idioma de dois caracteres (fr
,en
etc.).- Para habilidades com suporte ao idioma nativo do Digital Assistant, essa coluna é obrigatória.
- Para habilidades sem suporte ao idioma nativo, não é possível importar um CSV que tenha essa coluna.
Este é um trecho de um arquivo CSV para uma habilidade que não tem suporte ao idioma nativo e que não usa intenções de resposta.
query,topIntent,conversationName,answer,enabled
I want to order a pizza,OrderPizza,Order a Pizza.,,true
I want a pizza,OrderPizza,Order a Pizza.,,true
I want a pizaa,OrderPizza,Order a Pizza.,,true
I want a pizzaz,OrderPizza,Order a Pizza.,,true
I'm hungry,OrderPizza,Order a Pizza.,,true
Make me a pizza,OrderPizza,Order a Pizza.,,true
I feel like eating a pizza,OrderPizza,Order a Pizza.,,true
Gimme a pie,OrderPizza,Order a Pizza.,,true
Give me a pizza,OrderPizza,Order a Pizza.,,true
pizza I want,OrderPizza,Order a Pizza.,,true
I do not want to order a pizza,CancelPizza,Cancel your order.,,true
I do not want this,CancelPizza,Cancel your order.,,true
I don't want to order this pizza,CancelPizza,Cancel your order.,,true
Cancel this order,CancelPizza,Cancel your order.,,true
Can I cancel this order?,CancelPizza,Cancel your order.,,true
Cancel my pizza,CancelPizza,Cancel your order.,,true
Cancel my pizaa,CancelPizza,Cancel your order.,,true
Cancel my pizzaz,CancelPizza,Cancel your order.,,true
I'm not hungry anymore,CancelPizza,Cancel your order.,,true
don't cancel my pizza,unresolvedIntent,unresolvedIntent,,true
Why is a cheese pizza called Margherita,unresolvedIntent,unresolvedIntent,,true
Este é o trecho de um arquivo CSV para uma habilidade com suporte ao idioma nativo que usa intenções de resposta.
query,topIntent,conversationName,answer,enabled,nativeLanguageTag
Do you sell pasta,Products,Our Products,We sell only pizzas. No salads. No pasta. No burgers. Only pizza,true,en
Vendez-vous des salades,Products,Our Products,Nous ne vendons que des pizzas. Pas de salades. Pas de pâtes. Pas de hamburgers. Seulement pizza,fr
do you sell burgers,Products,Our Products,We sell only pizzas. No salads. No pasta. No burgers. Only pizza,true,en
Do you sell salads,Products,Our Products,We sell only pizzas. No salads. No pasta. No burgers. Only pizza,true,en
Vendez des hamburgers,Products,Our Products,Nous ne vendons que des pizzas. Pas de salades. Pas de pâtes. Pas de hamburgers. Seulement pizza,true,fr
Para importar um arquivo CSV:
-
Clique em Intenções (
) na barra de navegação esquerda.
-
Clique em Mais e escolha Importar intenções.
Descrição da ilustração import-intents.png -
Selecione o arquivo
.csv
e depois clique em Abrir. -
Treine sua habilidade.
Exportar Intenções para um Arquivo CSV
Você pode reutilizar seu corpus de treinamento exportando-o para CSV. Você pode então importar esse arquivo para outra habilidade.
-
Clique em Intenções
na barra de navegação esquerda.
-
Clique em Mais e escolha Exportar intenções.
Descrição da ilustração export-corpus.png -
Salvar o arquivo. Este arquivo tem as seguintes colunas, que são descritas em Importar Intenções de um Arquivo CSV:
query, topIntent, conversationName, answer, enabled, nativeLanguageTag
Qual Modelo de Treinamento Devo Usar?
Não é possível usar o Trainer Ht para habilidades que usam intenções de resposta, usar suporte ao idioma nativo ou ter um grande número de intenções. Use o Trainer Tm para essas habilidades.
Trainer Tm
Ao treinar com o Trainer Tm, você também pode usar o Relatório de Declarações Semelhantes.
Você não precisa aumentar seus dados de treinamento em massa com declarações que acomodem distinção entre maiúsculas e minúsculas (o Tm reconhece BlacK Friday como Black Friday, por exemplo), pontuação, verbos e substantivos semelhantes ou erros de ortografia. No último caso, o Trainer Tm usa contexto para resolver uma frase mesmo quando um usuário digita uma palavra-chave incorretamente. Aqui estão algumas diretrizes gerais para criar um corpus de treinamento quando você está desenvolvendo sua habilidade com este modelo.
- Reconhecendo o conteúdo irrelevante. Para Mal posso esperar pelas ofertas da próxima Black Friday. Estou realmente ansioso. Você pode me dizer o que vai estar com desconto na Black Friday?, Trainer Tm:
- Descarta o conteúdo estranho (Mal posso esperar pelas ofertas da próxima Black Friday...)
- Resolve o conteúdo relevante (Você pode me dizer o que vai estar com desconto na Black Friday?) para uma intenção. Neste caso, uma intenção chamada Ofertas da Black Friday.
O Trainer Tm também pode distinguir entre o conteúdo relevante e irrelevante em uma mensagem, mesmo quando o conteúdo irrelevante pode ser potencialmente resolvido para uma intenção. Comprei a nova TV de 80 polegadas na Black Friday por US$ 2200, mas agora vejo que o mesmo aparelho está disponível on-line por US$ 2100. Você oferece correspondência de preço? Por exemplo, poderia corresponder à intenção Ofertas da Black Friday e a uma intenção Correspondência de Preço, que é apropriada para esta mensagem. Neste caso, o Trainer Tm:- Reconhece que Comprei a nova TV de 80 polegadas na Black Friday por US$ 2200, mas agora vejo que o mesmo aparelho está disponível on-line por US$ 2100 é um conteúdo estranho.
- Resolve Você oferece correspondência de preço?
- Resolvendo intenções quando uma única palavra ou um nome corresponde a uma entidade. Por exemplo, o Trainer Tm pode resolver uma mensagem consistindo em apenas Black Friday para uma intenção associada a uma entidade da Black Friday.
- Distinguindo entre declarações semelhantes (Cancel my order e Why did you cancel my order?).
- Reconhecendo declarações fora de escopo, como Show me pizza recipes ou How many calories in a Meat Feast para uma habilidade para atender a um pedido de pizza e nada mais.
- Reconhecendo declarações fora de domínio, como What's the weather like today para uma habilidade de pedido de pizza.
Dica:
Embora o Trainer Tm possa facilmente distinguir quando uma mensagem de usuário não pode ser classificada porque é claramente diferente dos dados de treinamento, talvez você ainda queira definirunresolvedIntent
com declarações que representem as frases que deseja garantir que não sejam resolvidas para nenhuma das intenções de sua habilidade. Essas frases podem estar dentro do domínio de sua habilidade, mas ainda estão fora do escopo, embora possam compartilhar algumas das mesmas palavras que os dados de treinamento. Por exemplo, I want to order a car para uma habilidade de pizza, que também tenha sido treinada com I want to order a pizza. - Distinguindo entre entidades semelhantes – Por exemplo, o Tm reconhece que o e-mail não é igual ao e-mail no contexto de uma intenção chamada Inscrever-se para Ofertas por E-mail. Porque ele reconhece que uma entidade chamada regular mail estaria fora do escopo, ele resolveria a frase I want to sign up for deals through regular mail com menos confiança do que resolveria I want to sign up for email deals.
Trainer Ht
O Trainer Ht é o modelo de treinamento padrão. Ele precisa apenas de um pequeno corpus de treinamento; portanto, use-o conforme você desenvolve as entidades, as intenções e o corpus de treinamento. Quando o corpus de treinamento estiver consistente com o ponto em que os testes revelam uma resolução de intenção altamente precisa, você estará pronto para adicionar uma dimensão mais profunda à cognição da sua habilidade usando o Trainer Tm.
Você obtém um entendimento geral de como o Trainer Ht resolve intenções apenas do próprio corpus de treinamento. Ele forma regras de correspondência das sentenças de amostra, marcando partes de fala e entidades (personalizadas e incorporadas) e detectando palavras que tenham o mesmo significado no contexto da intenção. Se uma intenção chamada SendMoney tiver Send $500 to Mom e Pay Cleo $500, por exemplo, o Trainer Ht interpretará pay como equivalente a send. Após o treinamento, a tag do Trainer Ht reduz essas sentenças a modelos (Send Currency to person, Pay person Currency) que ela aplica à entrada do usuário.
Como o Trainer Ht desenha as sentenças que você fornece, você pode prever seu comportamento: ele será altamente preciso quando testado com sentenças semelhantes às que formam o corpus de treinamento (a entrada do usuário que segue as regras, de modo a falar), mas poderá também render menos quando confrontado com entrada esotérica do usuário.
Criar seu Corpus de Treinamento
Ao definir uma intenção, você primeiro dá a ela um nome que ilustra uma ação do usuário e depois acompanha compilando um conjunto de instruções reais do usuário ou declarações. Coletivamente, suas intenções e as declarações que pertencem a elas formam um corpus de treinamento. O termo corpus é apenas uma forma rápida de dizer “todas as intenções e frases de amostra que eu encontrei para tornar essa habilidade inteligente”. O corpus é a chave para a inteligência da sua habilidade. Ao treinar um modelo com seu corpus, você essencialmente transforma esse modelo em uma ferramenta de referência para resolver a entrada do usuário como intenção única. Como seu corpus de treinamento por fim executa a função-chave na decisão de qual rota a conversa entre habilidade e humano tomará, escolha suas palavras cuidadosamente ao criá-lo.
Falando no sentido geral, um conjunto grande e variado de frases de amostra aumenta a capacidade do modelo de resolver intenções com precisão. Mas a criação de um corpus de treinamento robusto não só começa com frases de amostra bem elaboradas; na verdade, começa com intenções claramente delineadas. Elas devem não somente refletir claramente seu caso de uso, mas o relacionamento delas com as sentenças de amostra deve ser igualmente claro. Se você não tiver certeza de onde uma amostra de sentença pertence, suas intenções não serão distintas umas das outras.
Provavelmente, você tem declarações de amostra em mente quando cria suas intenções, mas pode expandi-las usando estas diretrizes.
Diretrizes para Trainer Tm
- Use um limite mínimo de confiança de 0,7 para qualquer habilidade que você planeja colocar em produção.
- Use boas convenções de nomenclatura para seus nomes de intenção, de modo que seja fácil revisar as iintenções relacionadas.
- Como regra geral, crie pelo menos 80 a 100 declarações para cada intenção. De acordo com as diretrizes de tamanho e forma do corpus, o número mínimo (por meio de não recomendado) de declarações para uma intenção é dois. O número total de declarações em seu conjunto de treinamento não deve exceder 25.000.
- Se possível, use frases de palavras reais não modificadas que incluam:
- expressões coloquiais
- abreviações padrão que um usuário pode inserir ("opty" para opportunity, por exemplo)
- nomes não padrão, como nomes de produtos
- variantes ortográficas ("check" e "cheque", por exemplo)
- Crie sentenças totalmente formadas que mencionem a ação e a entidade em que a ação é executada.
- Tente manter o comprimento da declaração entre 3 e 30 palavras. Declarações muito curtas e sem contexto podem fazer com que o modelo se generalize de maneiras imprevisíveis. Declarações que são muito longas podem impedir que o modelo identifique as palavras e frases pertinentes. No entanto, pode haver exceções para declarações de uma ou duas palavras quando são frases comumente usadas. Se você espera mensagens de duas palavras, como status do pedido, verificação de preço, informações de associação ou envio internacionalmente) que especificam a entidade e a ação, adicione-as aos seus dados de treinamento. Certifique-se de que suas frases de amostra tenham uma ação e uma entidade.
- Seja específico. Por exemplo, What is your store phone number? é melhor do que What is your phone number? porque permite que o Trainer Tm associe um número de telefone a uma loja. Como resultado desse aprendizado, ele resolverá What's your mom's phone number? para uma pontuação de confiança mais baixa.
- Embora o Trainer Tm detecte declarações fora do escopo, você ainda pode melhorar a confiança e a precisão criando uma
unresolvedIntent
para declarações que estão no domínio, mas que ainda estão fora do escopo das intenções da habilidade. Isso permite que o Trainer Tm saiba o limite das intenções de domínio. Você pode definir umaunresolvedIntent
para frases que não deseja resolver para nenhuma das intenções de sua habilidade. Talvez você só queira definir umaunresolvedIntent
quando as mensagens do usuário forem resolvidas para as intenções de uma habilidade, mesmo quando não se aplicarem a nenhuma delas. - Varie tanto quanto possível as palavras e frases que envolvem o conteúdo significativo. Por exemplo, "I'd like a pizza, please", "Can you get me a pizza?", "A pizza, please"
- Algumas práticas a serem evitadas:
- Não associe uma única palavra ou frase a uma intenção específica, a menos que essa palavra ou frase indique a intenção. As frases repetidas podem distorcer a resolução da intenção. Por exemplo, iniciar cada declaração de OrderPizza com "I want to …" e cada intenção de ShowMenu com "Can you help me to …" pode aumentar a probabilidade de o modelo resolver qualquer entrada do usuário que comece com "Can you help me to" com OrderPizza e "I want to" com ShowMenu.
- Uma alta ocorrência de declarações de uma palavra em suas intenções. As declarações de uma palavra são uma exceção. Use-as com moderação, se for o caso.
- Expressões abertas que possam ser facilmente aplicadas a outros domínios ou tópicos fora do domínio.
- Seu corpus não precisa repetir a mesma declaração om letras maiúsculas e minúsculas ou com diferentes formas de palavras que tenham o mesmo padrão. Por exemplo, como o Trainer Tm pode distinguir entre gerenciar, gerenciar e gerente, ele não só diferencia entre "O Sam é gerente de quem?" e "Quem é o gerente do Sam?", mas também entende que essas palavras estão relacionadas entre si.
Observação
Você pode ficar tentado a adicionar erros de ortografia de palavras. Mas antes de fazer isso, use esses erros de ortografia no testador de declarações para ver se o modelo os reconhece. Você pode se surpreender com o quão bem ele lida com eles. Além disso, ao não adicionar erros ortográficos, você corre menos risco de distorcer seu modelo de maneiras inesperadas.
- Crie casos de exame para garantir a integridade da resolução de intenção.
- Execute o Relatório de visão geral da qualidade da habilidade para manter um conjunto de treinamento balanceado. Execute o relatório de anomalias também para verificar se há declarações classificadas incorretamente ou incomuns.
- Ao implantar sua habilidade, você pode melhorar continuamente os dados de treinamento ao:
- Revisar os Logs de Conversas, resumos de todas as conversas que ocorreram para um período especificado. Ative o registro em log alternando a opção Ativar Insights para Ativado em Definições.
- Executando Relatórios de Qualidade da Habilidade e designando (ou redesignando) mensagens reais do usuário às suas intenções com o Retrainer de Insights. Se esses relatórios indicarem que
unresolvedIntent
tem muitas declarações classificadas incorretamente dentro das intenções de domínio:- Mova as declarações no escopo de
unresolvedIntent
para as intenções do domínio. - Mova as declarações fora do escopo das intenções do domínio para
unresolvedIntent
.
- Mova as declarações no escopo de
Diretrizes para Trainer Ht
- expressões coloquiais
- erros ortográficos comuns
- abreviações padrão que um usuário pode inserir ("opty" para "opportunity", por exemplo)
- nomes não padrão, como nomes de produtos
- variantes ortográficas ("check" e "cheque", por exemplo)
-
Varie o vocabulário e a estrutura da sentença nessas frases iniciais por uma ou duas permutações usando:
-
gírias (moolah, lucre, dough)
- abreviações padrão que um usuário pode inserir ("opty" para opportunity, por exemplo)
- nomes não padrão, como nomes de produtos
-
expressões comuns (Am I broke? para uma intenção chamada AccountBalance)
-
texto alternativo (Send cash to savings, Send funds to savings, Send money to savings, Transfer cash to savings.)
-
outras categorias de objetos (Quero pedir uma pizza, Quero pedir comida).
-
ortografias alternativas (check, cheque)
-
erros ortográficos comuns ("buisness" para business)
-
ordem de palavras incomum (To checking, $20 send)
-
- Use outros conceitos para expressar a mesma intenção, como I am hungry e Make me a pizza
- Não associe uma única palavra ou frase a uma intenção específica, a menos que essa palavra ou frase indique a intenção. As frases repetidas podem distorcer a resolução da intenção. Por exemplo, iniciar cada declaração de OrderPizza com "I want to …" e cada intenção de ShowMenu com "Can you help me to …" pode aumentar a probabilidade de o modelo resolver qualquer entrada do usuário que comece com "I want to" com OrderPizza e "Can you help me to" com ShowMenu.
-
Evite fragmentos de sentença e palavras únicas. Em vez disso, use frases completas (que podem ter até 255 caracteres) que incluam a ação e a entidade. Se você precisar usar exemplos de palavra-chave única, escolha-os com cuidado.
- Crie casos de teste para garantir a integridade do teste da resolução da intenção. Como a adição de novos exemplos de intenção pode causar regressões, você pode acabar adicionando várias frases de teste para estabilizar o comportamento de resolução de intenção.
Limites para Forma e Tamanho dos Dados de Treinamento
Em relação aos dados e à forma de treinamento, aqui estão os limites do número de intenções e declarações.
intenções:
- Número mínimo de intenções por habilidade: 2
- Número máximo de intenções por habilidade: 2.500
Declarações:
- Número máximo de declarações por habilidade: 25.000
- Número mínimo de declarações por intenção: 2
- Tamanho da palavra de declaração: Entre 3 e 30 palavras. De acordo com as diretrizes do Trainer Tm, há exceções em que declarações de uma ou duas palavras podem ser apropriadas se forem usadas com frequência.
Esses são limites técnicos, não recomendações. Consulte Guidelines for Trainer Tm para obter recomendações práticas para definir suas habilidades e fornecer dados de treinamento robustos.
Exportar Dados da Intenção
Para registrar conversas, ative a opção Ativar Insights em Definições > Geral antes de testar suas intenções.
Para exportar dados de uma habilidade:- Clique em
para abrir o menu lateral e selecione Desenvolvimento > Habilidades.
- No mosaico da habilidade, clique em
e selecione Exportar Conversas.
- Escolha Log de Conversas da Intenção, defina o período do log e clique em Exportar.
- Revise a entrada do usuário abrindo os arquivos CSV em um programa de planilha.