Comment créer un chat-bot intelligent? [fermé]
Je sais que c'est toujours un problème ouvert, donc je ne m'attends pas à voir des réponses complètes ici. Je veux juste trouver quelques approches pour résoudre le problème suivant:
J'ai un modèle (supposons que la mémoire du bot est), et différents mots sont associés à différents objets dans le modèle. Parler avec le bot, c'est comme exécuter des requêtes sql avec une base de données. Le langage est un protocole formalisable très dur. Et nous ne pouvons pas simplement écrire un million de lignes de code pour implémenter un langage réel. Mais je crois qu'il est absolument possible de mettre en œuvre un mécanisme d'auto-apprentissage. Comment peut-il être mis en œuvre? Est-il possible de mettre en œuvre l'apprentissage "à partir de zéro" ou "à partir de quelques mots de base"? Voulez juste entendre vos idées.
En fait, l'anglais est une langue très stricte et c'est l'une des langues les plus faciles à expérimenter avec L'IA. De nombreuses autres langues vous permettent de changer l'ordre des mots (par exemple). Et dans certains cas, l'ordre modifié peut changer le sens entier ou simplement ajouter une intonation. Je vraiment n'ont aucune idée comment enseigner un bot pour ces choses.
6 réponses
La première étape , en prenant ce jeu au niveau suivant, est ...
...d'avoir une vision très claire de l'état de la technique!
(et pardonnez-moi de dire, la question ne suggère pas que vous ayez un aperçu aussi complet de la question [et vous n'êtes pas seul, comptez sur moi; -)])
Même, et peut-être en particulier, si votre intention est d'appliquer des techniques et des modèles complètement nouveaux, il semble important de examiner la littérature sur les pratiques actuelles et passées. En plus d'identifier éventuellement les éléments qui peuvent être adaptés ou réutilisés dans une nouvelle mise en œuvre, une enquête sur le domaine fournira une compréhension approfondie de la nature du problème[s].
J'aipersonnellement essayé-à plusieurs reprises!- soit l'approche naïve ou l'approche sophomoric pour s'attaquer à des problèmes définis au sens large. Avec l'approche naïve, on n'a qu'une très faible idée de la vraie nature et la portée du problème. Le sophomoric nous voit mieux équipé avec la connaissance du domaine et aussi avec des outils connexes, mais cela peut aussi être trompeur parce que sans une compréhension plus profonde, nous avons tendance à mal lire / mal comprendre le nouveau matériel qui nous est offert et aussi abuser de certains des outils (un peu comme le le gars qui est "bon avec un marteau" pour..)
Il est particulièrement facile de faire ces erreurs dans le domaine de la PNL. C'est parce que
- le bon sens semble être tout ce qui est nécessaire: après tout, un enfant, dont la langue maternelle est l'anglais, comprend des subtilités comme
"Il est pas vraiment un expert"
"Il est vraiment pas un expert"
(petit clin d'œil à la référence du PO à l'ordre des mots en langue anglaise) - nous vivons dans des temps aussi excitants, en termes de technologie et de connaissances: puissance de traitement, langage de programmation et outils, techniques mathématiques, disponibilité de Corpus abordables... pour en nommer quelques-uns de ces des choses qui rendent ce moment si spécial.
Loin de moi l'idée de vous décourager dans votre effort de chat-bot, j'espère juste que cette exposition longue et générique encouragera à regarder-avant-vous-saut, car cela vous fera vraiment gagner du temps à long terme, je pense de deux façons:
- vous fournir quelques cadres de références (encore une fois, même si votre intention est de "penser en dehors de ces cases")
- peut-être vous inciter à redéfinir le problème, par exemple en le limitant à domaines particuliers de la conversation (sport, santé ou vie sur un campus universitaire particulier...) ou en se concentrant sur un aspect particulier du problème (conscience sémantique, grammaire lisse et naturelle, utilisation de formes familières...)
Bonne chance ;-)
Consultez l'implémentation de MegaHAL pour quelques idées. Nous avons utilisé une variante de ce bot pour les âges dans un canal IRC de la nôtre, et il ne semble parfois être le mélange intelligent de beaucoup de nos personnalités dominantes.
Vous "entraînez" le bot - chaque fois que le bot répond, vous classez (ou le testeur) la réponse-si la réponse est bonne / logique-donnez un rang élevé, si la réponse est mauvaise... faible/négatif rang.
Utilisez le classement à l'avenir pour choisir la réponse, et c'est ainsi que le bot apprend...
Il y a une grande description de Eliza dans Paradigmes de Programmation AI. Vous devriez être en mesure d'implémenter un Simple Bot Eliza en quelques jours de travail.
Ce n'est pas un algorithme d'apprentissage, mais il est surprenant de voir à quel point des réponses réalistes peuvent provenir de quelque chose d'aussi simple.
Vous pouvez créer votre propre chat bot sur BOT libre, http://www.botlibre.com.
Les bots apprennent, peuvent être formés, peuvent être scriptés,et vous pouvez les programmer, ou les laisser se programmer.
Thew site prend en charge l'intégration de votre bot sur votre propre site, dispose D'un accès API REST, Android, IRC, Twitter. Hébergement gratuit, même pour les robots commerciaux.
AIML de la AliceBot projet peut vous aider. C'est un schéma XML entier (si cela ne vous rebute pas) pour la branche de L'IA concernée.
Un exemple de Wikipedia:
<category>
<pattern>WHAT IS YOUR NAME</pattern>
<template>My name is <bot name="name"/>.</template>
</category>
RebbeccaAIML est une implémentation assez bien documentée.