Overblog Suivre ce blog
Administration Créer mon blog
Le blog du CRRIAM

Articles avec #rivescript tag

Et toi ? ou comment recuperer une expression ou variable javascript

17 Avril 2014 , Rédigé par crriam Publié dans #Rivescript

// Attention, bug d'écriture des accents quand on utilise l'editeur en ligne !

Il arrive souvent que le robot doivent répondre a une question qu'il viens de poser à son utilisateur. Exemple :

Robot : - Tu es marié ?

User: - oui et toi ?

Vous allez me dire pas de soucis, on utilise <reply> (la balise qui permet de renvoyer ce que le robot venais de dire) et le tour est joué.

Ben, oui, mais non ! Car <reply> ne fonctionne que pour une expression formaté, c'est a dire minuscule, pas de ponctuation et pas d'accent, il aurait donc fallut que le robot demande :

tu es marie

Mais ça change un peu les choses.

Il nous faut donc trouver une façon de formater le texte envoyer par le robot. On ne peut pas renvoyer une expression directement car @ est "parser" avant la balise <call>

Pour celà, on donc va réutiliser la méthode trouvée pour enregistrer les variables dans les variables du style @ mots *

voici la solution :

// debut test desacsentuation pour utiliser dans la fonction et toi
// quand le robot marque des phrases avec accents


+ test
- éssé


+ test 2
- {@test 3 <set age=<reply>> <call>desacentuation <id></call>}

+ test 3 *
@<star>


+ [*] esse [*]
- test ok


> object desacentuation javascript
var id = args[0];
var age = rs.getUservar(id, "age");
var age = age.replace(/[éèêë]/gi, "e");
return age;
< object

// fin desacsentuation ca marche.

Je pense, sans l'avoir encore teste, qu'avec cette méthode on pourra récuperer des variables javascript et les enregistrer dans une variables rivescript.

Pourquoi faire ? Ben pour recuperer une id stocker dans un cookie par exemple ou tout autre valeur, comme la date, l'heure etc.

Donc, à tester :)

Lire la suite

La reduction rapide grace au option [ ] et au [*] magique

16 Mai 2013 , Rédigé par crriam Publié dans #Rivescript

Passer du rivescripte a l'aiml semble diffcile, le rivscripte permets de réduire de façon tres importante le nombre de "pattern"

En effet, en utilisant a bonne essiant les options et les tableaux, ont peut réduire de façont tres tres importante le nombres de lignes et enticiper sur bon nombre de fautes d'orthographe ou de conjugaison.

 

Les options c'est quoi ?

 

C'est utiliser les crochet [ et ] pour dire que l'on peut utiliser cette réponse avec ou sans ce ou ces mots

 

Exemple le plus frapant :

 

+ [*] [mes yeux] [*] de quel [*] couleur [*] [mes yeux] [*]
- ils sont <env yeux> pourquoi ?

 

 

en 2 lignes on va reconnaitre toutes les formes :

 

de quel couleurs sont mes yeux

mes yeux sont de quelle couleur

d'apres toi, mes yeux serait de quels couleur en fait ?

 

etc. etc.

 

comment ça marche ? :

 

le premier [*]

c'est le start optionel. Pourquoi pas un simple * ? : pour le cas ou il n'y aurait pas de mots placer avant mes yeux.

 

 

[mes yeux]

placé avant et aprés de "quel couleur" permet de matcher sur les deux formes interogatives, l'inverser et pas.

 

le [*] entre mes yeux et de quel va lui permettre de mettre ou non des mots entre ce-ci

 

le [*] apres quel .

 

Lui est véritablement "magique" car un [*] remplace même un espace, il permettra donc de reconnaitre (matcher)

tout les quel que l'on veux

quel

quelle

quelles

quels

mais aussi

 

quellllllleeelle

 

Ce genre de [*] aprés les mots, permet de simplifier les singulier pluriel, les masculin féminin, les conjugaison avec un "s" "t"qui font partis des fautes les plus courantes.

 

exemple :

 

tu fais quoi

tu fait quoi

 

[*] tu fai [*] quoi

 

 

coupler avec un tableau, ça donne ça : 

 

+ [*] tu (mesure|meusure) [*]
- je mesure 1m75

 

qui reconnaitra

 

combien tu mesures

combien tu mesure

combien tu meusure

combien tu meusures

 

mais aussi

 

tu meusures combien etc..

 

alors qu'en aiml, il aurais falut coder :

 

<topic name="">
<category>
 <pattern> TU MEUSURE </pattern>
 <that>  </that>
 <template> <random>
<li>je meusure 1m 75</li>
</random> </template>
</category></topic>

<category>
 <pattern>* TU MEUSURE </pattern>
 <template><srai> TU MEUSURE </srai></template>
</category>
<category>
 <pattern>* TU MEUSURE *</pattern>
 <template><srai> TU MEUSURE </srai></template>
</category>
<category>
 <pattern> TU MEUSURE *</pattern>
 <template><srai> TU MEUSURE </srai></template>
</category>

 

Puis la meme chose pour chaque variante !!!!

avec "s" puis sans le "u" sans "s" puis sans "u" avec "s"

 

cela deviens vite énnorme certe le generateur que j'avais mis au point facilte l'écriture, mais la lisibilité du code n'en ai pas des plus facile ensuite entre toutes ces variantes.

 

 

Le piége à éviter, le mots dans le mots !

 

exemple

 

[*] non [*]

 

va etre reconnus pour "non" mais aussi pour "pognon" il faudra donc faire attention au parasite que peut générer ce genre de reconnaissances.

 

 

 

Lire la suite
1 2 3 4 > >>