Code (chatbot) incompris

Code (chatbot) incompris - HTML/CSS - Programmation

Marsh Posté le 03-02-2019 à 16:29:26    

Oui bonjour excusez moi de vous dérangez j'ai pour mon TPE (Oral/Dossier) choisis un code de chatbot que je ne comprend pas trop pouvez-vous me l'expliquer ?
 
 

Code :
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Chatbot</title>
  5. </head>
  6. <body>
  7. <div id="main">
  8. <div>user: <span id="user"></span></div>
  9. <div>chatbot: <span id="chatbot"></span></div>
  10. <div><input id="input" type="text" placeholder="say anything..." autocomplete="off"/></div>
  11. </div>
  12. <script type="text/javascript">
  13. var trigger = [
  14. ["salut","coucou","bonjour"],
  15. ["comment vas tu","comment te sens tu"],
  16. ["que fais tu","tu fais quoi"],
  17. ["quel age as tu"],
  18. ["qui es tu","es tu humaine","es tu un bot","es tu humaine ou un robot"],
  19. ["ton prenom s'il te plait", "ton prenom","puis je connaitre ton prenom","quel est ton nom"],
  20. ["heureux","bien"],
  21. ["mal"],
  22. ["aide moi","raconte moi une histoire","raconte moi une blague"],
  23. ["ah","oui","ok","okay","cool","merci"],
  24. ["bye","au revoir","ciao","a plus tard"],
  25. ];
  26. var reply = [
  27. ["salut","coucou","bonjour"],
  28. ["bien","vraiment bien et toi","fantastique"],
  29. ["rien de special","je vais aller au lit","peux tu deviner?","je ne sais pas vraiment"],
  30. ["on peut dire que j'ai 1 semaine maintenant"],
  31. ["je suis juste un bot","je suis un bot"],
  32. ["je suis Emy"],
  33. ["content d'entendre ca"],
  34. ["pourquoi?","essaye de regarder la TV alors"],
  35. ["je veux t'aider","a propos de quoi"],
  36. ["raconte moi une histoire","raconte moi une blague","parle  moi de toi"],
  37. ["ciao", "salut", "a plus tard"],
  38. ];
  39. var alternative = ["Haha...", "Je n'ai pas compris"];
  40. document.querySelector("#input" ).addEventListener("keypress", function(e){
  41. var key = e.which || e.keyCode;
  42. if(key === 13){ //Enter button
  43.  var input = document.getElementById("input" ).value;
  44.  document.getElementById("user" ).innerHTML = input;
  45.  output(input);
  46. }
  47. });
  48. function output(input){
  49. try{
  50.  var product = input + "=" + eval(input);
  51. } catch(e){
  52.  var text = (input.toLowerCase()).replace(/[^\w\s\d]/gi, "" ); //remove all chars except words, space and  
  53.  text = text.replace(/ a /g, " " ).replace(/i feel /g, "" ).replace(/whats/g, "what is" ).replace(/please /g, "" ).replace(/ please/g, "" );
  54.  if(compare(trigger, reply, text)){
  55.   var product = compare(trigger, reply, text);
  56.  } else {
  57.   var product = alternative[Math.floor(Math.random()*alternative.length)];
  58.  }
  59. }
  60. document.getElementById("chatbot" ).innerHTML = product;
  61. speak(product);
  62. document.getElementById("input" ).value = ""; //clear input value
  63. }
  64. function compare(arr, array, string){
  65. var item;
  66. for(var x=0; x<arr.length; x++){
  67.  for(var y=0; y<array.length; y++){
  68.   if(arr[x][y] == string){
  69.    items = array[x];
  70.    item =  items[Math.floor(Math.random()*items.length)];
  71.   }
  72.  }
  73. }
  74. return item;
  75. }
  76. function speak(string){
  77. var utterance = new SpeechSynthesisUtterance();
  78. utterance.voice = speechSynthesis.getVoices().filter(function(voice){return voice.name == "Jack";})[0];
  79. utterance.text = string;
  80. utterance.lang = "fr-EU";
  81. utterance.volume = 1; //0-1 interval
  82. utterance.rate = 1;
  83. utterance.pitch = 2; //0-2 interval
  84. speechSynthesis.speak(utterance);
  85. }
  86. </script>
  87. </body>
  88. </html>


Message édité par vanotix le 03-02-2019 à 16:31:37
Reply

Marsh Posté le 03-02-2019 à 16:29:26   

Reply

Marsh Posté le 03-02-2019 à 16:47:24    

Reply

Marsh Posté le 04-02-2019 à 13:48:33    

Pas de soucis cependant je m'efforce de le comprendre sauf ligne 52 53 je ne comprend ce qu'il fait ainsi que ligne 64 à 71

Message cité 1 fois
Message édité par vanotix le 04-02-2019 à 13:52:21
Reply

Marsh Posté le 04-02-2019 à 16:14:16    

vanotix a écrit :

Pas de soucis cependant je m'efforce de le comprendre sauf ligne 52 53 je ne comprend ce qu'il fait

mot clé: Regex

Reply

Marsh Posté le 04-02-2019 à 17:50:48    

La ligne 53 me laisse penser que tu as pompé le code d'un chatbot fonctionnant en anglais et que tu essaye de le faire fonctionner pour du français. Tu as demandé à l'auteur l'autorisation de faire ça ?
 
Les lignes 64 à 71 sont la fonction qui identifie la phrase saisie par l'utilisateur et la réponse à apporter.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed