Skip to content
Suscribirse
tipsdetecnologia.com.ve
Síguenos en

¿Cómo crear un Chatbot con Python?

febrero 1, 2022

Crear un chatbot para contestar a interrogantes de tus clientes no es tan sencillo; te voy a guiar paso a paso para que puedas hacerlo con Python.

como crear un chatbot con python

Contar con un chatbot brinda el beneficio de formalidad en cuentas comerciales y oficiales. Pero instalar un bot para contestar a las interrogantes de los usuarios que acuden a el, la verdad no es tan sencillo, pero no te preocupes, aquí en Tips de Tecnología te voy a guiar paso a paso para que puedas crear un chatbot con la ayuda de Python.

¿Qué es un chatbot? 

Antes de iniciar con esta guía instructiva primero, vamos a establecer que es en sí un chatbot. Los chatsbots son pequeños bot que se emplean dentro de aplicaciones de conexión de mensajerías para dar respuestas a usuarios externos. Es utilizado por cuentas empresariales o institucionales, así como algunas cuentas oficiales; y aunque parezca una función básica, la verdad es que es una herramienta verdaderamente oportuna.

Se trata de una función que permite a marcas oficiales, establecer una mejor  atención cuando hay un gran flujo de preguntas. Estos te ayudan a aumentar tu audiencia en el mundo digital,  expandir tu marca y aumentar su reconocimiento; todo acompañado de buenas estrategias de Marketing. 

Intentar crear un chatbot puede ser algo complejo pero con nuestra guía y con la ayuda de Python podrás hacerlo con éxito, y de la manera más conveniente para tu empresa.

¿Qué beneficios ofrece un chatbot para mi empresa digital?

Como ya te mencioné poseer un chatbot en cuentas comerciales ayuda a atender mejor a los clientes usuarios, pero también brinda beneficios que permiten evolucionar en el comercio digital. Entre las ventajas más renombrables que podemos destacar están:

• Incrementa tu audiencia

Seguramente ya te habrás dado cuenta que con los chatbots se pueden implementar en las redes sociales; cuentas donde se puede interactuar con facilidad con clientes. Estos usuarios interesados en tus cuentas, suelen escribir a los directs para hallar información con el fin de transaccionar. Por lo que, contar con respuestas eficientes, puntuales y al mismo tiempo el tiempo récord es importantísimo.

• Mejor monitoreo de datos del consumidor y obtención de estadísticas

Esta es una de los beneficios más oportunos para negocios digitales; ya que esta herramienta te permite obtener  una recopilación de datos, debido a que en muchas ocasiones los consumidores no brindan mucha información de ellos. De esta manera podrás saber cuál es la actividad de los usuarios que entran, siguen o dejan de seguir tu cuenta.

Básicamente, podrás utilizarlo para analizar el flujo de tus consumidores y obtener una estadística optimizada según la conversión de la audiencia a las que deseas llegar.

En tal caso, un chatbot puede redireccionar al usuario a tu cuenta nuevamente, por lo que te ayudará a mover y mejorar el tráfico en tu cuenta. Por otro lado, este software te ayuda a analizar el por qué un usuario ha abandonado la suscripción en tu página, cuenta o perfil. De manera que podrás tener información que te ayudará a entender las necesidades de tu público y mejorar.

• Brindar una atención personalizada

Todo ejecutivo de ventas desea incrementar sus despachos, sin embargo esta acción siempre depende de la cantidad de consumidores que tenga. Por lo que, aumentar el número de posibles clientes se considera esencial para tener un negocio exitoso. Para esto, implementar un chatbot te puede ayudar a través de las repuestas y atención directa y personalizada.

Los chatbots pueden ser programados para ofrecer búsquedas y experiencias personalizadas, beneficio que encaja a la perfección con las necesidades de tus clientes. Contar con este paso es vital para que el engagement aumente.

• Mejora tu marca personal 

En relación al punto anterior, se puede decir que  atraer clientes en este momento digital es un tema cada vez más competitivo. En tal sentido, los bots suelen ser una solución eficaz a los problemas, ya que permite mejorar tu marca personal brindando una mejor experiencia a tus clientes. Para ello emplea las siguientes acciones:

  • ofrecerle a las personas la información necesaria para su comodidad.
  • elimina los obstáculos para la búsqueda o compra de nuestros clientes.
  • brinda una atención instantánea.

Realizando estas tareas aparentemente básicas, te posicionarás entre tus clientes como una de sus empresas favoritas.

• Se ajustan a las necesidades de tu negocio

gracias a su modalidad de ajustes y programaciones que permiten sacar el máximo provecho en beneficio de tu negocio digital; podrás adaptar esta herramienta según las prioridades de tu negocio.

¿Qué tareas de mi embudo de ventas realiza un chatbot por mi?

El fin de un chatbot es potenciar tus ventas, para lograrlo realiza tareas de atención y recopilación de datos entre tus seguidores. Como virtud destacable se puede mencionar que además ésta guía a tus clientes potenciales a través de tu página según lo que esta ha detectado que necesita o desea.

Esto es posible, ya que un chatbot estudia y analiza a los clientes según las respuestas que los usuarios proporcionan. Claro, que su función más básica y obvias son las respuestas programadas. En este segunda y no menos importante tarea, el chatbot se espeicaliza; ya que al abrir una tienda, sea física o virtual, la atención al cliente es muy importante para lograr un negocio exitoso.

Se puede decir que para lograr este objetivo es necesario:

  • Ofrecer productos de interés
  • Generar atención personalizada
  • Sugerir búsquedas y opciones adicionales
  • Cumplir con las necesidades del consumidor
  • Lo más importante ¡se valora su tiempo!

Esto es precisamente las tareas que un chatbot le facilitan y le garantizan.

¿Por qué utilizar Python para crear un chatbot?

A la hora de crear un chatbot los expertos en programación recomiendan hacerlo con Python. La razón es que esta plataforma ofrece excelentes ventajas por encima de otras similares. Entre las virtudes más mencionable de Python encontramos:

√ Es simple y rápido

Parte de las grandes ventajas que nos brinda Python, es su sencillez y rapidez en todos los procesos de programación del bot chat. Podemos crear nuestro bot de chat con un lenguaje scripting, usando los patrones de programación que nos otorga la herramienta.

√ Resultados elegantes y flexibles

La elegancia y la flexibilidad son características de Python, por lo que es posible obtener resultados exigentes. Esta herramienta posee una gran variedad de herramientas para que las programaciones cumplan con las exigencias del usuario. No debes preocuparte tanto por repetir codificaciones ya que este lenguaje sugiere las que corresponden para que el algoritmo se cumpla a la perfección, y con un mínimo de error.

√ Programación sana y productiva

Programar con Pyton es no solo productivo, si no también seguro. Lo que significa que que nuestra programación cumpla con las reglas correspondientes para la función adecuada.

Dicho de otra forma, aprender en Python es sumamente sencillo ya que sus programaciones son de gran calidad en las operaciones, en el menor tiempo posible y sin riesgo a perder el trabajo por fallas.

√  Portable

Este lenguaje es totalmente portable, lo que significa que su formato es soportado en diferentes sistemas operativos; permitiendo programar desde tu Mac, Linux o Windows.

Guía para crear un chatbot con Python

¡Ahora si! A continuación te mostraré cuáles son los pasos y requisitos necesarios para crear un chatbot útil para tu empresa.

Pero ¡Ojo! es importante que sepas que en este proceso, te encontrará con términos de programación, por lo que quizá te sientas algo confundido al toparte con ellos. De manera que te recomiendo, que a parte, tengas un acceso a Internet para que puedas ir poco a poco relacionándote con los términos a través de las búsquedas de a web. De todas maneras te mencionaré de manera simple lo que necesitas saber sobre ellos.

Requisitos previos de programación

El requisito más importante antes de poder programar con Python es conocer los conceptos claves de NLTK, Scikit y NLP. Si no tienes ni la menor idea de lo que te estamos mencionando, te invitamos a que leas los conceptos que corresponden a cada uno de ellos.

 NLP

El Procesamiento del Lenguaje Natural, o también conocido como NLP, hace referencia a la interacción que existe entre el procesador del lenguaje humano con el de las computadoras. En otras palabras es el intermediario o traductor del proceso.

NLTK

La plataforma Natural Language Toolkit es la adecuada para la escritura en un lenguaje humano, proporcionando interfaces flexibles y sencillas de utilizar.

En ella se pueden encontrar diferentes bibliotecas de procesamiento ideales para la clasificación, tokenización, derivación, etiquetado, análisis y razonamiento semántico, trabajando en conjunto con el PNL.

Scikit Learn

Es la biblioteca de aprendizaje automático de Python y ofrece una guía de algoritmos de programación en Python. 

Descargar e instalar NLTK

Puedes acceder a cualquier página de acceso en la web que tenga disponible este progama. Una vez tengas el instalador en tu pc, se ejecuta el archivo después de descargarlo, con el siguiente código: pip install nltk.

Luego, relaiza la instalación de rueba con python para ello utiliza  import nltk.

Instalación de Paquetes NLTK

Ahora importamos y ejecutamos NLTK con el comando nltk.download().  A continuación podrás elegir los paquetes modelos que deseas indexar en el programa.

Reprocesamiento de texto con NLTK

El reprocesamiento de texto con NLTK es muy importante antes de realizar cualquier proyecto de PNL, debido que el principal problema de estos textos, es que se presentan en forma de cadenas.

 Bag of Words

Luego de realizar el reprocesamiento, es necesario que las palabras o matriz de números se conviertan o transformen en una representación de textos. A este proceso se le conoce como bag of words, el cual su objetivo es describir el espectro de palabras dentro de un documento.

Enfoque TF-IDF

Esto consiste en agrupar palabras que son muy frecuentes entre sí, pero con poco valor en la programación, por lo que hará que nuestros documentos tengan más peso, para funciones más cortas

El enfoque consiste en volver a escalar la frecuencia de esas palabras, de forma que se disminuya el peso, pero aumente el valor. Tales palabras frecuentes pueden ser artículos, como por ejemplo: «the, a y an».

 Similitud coseno

Consiste en la transformación o interpretación que le aplican a los textos para que puedan ser identificados dentro de un vector real en el espacio. Dentro del proceso de NPL puede existir similitudes, lo que produce una división por el producto de normas.

Existe una fórmula que puede ser utilizada para descubrir cuándo existe una similitud entre dos documentos (d1 y d2):

  • Cosine Similarity (d1, d2) = Dot product(d1, d2) / ||d1|| * ||d2||

Programación del bot

Bien, ahora que ya sabes en qué consiste el proceso NPL, y los términos más básicos de programación necesarios para crear un chatbot desde cero con Python; entonces podemos iniciar a hacer el tuyo. Pero antes de empezar, tendrás que colocarle un nombre a tu bot. Ahora sí, iniciemos la ruta de aplicación y creación:

1.- Importa las librerías necesarias.

Luego de cumplir con los requisitos previos, debes acceder e importar toda la librería necesaria para trabajar.

Para ello ingresa el siguiente código en la terminal de comandos:

import nltk
import numpy as np
import random
import string # to process standard Python strings

2.- Busca un cuerpo

Debes buscar un cuerpo, y para ello vas a cualquier página de Internet y copiamos todo el corpus, y guardas un archivo con el nombre de «chatbot.txt».

3.- Leyendo en los datos

El proceso se continúa con la lectura del archivo chatbot.txt en un detallado repertorio de oraciones y frases para el procesamiento de lectura del bot a crear.

El proceso se realiza mediante la siguiente fórmula:

f=open('chatbot.txt','r',errors = 'ignore')raw=f.read()raw=raw.lower()# converts to lowercasenltk.download('punkt') # first-time use only
nltk.download('wordnet') # first-time use onlysent_tokens = nltk.sent_tokenize(raw)# converts to list of sentences
word_tokens = nltk.word_tokenize(raw)# converts to list of words

Hecho lo anterior puedes hacer una lectura o ver la estructura del «sent tokens» y «Word tokens», por medio del siguiente:

sent_tokens[:2]
['a chatbot (also known as a talkbot, chatterbot, bot, im bot, interactive agent, or artificial conversational entity) is a computer program or an artificial intelligence which conducts a conversation via auditory or textual methods.',
'such programs are often designed to convincingly simulate how a human would behave as a conversational partner, thereby passing the turing test.']
word_tokens[:2]
['a', 'chatbot', '(', 'also', 'known']

4.- Pre-procesamiento del texto crudo

En este nivel, tendrás que definir la función para que llame al Lem Tokens, que tomará los tokens en forma de entradas, pero no alterará ningún dato, ya que posteriormente los regresara normalizados:

lemmer = nltk.stem.WordNetLemmatizer()
#WordNet is a semantically-oriented dictionary of English included in NLTK.def LemTokens(tokens):
return [lemmer.lemmatize(token) for token in tokens]
remove_punct_dict = dict((ord(punct), None) for punct in string.punctuation)
def LemNormalize(text):
return
LemTokens(nltk.word_tokenize(text.lower().translate(remove_punct_dict)))

5.- Coincidencia de palabras clave

En este punto, tendrás que activar con una palabra clave las respuestas ocasionales que programarás. Puede ser el típico saludo Hola, o buenos días, tardes y noches.

Ejemplo en el diagrama de programación:

GREETING_NPUTS = ("hello", "hi", "greetings", "sup", "what's up","hey",)GREETING_RESPONSES = ["hi", "hey", "*nods*", "hi there", "hello", "I am glad! You are talking to me"]def greeting(sentence):
for word in sentence.split():
if word.lower() in GREETING_INPUTS:
return random.choice(GREETING_RESPONSES)

6.- Generando respuesta

Ahora bien, así como se indicarán las preguntas de activación, tendrás que crear las respuestas a la posibles preguntas de tu mercado.

Para ello se inicia con la importación de ciertos módulos necesarios.

Desde la biblioteca, se importa directamente el vectorizador TFidf, el cual se utilizará para convertir una colección de documentos, en una matriz fácil de interpretar:

  • from sklearn.feature_extraction.text import TfidfVectorizer

También se debe hacer el proceso de importación con el módulo de similitud de coseno, desde la biblioteca de aprendizaje de Scikit:

  • from sklearn.metrics.pairwise import cosine_similarity

Esta es una de las implementaciones más sencillas de un chatbot.

7.-  Respuesta no encontrada

Normalmente se programa al bot de forma que si no entiende las preguntas realizadas, le muestre al usuario un mensaje indicando que realice nuevamente las preguntas: «¡Lo siento! No te entiendo»:

def response(user_response):
robo_response=''
sent_tokens.append(user_response)TfidfVec = TfidfVectorizer(tokenizer=LemNormalize, stop_words='english')
tfidf = TfidfVec.fit_transform(sent_tokens)
vals = cosine_similarity(tfidf[-1], tfidf)
idx=vals.argsort()[0][-2]
flat = vals.flatten()
flat.sort()
req_tfidf = flat[-2]if(req_tfidf==0):
robo_response=robo_response+"I am sorry! I don't understand you"
return robo_response
else:
robo_response = robo_response+sent_tokens[idx]
return robo_response

Para ir cerrando con la programación, se debe incluir unas líneas que debe decir nuestro robot al iniciar o culminar la conversación, el código para esto es el siguiente:

flag=True
print("ROBO: My name is Robo. I will answer your queries about Chatbots. If you want to exit, type Bye!")while(flag==True):
user_response = input()
user_response=user_response.lower()
if(user_response!='bye'):
if(user_response=='thanks' or user_response=='thank you' ):
flag=False
print("ROBO: You are welcome..")
else:
if(greeting(user_response)!=None):
print("ROBO: "+greeting(user_response))
else:
print("ROBO: ",end="")
print(response(user_response))
sent_tokens.remove(user_response)
else:
flag=False
print("ROBO: Bye! take care..")

Si has cumplido con todos estos pasos y requisitos, felicidades entonces tu programación ha sido todo un éxito.  Así que ya puedes iniciar la prueba a ver cómo interactúa con los clientes.

Whatsapp