AIML padrão de correspondência - howto?
-
11-09-2019 - |
Pergunta
Estou tendo um problema ao tentar entender como é que funciona a correspondência de padrões AIML.
Qual é a diferença entre _
e *
? E como devo usá-los para obter o melhor jogo?
este documento somente, mas falta-lhe alguns exemplos bons.
Solução
A * irá corresponder a qualquer coisa menos que um padrão de uma palavra ou várias palavras são combinadas
A _ irá corresponder a qualquer coisa, mesmo se um padrão de uma palavra ou várias palavras poderiam corresponder
<pattern>BYE _</pattern>
não faz sentido uma vez que <pattern>BYE *</pattern>
coincide com os mesmos padrões, mas <pattern>BYE _</pattern>
vai apagar <pattern>BYE * SEE YOU</pattern>
enquanto BYE * não vai.
Use _ cuidadosamente, por exemplo _ iria coincidir com qualquer coisa e seu bot vai dar a mesma resposta a cada vezes.
<pattern>_ A COUPLE OF WORDS *</pattern>
e <pattern>_ A COUPLE OF WORDS</pattern>
é a maneira correta de usar _ se você quiser pegar todos os tempos um par de palavras é dentro ou no final de uma frase.
Outras dicas
_ e * são ambos wildcards, a diferença é que eles devem ser usados ??na correspondência de padrão.
_ should be used before the word or phrase you're matching on
* should be used after the word or phrase you're matching on.
Veja: AIML especificação
Para entender isso melhor pode valer a pena olhar para exemplos nas bots AIML existentes.
Veja: downloads , este Saluations.aiml tem exemplos