El otro día hablábamos de BotLibre (¿Qué es Botlibre?), un motor para hacer Bots. BotLibre es una buena elección si quiero desarrollar los Bots en su Servicio (chatlibre.com) pero no tanto si quiero desarrollar Bots a medida (y si no probad a bajaros el código de GitHub y me decís :)).

ChatterBot es un motor conversacional con capacidades de Machine Learning (muy básicas) escrito en Python.

Para trabajar con ChatterBot lo primero que tengo que hacer es entrentarlo, ChatterBot nos permite simular una conversación e irá grabando el texto introducido y la respuesta.

En ejecución ChatterBot elegirá la respuesta más adecuada en función del algoritmo de macheo elegido.

ChatterBot tiene el concepto de adaptador, soportando:

· IO Adapters

· Logic Adapters

· Storage Adapters

Los IO Adapters permiten comunicar a través de interfaces (Servicio Web, Consola, Speech, JSON, Twitter…)

Los Logic Adapters determinan como el Bot responde a una pregunta, ChatterBot ofrece varios ya implementados, como el Closest Match Adapter (extrae la respuesta más similar a la pregunta), Closest Meaning Adapter (elige la respuesta eligiendo la forma tokenizada de la pregunta).

Los Storage Adapters proveen una interfaz para conectar con diferentes Backends de almacenamiento. Por defecto ChatterBot usa un Json Adapter que almacena las conversaciones en JSON, también incluye un MongoDB Adapter y la posibilidad de crear fácilmente nuevos adapters.

Si os ha convencido podéis empezar con este tutorial: http://chatterbot.readthedocs.io/en/latest/tutorial.html