Tutorial: Construye tu primer chatbot usando NLTK y Keras

En este artículo, aprenderemos sobre chatbots usando Python y cómo crear chatbots en Python usando NLTK y Keras.

- , ,
tutorial-nltk-keras

¿Qué es un chatbot?

Un chatbot es una aplicación de software que se utiliza para llevar a cabo una conversación de chat en línea a través de texto o de texto a voz, en lugar de proporcionar contacto directo con un agente humano en vivo. Un chatbot es un tipo de software que puede automatizar conversaciones e interactuar con personas a través de plataformas de mensajería.

Los chatbots ahora son responsables de casi el 30% de todas las actividades. Las empresas utilizan los chatbots para brindar servicios como atención al cliente, generación de conocimiento y más.

Tipos de chatbots

Los chatbots se pueden clasificar en tres tipos:

Tipos de chatbots

Chatbots simples

  • Los chatbots simples tienen capacidades limitadas y, por lo general, se les llama bots basados en reglas.
  • Son tareas específicas. Esto significa que el bot plantea preguntas basadas en opciones predeterminadas y el cliente puede elegir entre las opciones hasta que obtenga respuestas a su consulta.
  • Estos chatbots son los más adecuados para diálogos sencillos.
  • Son muy simples de construir y entrenar.
  • Ejemplo: pedir pizza.

Chatbots inteligentes

  • Los chatbots inteligentes habilitados para IA están diseñados para simular interacciones casi humanas con los clientes.
  • Pueden tener conversaciones fluidas y comprender la intención, el lenguaje y el sentimiento.
  • Estos chatbots requieren programación para ayudarlos a comprender el contexto de las interacciones.
  • Son mucho más difíciles de implementar y ejecutar y necesitan muchos datos para aprender.
  • Ejemplo: asistentes virtuales.

Chatbots híbridos

  • Son una combinación de chatbots simples e inteligentes.
  • Los chatbots híbridos se encuentran con ese término medio.
  • Los chatbots híbridos tienen algunas tareas basadas en reglas y pueden comprender la intención y el contexto.
  • Esto los convierte en una herramienta equilibrada para que las empresas interactúen con los clientes.
  • Ejemplo: diagnóstico médico.

¿Cómo hacer un chatbot en Python?

Para crear un chatbot en Python, debes tener un buen conocimiento de PythonKeras y el procesamiento del lenguaje natural (NLTK).

A continuación se muestran los 6 pasos para crear un chatbot en Python:

1. Instala los módulos necesarios, puedes instalar los módulos necesarios con la ayuda del comando python-pip

2. Importa y carga el archivo de datos

  • Crea intents.json. Así es como se ve nuestro archivo intents.json.

intents.json

  • Primero, crea un nombre de archivo como train_chatbot.py. Importamos los paquetes necesarios para nuestro chatbot e inicializamos las variables que usaremos en nuestro proyecto Python.
  • El archivo de datos está en formato JSON, por lo que usamos el paquete JSON para analizar el archivo JSON en Python.

3. Preprocesar datos

  • Cuando trabajamos con datos de texto, necesitamos realizar varios preprocesos en los datos antes de hacer un machine learning o un modelo de Deep learning. Según los requisitos, necesitamos aplicar varias operaciones para preprocesar los datos.
  • La creación de tokens es lo más básico y lo primero que puedes hacer con los datos de texto. La creación de tokens es el proceso de dividir todo el texto en partes pequeñas, como palabras.
  • Aquí iteramos a través de los patrones y tokenizamos la oración usando la función nltk.word_tokenize () y agregamos cada palabra en la lista de palabras. También creamos una lista de clases para nuestras etiquetas.

  • Ahora lematizaremos cada palabra y eliminaremos las palabras duplicadas de la lista. Lematizar es el proceso de convertir una palabra en su forma de lema y luego crear un archivo pickle para almacenar los objetos de Python que usaremos al predecir.

4. Crea datos de entrenamiento y prueba

  • Ahora, crearemos los datos de entrenamiento en los que proporcionaremos la entrada y la salida.
  • Nuestra entrada será el patrón y la salida será la clase a la que pertenece nuestro patrón de entrada. Pero la computadora no entiende el texto, así que convertiremos el texto en números.

5. Construye el modelo

  • Tenemos nuestros datos de entrenamiento listos, ahora construiremos una red neuronal profunda que tiene 3 capas. Usamos la API secuencial de Keras para esto.
  • Después de entrenar el modelo durante 200 épocas, logramos una precisión del 100% en nuestro modelo. Guardemos el modelo como “chatbot_model.h5”.

5. Predecir la respuesta (interfaz gráfica de usuario)

  • Para predecir las oraciones y obtener una respuesta del usuario que nos permita crear un nuevo archivo “chatapp.py”.
  • Cargaremos el modelo entrenado y luego usaremos una interfaz gráfica de usuario que predecirá la respuesta del bot. El modelo solo nos dirá la clase a la que pertenece, por lo que implementaremos algunas funciones que identificarán la clase y luego recuperaremos una respuesta aleatoria de la lista de respuestas.
  • Nuevamente importamos los paquetes necesarios y cargamos los archivos pickle “words.pkl” y “classes.pkl” que hemos creado cuando entrenamos nuestro modelo:

  • Para predecir la clase, necesitaremos proporcionar información de la misma manera que lo hicimos durante el entrenamiento. Entonces crearemos algunas funciones que realizarán el preprocesamiento de texto y luego predecirán la clase.

  • Después de predecir la clase, obtendremos una respuesta aleatoria de la lista de intenciones.

  • Ahora desarrollaremos una interfaz gráfica de usuario. Usemos la biblioteca Tkinter que se envía con toneladas de bibliotecas útiles para GUI.
  • Tomaremos el mensaje de entrada del usuario y luego usaremos las funciones auxiliares que hemos creado para obtener la respuesta del bot y mostrarla en la GUI. Aquí está el código fuente completo de la GUI.

6. Ejecuta el chatbot

  • Para ejecutar el chatbot, tenemos dos archivos principales; train_chatbot.py y chatapp.py.
  • Primero, entrenamos el modelo usando el comando en la terminal:

  • Si no vemos ningún error durante el entrenamiento, hemos creado el modelo correctamente. Luego, para ejecutar la aplicación, ejecutamos el segundo archivo.

  • El programa abrirá una ventana GUI en unos segundos. Con la GUI puedes chatear fácilmente con el bot.

Capturas:

Resultado del chatbot

Si quieres leer la versión en inglés de este artículo, puedes hacer click aquí.

Mira el código en mi GitHub.

Gracias por leer. Si el artículo te resultó útil, compártelo con tus amigos. 🙂

Entradas del mismo autor

Deja un comentario