Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment créer un robot qui "parle"

Sans avoir des réponses "pré-définie"

Anonyme
16 janvier 2008 à 14:42:55

Bonjour, je me posais une question:

Comment créer un robot qui pourrai parler avec un humain (via un chat) ??

Le robot répondrait intelligement, exemple, quelqu'un pose comme question:

Quelle heure est-il ?

Et le robot analysie que c'est une question, puis détermine que Heure, ben c'est l'heure, donc il réponde l'heure, etc.

µJe voudrai savoir, quel language pourrai faire l'affaire, et quelle techinique utiliser.

Je suis preneur de toutes informations !

merci
  • Partager sur Facebook
  • Partager sur Twitter
16 janvier 2008 à 15:03:11

Tu veux résoudre un problème d'algo, pourquoi tu demandes "c'est quoi le meilleur langage pour le faire ?" ?.
ON S'EN FOUT, n'importe lequel, celui tu tu juges le plus rapide, que tu connais le mieux, que t'as envie d'approfondir, qui offre des capacités suffisantes (encore que en tant que "langage de programmation devrait pas y'avoir trop de problèmes de ce coté là"), etc ...
L'implémentation c'est suivant tes goûts, réfléchis d'abord au problème, il est suffisament corsé.

Ensuite ce que tu demandes, bah c'est de l'intelligence artificielle.
Je suppose que le robot utilise une base de données de termes qu'il relie au mieux pour leur faire correspondre des réponses sensées.

Vas voir du coté de l'intelligence artificielle.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
16 janvier 2008 à 15:07:37

Enfaite tu t'y prend très mal je trouve car pour créer un projet , il faut apprendre un language puis avoir une idée et pas le contraire
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
16 janvier 2008 à 15:26:40

Citation : el-kodar

Enfaite tu t'y prend très mal je trouve car pour créer un projet , il faut apprendre un language puis avoir une idée et pas le contraire


Pas spécialement...
Y'a pleins de gens qui apprenne dans le but de crée quelque chose.
Toi tu as appris le HTML/CSS pour le fun. Non tu t'ai dis je vais faire un site donc tu apprends... C'est comme a l'école.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
16 janvier 2008 à 16:16:23

Tu parles de robot intelligent pouvant parler avec un être humain.

T'espères quand même pas que ton robot passe le test de Turing?
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
16 janvier 2008 à 20:56:22

Le test de Turing ?

-----------------------

Sinon, ben dites le si ça vous d"range !
C'est quand même pour les Zér0s, comme vous dites !
Je voulais plus savoir, quel language offre quelles possibilités, et l'apprendre. Si vous avez des connaissances ou des voies aà me donner !

Enfin, si je vous dérange, je vais aller voir ailleur, tant pis.
  • Partager sur Facebook
  • Partager sur Twitter
16 janvier 2008 à 21:06:38

Crois moi, si on savait comment programmer un tel robot, on serait pas ici, on serait assis sur une montagne de billets en train de siroter un petit cocktail.
Si des dixaines d'équipes d'ingénieurs chevronnés se penchent sur le problème et n'y arrivent pas, (avec 20/30 ans d'expérience dans les os, on peut espérer qu'ils aient déja bien décortiqué le problème) c'est qu'a mon avis tu n'y arriveras pas non plus dans des études approfondies sur le sujet et sans une connaissance solide en algorithmique et en programmation en général ;)
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
16 janvier 2008 à 21:24:50

Citation : free usb

Le test de Turing ?


Ouais, le test de Turing.

Tu sais pas ce que c'est? Et wikipedia, tu connais pas non plus, je suppose?
  • Partager sur Facebook
  • Partager sur Twitter
16 janvier 2008 à 23:10:58

Le test de Turing est le must de l'IA pour ce qui est de la relation homme/machine, en bref une machine peut communiquer avec un humain sans que ce dernier s'aperçoive que c'est une machine qui parle et non un homme.

Et Dieu sait que de nombreuses équipes d'IA chevronnés s'y mettent depuis des années sur ce problème, aucun n'a passé ce test avec succès encore, donc bon, tu pourras au mieux faire quelques petits trucs mais rien d'extraordinaires...
  • Partager sur Facebook
  • Partager sur Twitter
Je soutiens activement le projet Fedora.
16 janvier 2008 à 23:37:00

Bon en meme temps, le "quelle heure est-il" est un exemple assez simple. Il existe des bots qui analysent la phrase et réponde quelque chose de presque sensé, tout du moins, ca fait illusion.
Pour en apprendre un peu plus sur la reconnaissance synthaxique, ce qui est déjà un bon début, je te conseille de regarder du coté d'un langage qui s'appelle Prolog, avec lequel on peut facilement mettre en place une reconnaissance de structure de phrases constituées de mots... C'est déjà un début pour aborder ce domaine de l'IA. Et sans prétendre faire un bot capable de passer le test de Turing, on peut déjà faire des trucs marrants avec ca.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
17 janvier 2008 à 7:10:59

