Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


Tout pour apprendre l'informatique sur Mac et PC
 
AccueilRechercherDernières imagesS'enregistrerArcadeConnexion
-10%
Le deal à ne pas rater :
-30€ sur la nouvelle Tablette tactile Lenovo Tab Plus – 11.5” ...
269.99 € 299.99 €
Voir le deal

 

 L'intelligence artificiel : comment créer un robot?

Aller en bas 
AuteurMessage
Hartigan
Hartigan Modérator
Hartigan Modérator
Hartigan


Nombre de messages : 258
Age : 35
Date d'inscription : 23/03/2007

L'intelligence artificiel : comment créer un robot? Empty
MessageSujet: L'intelligence artificiel : comment créer un robot?   L'intelligence artificiel : comment créer un robot? Icon_minitimeSam 31 Mar - 21:27

Ce sujet sur l’intelligence artificielle s’intéresse aux bots et leurs programmation. Biensûr je ne vais pas vous montrer comment créer un bot entièrement, premièrement je n’ai pas les compétences et deuxièmement c’est extrèmement long. Voici donc les bases de la création d’un bot. L’exemple que je prends est un chatterbot mais c’est la même chose.

Tout chatterbot se compose de 2 éléments élémentaires(joli) : une base de connaissance et un moteur qui les traite. Cet article présente donc les bases de l’AIML, language de description des connaissances. Il a été concu dans le cadre du projet de l’intelligence artificielle ALICE et il est à la base du fonctionnement de tous les bots qui reposent sur ce projet. Je vais vous montrer comment créer un bot tout simple qui accueille des utilisateurs. Pour créer le bot il faut se servir du moteur de traitement des connaissances PyAIML écrit en Python.

PyAIML n’est qu’un moteur de traitement de AIML et il n’est pas doté d’une interface utilisateur.Avant de créer une base de connaissances il faut donc écrire un court script en Python qui récupère les messages de l’utilisateur et affiche les réponses du bot.
Voici l’exemple de ce script de la façon la plus simplifiée :
Code:

Import aiml
#lancement de l’interprétateur aiml
k=aiml.Kernel()
#lecture du fichier des modèles
k.learn(« devbot.aiml »)
#boucle principale du programme
while True :
#récupération des messages de l’utilisateur
user_input = raw_input(« > « )
#génération des réponses du bot
answer = k.respond(user_input)
#affichage des réponses sur l’écran
print answer
Explication : Il importe d’abord la bibliothèque AIML, lance ensuite l’interprétateur AIML et lit le fichier de connaissances sélectionné(ici fichier devbot.aiml). Le bot lui-même ne fait que récupérer les phrases de l’utilisateur dans une boucle infinie et écrire les réponses générées par le module AIML. Pour terminer le travail du script appuyer sur ctrl c.
Il faut maintenant créer le fichier AIML.

Tous ceux qui connaissent HTML et XML n’auront aucun problème pour construire ce fichier. Le fichier contient des balises : le contenu du fichier se trouve entre <aiml> et </aiml> les commentaires entre < !--…-->
En AIML, les balises élémentaires de connaissances sont les balises <category> à l’intérieur desquelles sont placées les balises <pattern> qui contiennent les modèles de réponses et les balises <template> qui contiennent celles de bot.
Donc :
Code:

<category>
<pattern>
< !—modèle de message de l’utilisateur-->
</pattern>
<template>
<--réaction du bot au modèle-->
</template>
</category>
Comment faire pour que votre bot réagisse à un message d’accueil ?
Il faut inscrire SALUT entre les balises <pattern> et Bonjour entre <template>.
Mais attention en AIML toutes les lettres doivent être majuscules et Python n’accepte que les signes de base.
Si vous lancez un bot doté d’une telle base de connaissances, il répondra Bonjour quand l’utilisateur dira salut. En revanche, il affichera un message d’erreur quand le message sera différent. Puisque le bot réagit parfaitement à une phrase correspondant parfaitement au modèle, il génère une erreur s’il recoit par ex salut ca va ?
Pour résoudre ce problème, AIML permet de se servir des symboles * et _ qui élargissent le fonctionnement des modèles. Pour que votre bot réagisse à tout message commençant par salut, il faut donc modifier le modèle de cette façon :
<pattern>SALUT *</pattern>

Voila maintenant si l’utilisateur écrit salut toi l’artiste ou salut un peu de sauce le bot répondra toujours bonjour. Pour rendre votre bot plus humain, il faut ajouter au répertoire d’accueil une option de choix aléatoire d’un message. Pour ce faire utilisez la balise <random>. Chaque réponse se trouve entre les balises <li>.
Code:

<template>
<random>
<li>bonjour.</li>
<li>Salut</li>
<li>bienvenue</li>
</random>
</template>
Maintenant votre bot réagit à tout message commençant par salut et il affiche les réponses possibles. Mais biensur l’utilisateur n’est pas obligé de vous dire salut, il faut donc préparer votre bot à d’autres éventualités mais mon travail s’arrête ici.
Petit complément : code complet du bot en python :
Code:

Import aiml
K = aiml.Kernel()
k.learn(« devbotFR.aiml »)
#ouverture des fichiers de logs
conv_log = file(“conversation.log”,”a”,1)
unknow_log = file(« inknow.log », »a »,1)
conv_log.write(“--------/n”)

while True:
user_input = raw_input(“>”)
if user_input==”quit”:
break
answer = k.respond(user_input)
#si la réponse est vide
#question au log des inconnus
if answer == » » :
unknow_log.write(user_input+ »n”)
#enregistrement de la question et de la réponse dans le log principal
conv_log.write(user_input+ »+answer+ »n »)
print answer
#fermeture des log
conv_log.close()
unknow_log.close()
J’espère que ces premiers pas vous ont plu et si tel est le cas postez un message si vous voulez continuer cette programmation. Je tenterai de vous aider et je vous proposerai des sites interressants.
Pour l’instant l’apprentissage du Python est presque indispensable :
Article rédigé par BOY avec plaisir.
Revenir en haut Aller en bas
 
L'intelligence artificiel : comment créer un robot?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment avoir linux

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
 :: Programmation :: Développement sous PC-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser