0% encontró este documento útil (0 votos)
11 vistas6 páginas

Creación de un Chatbot con IA en Python

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
11 vistas6 páginas

Creación de un Chatbot con IA en Python

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

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.

También podría gustarte