Merci Alecool.

Et, oui, je connais wikipedia, je connais google aussi ^^
  • Partager sur Facebook
  • Partager sur Twitter
17 janvier 2008 à 9:25:30

Pour en revenir au sujet, l'analyse d'une phrase est très longue et complexe.
On pourrait imaginer ce schéma :

1- identifier les verbes potentiels
2- identifier le verbe le plus probable (ces deux phases sont nécessaires pour les verbes conjugués qui ont une orthographe similaire à celle d'un mot qui n'est pas un verbe ;) )

3- identifier ce qui est attendu avant et après ce verbe :
4- identifier le sujet si le verbe implique qu'il y en ait un
5- identifier le COD, COI, enfin ce qui peut se trouver après le verbe identifié.
6-identifier le but de la phrase

C'est un schéma plus que simplifié. Il implique plusieures choses :
Tous les mots du dictionnarie sont implémentés, y compris toutes les conjugaisons de tous les verbes, etc. Il faut ensuite qu'a chaque verbe conjugué soit associé une liste de compléments qu'on puisse trouver. Exemple pour le verbe manger, on peut s'attendre à trouver un COD juste après.
Il faut donc qu'a chaque mot soit associé sa position potentielle dans la phrase (si le mot peut être COD, peut être sujet, etc).

Je ne parle pas des phrases ayant des formes plus complexes que le simplet sujet-verbe-complément. je ne parle même pas non plus de l'interpretation de la phrase, et de ce qui en découle. Si on dit au robot "Que penses tu des pommes ?", comment va-t-il interpreter ça ? Comment comprendra-t-il ce qu'on attend de lui ? (J'utilise ce terme, cependant bien entendu le robot ne se pose pas la question de savoir ce qu'on attend de lui ;), il se contente de calculer ;) ).

  • Partager sur Facebook
  • Partager sur Twitter
17 janvier 2008 à 11:00:37

En fait, l'analyse synthaxique n'est pas _très_ complexe, elle est surtout longue, dans la mesure où il faut gérer un maximum de cas et toutes les alternatives.
Il faut effectivement une base de mots, qui contiendra pour le mot, d'une part le genre et le nombre, si on veut faire une analyse complete (ce qui reste, à la limite, facultatif), et eventuellement une action, ou une information portant le sens du mot.
Il faut ensuite définir les schémas de phrase acceptés, genre on considérera comme phrase valide le schéma "groupe nominal-verbe-groupe nominal". La grammaire francaise étant bien faite, il existe des règles pour ne pas avoir à écrire toutes les formes d'un mot. On pourra par exemple à partir d'un verbe, et éventuellement du groupe auquel il appartient, déterminer sa racine, sa conjugaison et ainsi déterminer sur le verbe est correctement écrit. Par exemple, si le programme sait que le verbe "chanter" est du premier groupe, et qu'il sait que la conjugaison d'un verbe du premier groupe au présent de l'indicatif est donné par "-e, -es, -e, -ons, -ez, -ent", il pourra déterminer que "chantons" est un verbe existant, alors que "chantis" n'en est pas un. Idem pour les noms communs et adjectifs pour leur accord en genre et nombre. Ceci moyennant les quelques exceptions de la langue francaise bien sûr.

Ca c'est uniquement pour l'analyse synthaxique, c'est-à-dire voir si la phrase correspond à une phrase compréhensible, après, donner un sens à une phrase peut être plus compliqué, dépendant des capacités que l'on veux donner au programme.

D'autre part, pour réagir à ceux qui disent que tous les langages sont bons à tout faire, je ne suis pas tout à fait d'accord. Certains langages ont été créés et développés dans le but de résoudre certains types de problemes, et sont donc beaucoup plus adaptés à certaines utilisations. Il serait stupide (en dehors du cadre de l'apprentissage) d'utiliser un langage proche de la machine et compliqué comme le C pour créer une applications ne nécessitant pas de grandes performances et plutot basée sur l'interface, quand des langages plus haut niveau permettraient de développer l'application beaucoup plus rapidement. Les langages de prog sont des outils qui ont été créés pour répondre à des besoins spécifiques, un langage n'est pas bon à tout faire, c'est pourquoi il est utile d'en connaitre plusieurs.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
18 janvier 2008 à 23:17:10

Merci beaucoup, ce projet m'intrigue, j'irai jusqu'au bout!

Je vais me lancé dans l'apprentissage de prolog pour voir si il y a moyen d'analyser des phrases "simple". J'ajouterai ensuite de nombreuse choses auxquelles j'ai déjà songées, ceci me prendra du temps, mais le temps ne me fait pas peur, une bonne organisation et de bons conseils m'aideront beaucoup, MERCI !
  • Partager sur Facebook
  • Partager sur Twitter