Pular para o conteúdo principal

Sintaxe do modelo

Às vezes, você quer que seu bot reaja a modelos de frases específicos em vez de todas as frases possíveis que são mais ou menos semelhantes em significado.

Para isso, insira um modelo de sua frase ao adicionar uma nova intenção.

Por padrão, quando você acessa o bloco Intenções e adiciona novas intenções, elas são adicionadas como frases de amostra, não como modelos. Isso é indicado pelo ícone ao lado de cada frase. Para transformar a frase de amostra em um modelo, clique no ícone ao lado de cada frase que você deseja que se torne um modelo. Ela será alterada para o ícone .

O que são modelos de frase?

Um modelo é uma sequência de palavras e entidades que precisam estar presentes em uma frase para que o bot reaja a ele.

Basicamente, elas são semelhantes a expressões regulares, mas com sintaxe simplificada.

cuidado
O Tovie DialogStudio não expandirá modelos com sinônimos.

Sintaxe do modelo

Para criar um novo modelo, use uma sintaxe especial.

Usando essa sintaxe, você pode escrever modelos flexíveis que ajudarão o bot a entender as frases do cliente.

Observe os exemplos abaixo:

  • olá

    Este modelo que contém apenas uma palavra fará com que o bot reaja apenas à palavra exata olá. Se a frase diferir em pelo menos um caractere, o bot não a reconhecerá.

  • * procur* *

    Nesse caso, a palavra “procurar” pode ter várias terminações. Além disso, a frase do cliente pode conter qualquer número de palavras antes e depois dessa palavra.

    Este modelo fará com que o bot reconheça as frases como “procur”, “estou procurando um novo iPhone”, “procuro seu site” etc.

  • * ~concordar *

    O modelo faz com que o bot reconheça todas as formas do verbo “concord” e também qualquer número de palavras antes e depois dele.

    Por exemplo, o modelo funcionará para a frase “Você concordou?”.

    cuidado
    O til reconhece apenas as palavras da mesma classe gramatical que a palavra no modelo. Não funcionará para outras partes do discurso, por exemplo, “concordo”, ou para palavras com sufixos ou prefixos, por exemplo, “discordo”.

    Você pode ver toda a sintaxe do modelo do Tovie DialogStudio abaixo.

Palavra

No modelo, a palavra não é expandida com sinônimos. Para ser reconhecida pelo bot, a palavra deve ser escrita pelo cliente exatamente como está especificada no modelo.

Asterisco

O asterisco (*) significa que a frase do cliente pode incluir qualquer número de caracteres, incluindo nenhum.

gato *

A frase pode incluir qualquer número de palavras após a palavra gato. O modelo funcionará para as frases “gato”, “gato pequeno”, etc.

* gato * pequeno *

O modelo permite que você escreva qualquer número de palavras antes, entre e depois das palavras “gato” e “pequeno”.

Por exemplo, funcionará para a frase “o gato preto é muito pequeno”, mas não funcionará para “os gatos são pequenos”.

dica
O asterisco também pode ser colocado no início ou no final da palavra. Isso indicará que a frase do cliente pode ter qualquer caractere no início ou no final da palavra.

O modelo gato* funcionará para “gato”, “gatos”, etc. Se você não especificar que pode haver outras palavras antes e depois da palavra gato, o bot não reconhecerá frases com essa palavra.

O modelo *queda* * funcionará para “queda”, “queda d’água”, “quedas d’água”, “quedas”, etc.

cuidado
Você só pode usar asteriscos antes ou depois da palavra. Você não pode usá-lo dentro da palavra.

Til

Use o til (~) para fazer o bot reconhecer todas as formas da palavra, mas da mesma parte do discurso. O til deve ser especificado antes da forma inicial da palavra.

Por exemplo, o modelo ~concordar funcionará para todas as formas do verbo “concordar” — “concordo”, “concorda”, “concordou”, “concordando”, etc. Mas existem algumas restrições para esses modelos:

  • Não funcionará para outras partes do discurso, por exemplo, “concordância”.
  • Não funcionará para palavras que contenham sufixos ou prefixos, por exemplo, “discordo”.

Alternativo

Coloque várias palavras ou outros modelos entre colchetes para que o modelo funcione para qualquer uma dessas palavras na frase do cliente.

Por exemplo, (gato/felino/gatinho) ou (gato|felino|gatinho) funcionará para qualquer uma das palavras “gato”, “felino” ou “gatinho”.

O modelo * (~gato / ~gatinho) * funcionará para qualquer forma da palavra “gato” e qualquer forma da palavra “gatinho”. Ao mesmo tempo, a frase pode conter qualquer número de palavras antes e depois da palavra “gato” ou “gatinho”. Funcionará para “Eu amo gatinhos pretos” ou “Todos os gatos são fofos”.

Permutações

Coloque o modelo entre chaves para que o bot reconheça a frase do cliente, independentemente da ordem das palavras nela.

O modelo {gosto de peixe *} funcionará para qualquer frase que contenha todas as palavras “gosto”, “de”, “peixe” e quaisquer outras palavras, independentemente da ordem. Por exemplo, este modelo funcionará para “Gosto de peixe”, “Não gosto de peixe”, “Gosto muito de peixe”, etc.

cuidado
O cliente deve escrever todas as palavras do modelo. Caso contrário, o bot não reconhecerá a frase.

Opção

Use os colchetes se uma palavra específica puder ser usada, mas não for obrigatória.

Por exemplo, para * gato [pequeno] tanto “um gato” quanto “um gato pequeno” funcionarão.

Entidade

Para especificar uma entidade na frase do cliente, escreva a entidade em um modelo com o sinal $ antes do nome.

Por exemplo, se você criar um dicionário contendo a lista de cidades e nomeá-lo como CITY, você poderá usar a seguinte sintaxe: * moro * $CITY *, que aceitará “Eu moro em Berlim”.

O bot reconhecerá a entidade $CITY, criará uma variável $CITY e colocará o nome da cidade nela.

Variável

Se você espera que o cliente escreva várias entidades do mesmo dicionário, você precisa obter várias variáveis. Use :: para criar várias variáveis para diferentes entidades.

Por exemplo, * $CITY::From * $CITY::To * aceitará “Berlim Estocolmo” ou “Passagens Paris Istambul”.

Combinações de padrões

Você pode usar padrões diferentes em qualquer combinação.

Por exemplo, se você espera que o cliente compre uma passagem para qualquer cidade, você pode escrever um modelo da seguinte forma:

{(pedido/~passagem/~voo/compra) * $DATETIME * [$CITY]}