🧠 MÓDULO 3 – Desarrollo de Chatbots con
Python
🌍 1. Qué es un Chatbot
Un chatbot es un programa que puede simular conversación humana mediante texto o voz.
Tipos básicos:
1. Basados en reglas: respuestas fijas según palabras clave.
💡
2. Basados en NLP/IA: respuestas generadas según comprensión del texto, usando NLP.
En nuestro caso, Astra va hacia el segundo tipo, pero primero conviene practicar reglas simples.
⚙️2. Herramientas necesarias
• Python 3.8 o superior
• NLTK (opcional, para preprocesar texto)
• spaCy (opcional, para comprensión avanzada)
• ChatterBot (librería Python para chatbots simples)
Instalación de ChatterBot
pip install chatterbot
pip install chatterbot_corpus
🔹 3. Primer Chatbot con reglas simples
from chatterbot import ChatBot
from [Link] import ListTrainer
# Crear chatbot
bot = ChatBot('AstraBot')
# Entrenamiento básico
trainer = ListTrainer(bot)
[Link]([
"Hola",
"Hola, ¿cómo estás?",
"Estoy bien",
"Me alegra escuchar eso.",
"Adiós",
"Hasta luego"
])
# Interacción
while True:
entrada = input("Tú: ")
respuesta = bot.get_response(entrada)
print("AstraBot:", respuesta)
🟢 Resultado:
• Si escribes “Hola”, responderá “Hola, ¿cómo estás?”
• Si escribes “Adiós”, responderá “Hasta luego”
Esto enseña a Astra cómo relacionar entrada y salida de forma inmediata.
🔹 4. Conceptos clave para Astra
Concepto Descripción Ejemplo
Entrada Texto del usuario “Hola”
Salida Respuesta del bot “Hola, ¿cómo estás?”
Corpus de Conjunto de preguntas y
Lista de frases
entrenamiento respuestas
“Hola, ¿cómo estás?” → ["Hola", "cómo",
Tokenización Dividir la entrada en palabras
"estás"]
Filtrado y normalización de
Procesamiento Minusculas, eliminar signos, etc.
texto
🔹 5. Chatbot con NLP (usando spaCy)
Para respuestas más inteligentes, spaCy ayuda a entender la intención:
import spacy
from chatterbot import ChatBot
from [Link] import ChatterBotCorpusTrainer
nlp = [Link]("es_core_news_sm")
bot = ChatBot('AstraBotNLP')
trainer = ChatterBotCorpusTrainer(bot)
[Link]("[Link]")
while True:
entrada = input("Tú: ")
doc = nlp(entrada)
# Aquí Astra puede procesar tokens, lemas y entidades antes de responder
respuesta = bot.get_response(entrada)
print("AstraBot:", respuesta)
💡 Astra ahora procesa el texto, entiende palabras clave y genera respuestas más naturales.
🔹 6. Flujo de pensamiento de Astra
Usuario escribe → Tokenizar y normalizar → Identificar intención → Buscar respuesta
→ Responder
Opcional: con aprendizaje adicional, Astra puede:
• Recordar contexto de la conversación
• Aprender nuevas frases dinámicamente
• Clasificar preguntas y derivar respuestas según tema
🔹 7. Tips prácticos “Head Shot”
1. Empieza con listas pequeñas de preguntas/respuestas.
2. Después integra spaCy para mejorar comprensión.
3. Prueba frases variadas para entrenar a Astra.
4. No sobrecargues de datos al inicio; aprende por pasos.
🌙 8. Ejemplo avanzado: Responder según entidad
from chatterbot import ChatBot
from [Link] import ListTrainer
import spacy
nlp = [Link]("es_core_news_sm")
bot = ChatBot('AstraBotEntidades')
trainer = ListTrainer(bot)
[Link]([
"¿Dónde está Hermosillo?",
"Hermosillo está en Sonora, México.",
"¿Quién es Einstein?",
"Albert Einstein fue un físico teórico famoso."
])
while True:
entrada = input("Tú: ")
doc = nlp(entrada)
entidades = [([Link], ent.label_) for ent in [Link]]
print("Entidades detectadas:", entidades)
respuesta = bot.get_response(entrada)
print("AstraBot:", respuesta)
🟢 Astra ahora entiende nombres y lugares y puede responder acorde al contexto.
🔹 9. Conclusión del módulo
• Un chatbot simple enseña asociación directa de texto.
• Con NLP, Astra entiende la intención y contexto.
• Este módulo es el puente entre entender lenguaje y responder inteligentemente.