pip install nltk scikit-learn
import nltk
[Link]('punkt')
[Link]('wordnet')
import nltk
import random
import string
import warnings
from sklearn.feature_extraction.text import TfidfVectorizer
from [Link] import cosine_similarity
from [Link] import WordNetLemmatizer
# Ignorar advertencias
[Link]('ignore')
# Descargar recursos necesarios de NLTK (solo la primera vez)
[Link]('punkt')
[Link]('wordnet')
# Leer el archivo de texto como fuente de conocimiento del bot
try:
with open("base_conocimiento.txt", "r", encoding='utf8') as file:
raw = [Link]().lower()
except FileNotFoundError:
print("⚠️ERROR: No se encontró el archivo 'base_conocimiento.txt'.")
print("Crea un archivo con ese nombre y agrégale texto para entrenar la IA.")
exit()
# Tokenización
sent_tokens = nltk.sent_tokenize(raw)
word_tokens = nltk.word_tokenize(raw)
# Inicializar lematizador
lemmatizer = WordNetLemmatizer()
# Funciones auxiliares
def LemTokens(tokens):
return [[Link](token) for token in tokens]
remove_punct_dict = dict((ord(punct), None) for punct in [Link])
def LemNormalize(text):
return LemTokens(nltk.word_tokenize([Link]().translate(remove_punct_dict)))
# Saludos predefinidos
saludos_usuario = ("hola", "buenas", "qué tal", "hey", "saludos")
respuestas_bot = ["Hola, ¿en qué puedo ayudarte?", "¡Hola! ¿Cómo estás?", "Saludos, ¿en qué
puedo ayudarte hoy?"]
def responder_saludo(frase):
for palabra in [Link]():
if [Link]() in saludos_usuario:
return [Link](respuestas_bot)
# Generador de respuestas basado en similitud de texto
def generar_respuesta(user_input):
respuesta_bot = ''
sent_tokens.append(user_input)
vectorizer = TfidfVectorizer(tokenizer=LemNormalize, stop_words='english')
tfidf = vectorizer.fit_transform(sent_tokens)
vals = cosine_similarity(tfidf[-1], tfidf[:-1])
idx = [Link]()[0][-1]
flat = [Link]()
[Link]()
score = flat[-1]
if score == 0:
respuesta_bot = "Lo siento, no entendí lo que dijiste."
else:
respuesta_bot = sent_tokens[idx]
sent_tokens.pop()
return respuesta_bot
# Interfaz de conversación
def chatbot():
print("IA: Hola, soy tu asistente IA. Escribe 'salir' para terminar la conversación.")
while True:
user_input = input("Tú: ").lower()
if user_input == 'salir':
print("IA: ¡Hasta luego! 😊")
break
elif responder_saludo(user_input) is not None:
print(f"IA: {responder_saludo(user_input)}")
else:
print(f"IA: {generar_respuesta(user_input)}")
# Ejecutar chatbot
if __name__ == "__main__":
chatbot()
La inteligencia artificial es una rama de la informática.
El aprendizaje automático es una técnica de la IA.
Python es un lenguaje muy usado para IA.
Un chatbot es un programa que simula una conversación.
El procesamiento de lenguaje natural permite que la IA entienda texto humano.
$ python chatbot_ia.py
IA: Hola, soy tu asistente IA. Escribe 'salir' para terminar la conversación.
Tú: hola
IA: ¡Hola! ¿Cómo estás?
Tú: ¿Qué es la inteligencia artificial?
IA: la inteligencia artificial es una rama de la informática.
Tú: salir
IA: ¡Hasta luego! 😊
Paso 1: Identifica el problema que quieres resolver con la IA 🔍
El primer paso es fundamental: identificar claramente el problema que tu IA abordará. Esto te ayudará
a definir los objetivos y las metas de tu proyecto. Sea para el procesamiento de lenguaje natural o la visión
por computadora, tener una meta clara es esencial.
Ejemplo práctico:
Si, por ejemplo, trabajas en una empresa de servicios de atención al cliente y tu problema es reducir el
tiempo de respuesta en atención al cliente, podrías recopilar datos sobre los tiempos de respuesta actuales
y evaluar dónde se producen retrasos
Puedes descubrir que las consultas más simples se responden rápidamente, pero las más complejas llevan
mucho más tiempo. Esta identificación te lleva al siguiente paso, que es recopilar datos relevantes para
abordar estas diferencias.
Paso 2: Recopila los datos con los que alimentarás a la IA 🧩
Una vez que hayas definido claramente el problema, es hora de recopilar datos relevantes y de calidad. Los
datos son la materia prima de las inteligencias artificiales, y la calidad de estos afectará directamente a la
precisión de tu modelo. Cuantos más precisos y representativos sean los datos que puedas obtener, mejor
será la base para tu IA.
Continuando con el ejemplo de atención al cliente, para recopilar datos, podrías utilizar grabaciones o
transcripts de conversaciones con usuarios, tiempos de respuesta registrados en sistemas de gestión de
tickets y encuestas de satisfacción del cliente.
Supongamos que descubres que las consultas relacionadas con facturación a menudo requieren más tiempo
para responder y tienen una baja satisfacción del cliente.
Esta información te ayudará a enfocar tus esfuerzos en mejorar específicamente el manejo de consultas de
facturación.
Paso 3: Selecciona el algoritmo que debe usar tu IA
Una vez que tengas datos sólidos en tus manos, el siguiente paso es seleccionar el algoritmo adecuado para
tu proyecto de IA. En el mundo del aprendizaje automático, existen diversos algoritmos y su elección
dependerá de la naturaleza de tu problema.
Siguiendo con el ejemplo, podrías optar por un algoritmo de procesamiento de lenguaje natural (NLP) si tu
objetivo es mejorar la comprensión y respuesta a las consultas de las personas.
Algunos algoritmos NLP populares incluyen el modelo de lenguaje GPT-4 de OpenAI.
Paso 4: Entrena la red neuronal
El entrenamiento de la red neuronal es un paso crucial en la creación de tu IA. Utiliza los datos que has
recopilado y el algoritmo seleccionado para entrenar a tu IA. Ten en cuenta que este proceso puede ser
intensivo en recursos y tiempo.
Para entrenar tu IA en atención al cliente, podrías utilizar un conjunto de datos de registros de
conversaciones anteriores.
Puedes entregar ejemplos de interacciones de clientes y respuestas correctas a la IA. Así aprenderá a
identificar patrones en estas conversaciones y a proporcionar respuestas apropiadas.
Ya sabes, cuanto más variados y completos sean tus datos de entrenamiento, mejor será el rendimiento de
tu IA.
Paso 5: Prueba, itera y mejora tu inteligencia artificial ✍️
Una vez que tu IA esté entrenada, es esencial someterla a pruebas exhaustivas. La IA no es perfecta desde el
principio, y la iteración constante es clave para hacerla más precisa y efectiva.
Cuando pones a prueba tu IA en situaciones de atención al cliente, puedes descubrir que tiene dificultades
para manejar preguntas muy técnicas.
En este caso, podrías incorporar más ejemplos de consultas técnicas en tu conjunto de datos de
entrenamiento y ajustar el algoritmo para que sea más competente en este aspecto.
Este proceso de prueba y mejora continuo asegura que tu IA evolucione para enfrentar desafíos específicos
de manera efectiva.