Crear Chatbot en Python usando Chatterbot

in #spanish6 years ago

Antes de empezar veamos lo es un Chatbot(contracción de chat + robot). Los Chatbot son software creados con la finalidad de simular conversaciones con personas reales usando alguna plataforma de intercambio de mensajes. Los bots pueden responder una amplia variedad de preguntas evitando la necesidad de tener que leer y responder dichas preguntas manualmente, automatizando este proceso.

Los chatbot usan inteligencia artificial. Lo que les permite aprender los gustos y preferencias de los clientes y mejorar su funcionamiento con el paso del tiempo. Hoy en día se ha extendido gracias a su incorporación en plataformas como Facebook Messenger, Telegram o Slack, solo por mencionar algunas. Pero también pueden ser utilizados para otros fines como atención al cliente o donde sea necesario automatizar respuestas.

Y que es Chatterbot?. Se podría decir que  Chatterbot es una motor conversacional(motor para generar chatbots) programado en Python que usa capacidades básicas de machine learning el cual después de realizar un entrenamiento es capaz de realizar simulaciones de conversaciones.

Muy bien sabiendo esto entonces comenzaremos a desarrollar nuestro propio chatbot. Pero antes de empezar debemos descargar el modulo chatterbot aquí o utilizando el comando “pip install chatterbot”. También podemos consultar la documentación aquí


Para comenzar lo primero es entrenar el bot.

from chatterbot import ChatBot # Importa la clase ChatBot

# Definimos chatbot pasando como argumento el nombre que le daremos al Bot

# También indicaremos los parámetros de entrenamiento del bot

chatbot = ChatBot(

    'EjemploBot',

    trainer='chatterbot.trainers.ChatterBotCorpusTrainer'

)

 

# Entrenamos al bot en el idioma que necesitemos

# Los idiomas disponibles se encuentran en la documentación

# Solo es necesario ejecutar el entrenamiento una vez

 

chatbot.train("chatterbot.corpus.spanish")

# Ejemplo de conversación

while True:

    usuario = input(“>>> ”)

respuesta = chatbot.get_response(usuario)

print (“bot: ”+str(respuesta))

 

En este sencillo ejemplo vemos como realizar un chatbot que contestara preguntas dando respuestas que ya se encuentran predefinidas en chatterbot-corpus puedes consultar los idiomas aqui

 

Muy bien pero ¿qué pasa si queremos crear consultas personalizadas para nuestro bot? Para esta tarea chatterbot cuenta con un adaptador mediante el cual daremos respuestas especificas al bot, como veremos en el siguiente ejemplo.

 

from chatterbot import ChatBot

# Creamos una instancia de nuestro bot

bot = ChatBot(

'EjemploBot',

    storage_adapter='chatterbot.storage.SQLStorageAdapter', # Adaptador de almacenamiento

logic_adapters=[

     {

         'import_path': 'chatterbot.logic.BestMatch' # Adaptador para las respuestas

     },

     {

         'import_path': 'chatterbot.logic.SpecificResponseAdapter', # Adaptador para respuestas especificas

         'input_text': 'Quien eres?', # Entrada por parte del usuario

         'output_text': Yo soy un bot, estoy para servirle' # Respuesta del bot

     }

    ],

    trainer='chatterbot.trainers.ListTrainer' # Entrenamos al bot

)

response = bot.get_response('Quien eres?') # Preguntamos al bot

print(response) # Mostramos la respuesta

 

Y si todo ha marchado bien obtendremos como salida el mensaje indicado.

De esta forma podemos que crear cualquier cantidad de consultas para que nuestro bot sea capaz de responder a diferentes preguntas. Ahora queda de vuestra parte que tantas creen necesitar para el proyecto en que lo deseen usar. También te invito a consultar la documentación para toda la información como más adaptadores para que nuestro bot tenga funciones específicas como dar la hora o realizar operaciones aritméticas entre otros disponibles.

Funte de la imagen aquí

Sort:  

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by fidelwx from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.

Thank you so much for sharing this amazing post with us!

Have you heard about Partiko? It’s a really convenient mobile app for Steem! With Partiko, you can easily see what’s going on in the Steem community, make posts and comments (no beneficiary cut forever!), and always stayed connected with your followers via push notification!

Partiko also rewards you with Partiko Points (3000 Partiko Point bonus when you first use it!), and Partiko Points can be converted into Steem tokens. You can earn Partiko Points easily by making posts and comments using Partiko.

We also noticed that your Steem Power is low. We will be very happy to delegate 15 Steem Power to you once you have made a post using Partiko! With more Steem Power, you can make more posts and comments, and earn more rewards!

If that all sounds interesting, you can:

Thank you so much for reading this message!

Congratulations @fidelwx! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.23
TRX 0.21
JST 0.036
BTC 98546.61
ETH 3370.70
USDT 1.00
SBD 3.14