articulo

Chatbot y python

chatbot y python
Photo by Christina Morillo on Pexels.com

En esta entrada se mostrará un ejemplo sencillo, sobre un chatbot que consulta y responde en base a un arreglo de respuestas previamente cargados, es uno de los más básicos chatbots.

código de chatbot

import nltk
from nltk.chat.util import Chat, reflections

# Definición de los patrones de entrada y respuestas
patrones = [
    [
        r"mi nombre es (.*)",  # Si el usuario escribe "mi nombre es [nombre]"
        ["Hola %1, ¿cómo puedo ayudarte?",]  # El chatbot responde saludando con el nombre del usuario
    ],
    [
        r"hola|buenos dias|buenas tardes|buenas noches",  # Si el usuario teclea "hola" o saludo similar
        ["¡Hola! ¿En qué puedo ayudarte?",]  # El chatbot responde con un saludo y ofrece su ayuda
    ],
    [
        r"¿Cómo estás?",  # Si el usuario pregunta "¿Cómo estás?"
        ["Estoy bien, gracias. ¿Y tú?",]  # El chatbot responde que está bien y pregunta cómo está el usuario
    ],
    [
        r"bye|chao|adios|diu|hasta luego|Hasta Luego",  # Si el usuario escribe "bye" o algo similar
        ["¡Hasta luego! Si necesitas algo más, no dudes en preguntar.",]  # El chatbot se despide y finaliza la conversación
    ],
]

def chatbot():
    print("¡Hola! Soy un chatbot, mi nombre es Noa. ¿En qué puedo ayudarte?")
    chat = Chat(patrones, reflections)  # Creación de un objeto Chat con los pares de entrada y respuestas
    chat.converse()  # Inicio de la conversación con el chatbot

if __name__ == "__main__":
    chatbot()  # Llamada a la función principal para iniciar el chatbot

En el código anterior se observa lo siguiente:

  1. En la primera línea, se importa la biblioteca nltk, que es el acrónimo de Natural Language Toolkit. Esta proporciona herramientas y recursos para el procesamiento del lenguaje natural.
  2. Luego, se importa la clase Chat y el módulo reflections del módulo nltk.chat.util. La clase Chat se utiliza para crear una instancia del chatbot y gestionar la conversación, mientras reflections contiene un conjunto de reflexiones predefinidas que pueden ser utilizadas para responder de manera más natural.
  3. A continuación, se define la variable patrones, que es una lista de listas. Cada sublista contiene un patrón de entrada y una lista de posibles respuestas asociadas a ese patrón. Estos patrones y respuestas definen las reglas para que el chatbot responda a ciertos tipos de entradas del usuario.
  4. La función chatbot() es definida. Esta imprime un mensaje de bienvenida y crea una instancia de la clase Chat utilizando los patrones y reflexiones definidos anteriormente.
  5. Luego, se llama al método converse() en el objeto chat. Este método inicia la conversación con el chatbot. El chatbot espera a que el usuario ingrese un mensaje, y luego selecciona una respuesta adecuada basada en los patrones definidos.
  6. Finalmente, en la parte inferior del código, verificamos si el archivo actual es el archivo principal que se está ejecutando (__name__ == "__main__"). Si es así, llamamos a la función chatbot() para iniciar el chatbot.

Este código define un chatbot muy básico, respondiendo a algunas entradas simples del usuario, como saludos, preguntas sobre el estado del chatbot y despedidas. Los patrones de entrada y respuestas se definen en la lista patroness, y la interacción con el chatbot se maneja utilizando el objeto Chat.

Este código se encuentra disponible en: https://github.com/ajgutierr3z/chatbot/tree/main

Leave a Reply

Your email address will not be published. Required fields are marked *