5

Sto riscontrando un problema nel tentativo di capire come funziona la corrispondenza del modello AIML. Qual è la differenza tra _ e *? E come dovrei usarli per ottenere la migliore corrispondenza?Abbinamento pattern AIML - howto?

Ho solo this document, ma mancano alcuni buoni esempi.

risposta

4

A * corrisponderà nulla a meno che un modello di una parola o più parole sono abbinati

A _ corrisponderà a qualsiasi cosa, anche se un modello di una parola o diverse parole potrebbero corrispondere

<pattern>BYE _</pattern> non ha senso in quanto <pattern>BYE *</pattern> partite gli stessi schemi, ma <pattern>BYE _</pattern> saranno ombra <pattern>BYE * SEE YOU</pattern> mentre BYE * no.

Utilizzare _ con attenzione, ad esempio _ corrisponde a qualsiasi cosa e il tuo robot darà sempre la stessa risposta.

<pattern>_ A COUPLE OF WORDS *</pattern> e <pattern>_ A COUPLE OF WORDS</pattern> è il modo corretto di utilizzare _ se si desidera catturare ogni volta UNA COPPIA DI PAROLE è all'interno o alla fine di una frase.

0

_ e * sono entrambi caratteri jolly, la differenza è dove dovrebbero essere utilizzati nella corrispondenza del modello.

_ should be used before the word or phrase you're matching on 
* should be used after the word or phrase you're matching on. 

See: AIML spec

Per comprendere meglio questo può valere la pena guardare esempi nelle bot AIML esistenti.

See: Downloads, questo Saluations.aiml ha esempi

+0

Ciò significa che "CIAO _" è un'espressione non valida? Destra? –

+0

Questo è quello che ho trovato in http://www.alicebot.org/aiml/aaa/Salutations.aiml Qual è la differenza essenziale tra questi due modelli? * BYE _ BYE Btw, grazie per la risposta :) –

+0

direi, sulla base della specifica che CIAO _ è sì non validi. E quello è stato un brutto esempio da parte mia. Non penso che * BYE verrebbe mai valutato. * BYE non è valido, e dovrebbe essere BYE *. – Bravax