2011-10-20 4 views
3

Dans quel cadre puis-je créer un simple chatbot? l'objectif du bot est très limité (pour mon site de gestion de projet http://ayeboss.com).Meilleure façon de créer un robot de discussion

On peut le comparer avec SIRI sur iPhone. Je veux créer un simple chat "répondant" qui répondra à des questions telles que "donnez-moi toutes les tâches terminées jusqu'à présent" ou "montrez-moi la dernière tâche terminée" ou "show | list | donnez-moi mes tâches en attente" etc. question Je veux présenter les données à l'utilisateur

A partir de maintenant, je crée un dictionnaire regex de questions possibles et s'il n'y a pas de correspondance, alors je fais une recherche Lucene pour trouver le match le plus proche. Est-ce que je le fais bien?

Répondre

3

Ceci est une tâche PNL, et pour construire un système comme celui-ci, il faut beaucoup de R & D. Vous pouvez commencer par construire un ensemble de questions qui pourraient être posées. Analyser les questions et trouver des modèles de mots pour chaque type de question. L'étape suivante consisterait à transformer la phrase anglaise en une forme de structure formelle (peut-être SQL ou lambda-calcul). La base de données DB doit contenir les données qui peuvent être interrogées par le langage formel.

Le problème principal réside dans la conversion de la phrase anglaise en un langage formel. Vous pouvez commencer avec regex et progresser pour le rendre plus complexe en vérifiant la partie de la parole, la structure syntaxique des phrases d'entrée. Consultez le package NLTK pour effectuer des tâches PNL.

5

En règle générale, chatbots dans un champ étroit comme le vôtre reposent généralement sur 2 concepts importants:

  • détection intention: identifier ce que l'utilisateur demande
  • Entité Extraction: Identification ENTITES dans les utilisateurs demande. Par exemple, dans une réservation de vol, des exemples d'entités sont la source, la destination et les dates de voyage. Dans un bot météo, les entités peuvent être la date souhaitée pour la météo ou l'endroit où la météo est requise.

Pour votre type spécifique de chatbot, qui a pour objectif précis de récupérer la liste des tâches terminées et de récupérer la dernière tâche terminée. Pour développer cela, vous devez définir les intentions d'intérêt. De vous des exemples, nous pouvons facilement définir 2 intentions:

  • COMPLETED_TASKS_REQUEST
  • LAST_COMPLETED_TASK

Sur la base de cette 2 intentions, il n'y a vraiment aucune entité à détecter. Vous interrogez simplement votre API de service pour récupérer les informations demandées dans chaque scénario.

La phase suivante consistera à former un classificateur pour identifier les intentions. Cela peut être fait en obtenant quelques exemples de phrases pour chaque type de demande et la formation sur ceux-ci.

Le débit est ensuite réduit à ce qui suit:

  1. Bot reçoit un message
  2. Bot identifie l'intention
  3. Bot extrait les entités concernées (le cas échéant)
  4. Si les requêtes bot est reconnu l'intention source de données pour récupérer réponse autre bot se plaint il ne comprend pas la demande. Sinon, si le bot a besoin d'une entité pour compléter la requête, le bot demande à l'utilisateur de fournir l'information et termine sa tâche. Ceci est généralement appelé une approche basée sur les emplacements. Vous pouvez en savoir plus sur comment fonctionne un Dialog Manager.

Notez que si vous n'êtes pas dans l'apprentissage automatique ou la PNL, vous pouvez facilement former un détecteur intention sur des plateformes comme wit.ai ou api.ai et la partie de la classification des entités de cette tâche sera réduite à API simple http demandes Bien que lors de la construction de bots vraiment compliqués ou sophistiqués, il est presque toujours préférable de construire vos propres modèles, car vous pouvez avoir un contrôle total et mieux gérer les cas de bord. Les plates-formes comme wit.ai ou api.ai ont généralement besoin de bien performer dans plusieurs domaines, tandis que vous pouvez vous concentrer sur la création d'un expert dans la gestion des tâches.

Espérons que cela aide. PS: Pour rendre votre bot plus intéressant, nous pouvons ajouter une autre intention, comme récupérer l'état d'une tâche spécifique en fonction de l'ID. Par exemple, un utilisateur peut demander quel est le statut de la tâche 54. Cette intention peut être appelée: TASK_STATUS_REQUEST. Dans cet exemple, l'intention a une entité qui est l'ID de la tâche demandée, vous devrez donc l'extraire :)

1

En plus de la bibliothèque de chat, vous pouvez intégrer la bibliothèque de messagerie instantanée comme Hyphenate pour activer le robot de messagerie. communication mobile et web.

Here're quelques étapes simples:

  1. Tiret Console: Créez votre chatbot pour donner une identité et une voix en créant entité chatbot par le signe en place un compte à la console Tiret (de console.hyphenate.io) Saut d'un compte de messagerie instantanée pour le bot.
  2. SDK de plate-forme: intégrez votre application (iOS, Android ou Web) aux services de messagerie instantanée Hyphenate et à la bibliothèque d'interface utilisateur Open Source.
  3. Webhooks (rappel d'événement): paramétrez les webhooks Hyphenate pour recevoir les messages de l'utilisateur qui poussent vers le backend de votre développeur, puis le traiter avec votre bibliothèque AI de chatbot.
  4. API REST backend: transmettez les messages de chatbot à l'utilisateur via les API REST fournies par Hyphenate à partir de votre backend développeur.
  5. Hourra! Webhooks + backend API REST = relayer les messages entre chatbot et utilisateur.

http://docs.hyphenate.io/docs/chat-bot-integration

+0

Bien que ce lien peut répondre à la question, il est préférable d'inclure les éléments essentiels de la réponse ici et de fournir le lien de référence. Les réponses à lien uniquement peuvent devenir invalides si la page liée change. - [De l'avis] (/ review/low-quality-posts/14362572) – Nikhil

+0

Merci pour les commentaires, juste mis à jour le commentaire, espérons que cela serait utile. – Jerry

Questions connexes