Me encuentro leyendo el libro 'Practical Bot Development' de Szymon Rozga, un libro dedicado al mundo de los chatbots, especialmente en el entorno de Microsoft Bot Framework / Azure Bot Service, pero que también pone unas buenas bases conceptuales incluyendo, por ejemplo, fundamentos de Machine Learning y de Procesamiento de Lenguaje Natural. Un libro del que, en su momento, haré una reseña en este blog pero que, de momento, me está gustando mucho.
Bastante al principio del libro y, como es natural, el autor propone una definición de chat bot, más que nada para centrar cuál es el tema del libro. En próximos artículos, comentaré algún tema interesante adicional en relación con los contenidos de este libro, pero de momento consigno aquí la definición práctica que propone:
chat bot [] is a computer program that can take user input in natural language and return text or rich media to the user.
Una definición bastante simple y, al tiempo, bastante acertada aunque debo mencionar que, en mi opinión, se autolimita un poco en esta definición en dos aspectos:
- Por un lado, porque supone que en la entrada se va a encontrar lenguaje natural. Es cierto que con muchísima frecuencia es así y que, además, es probablemente la forma de entrada más característica y útil en un chatbot, pero creo que también se puede considerar como chatbot un robot software que mantiene conversaciones usando algunos elementos más convencionales como opciones de menú, imágenes, etc. No me parece una limitación grave, no es demasiado importante en la práctica, pero no quería dejar de reseñarla.
- Más limitante, quizá, es entender que la salida, lo que se ofrece al usuario, sea 'rich media'. En realidad, quizá, conviene aclarar qué se entiende exactamente por 'rich media'. A mi ese término me parece que excluye la voz sintetizada y me parece que se queda más en texto, imágenes, etc. Si es así, es una limitación porque, desde ya y cada vez más, los chatbots nos 'hablan de viva voz'.
Por establecer un punto de comparación, recojo la definición que ofrezco en mi libro "La Carrera Digital" del término interfaz conversacional, término que, aunque más rebuscado, pero también más descriptivo, considero equivalente a chatbot, . Reza así:
Un robot conversacional es un módulo software cuya misión es interaccionar con personas de forma abierta y natural mediante conversaciones.
En mi definición, pongo más foco en el establecimiento de conversaciones naturales, que en el canal o medios usados para ello. Creo que, con ello, consigo una definición más generalista y que, al tiempo, capta mejor la naturaleza de lo que es un chatbot (una interfaz conversacional).
Sin embargo, y a efectos prácticos, la propuesta de Szymon Rozga, me parece razonablemente atinada y que, en el fondo, ambas definiciones son muy convergentes a efectos prácticos.