Chatbot usando la biblioteca NLTK | Construye Chatbot en Python usando NLTK

Contenidos

Esa es la belleza de un chatbot. Un chatbot es un software basado en IA que se aplica a la PNL que trata con los usuarios para manejar sus consultas específicas sin interferencia humana.

39933chatbots20feature20img-8425875

Tabla de contenido

  • Breve sobre los chatbots
  • ¿Cuál es la necesidad de chatbots?
  • Tipos de chatbots
    • Chatbots basados ​​en reglas
    • Chatbots de autoaprendizaje
  • Chatbot usando Python
  • Chatbot usando Python y NLTK
  • Notas finales

Breve introducción sobre Chatbot

Un chatbot es una aplicación inteligente que reduce el trabajo humano y ayuda a una organización a resolver consultas básicas del cliente. Hoy en día, la mayoría de las empresas, negocios de diferentes sectores, hacen uso del chatbot de una manera diferente para responder a sus clientes lo más rápido posible. Los chatbots también ayudan a aumentar el tráfico del sitio, que es la principal razón de negocios para usar chatbots.

Chatbot solicita información básica de los clientes, como el nombre, la dirección de correo electrónico y la consulta. Si una consulta es simple, como falla del producto, error de reserva, necesita información, entonces sin ninguna conexión humana puede resolverla automáticamente y si algún problema es alto, pasa los detalles a la cabeza humana y ayuda al cliente a conectarse con el gerente de la organización fácilmente. Y a la mayoría de los clientes les gusta tratar y hablar con un chatbot.

¿Por qué necesitamos Chatbots?

  • Efectivo en costo y tiempo ~ Los humanos no pueden estar activos en el sitio las 24 horas del día, los 7 días de la semana, pero los chatbots sí pueden y el poder de respuesta de los chatbots es mucho más rápido que los humanos.
  • Costo de desarrollo económico ~ con el avance de la tecnología se desarrollan muchas herramientas que facilitan el desarrollo y la integración de chatbots con poca inversión.
  • Recursos humanos ~ Hoy en día, los chatbots también pueden hablar con tecnología de texto o voz, por lo que da la sensación de que un humano está hablando del otro lado.
  • Marca comercial ~ Los negocios están cambiando con la tecnología y el chatbot es uno de ellos. Chatbot también ayuda en publicidad, marca de productos y servicios de la organización y brinda actualizaciones diarias a los usuarios.

Tipos de chatbots

Existen principalmente 2 tipos de chatbots.

1) Chatbots basados ​​en reglas – Como sugiere el nombre, existen ciertas reglas sobre las que opera el chatbot. Como un modelo de aprendizaje automático, entrenamos a los chatbots sobre las intenciones del usuario y las respuestas relevantes, y en base a estas intenciones, el chatbot identifica la intención y la respuesta del nuevo usuario hacia él.

2) Chatbots de autoaprendizaje – Los bots de autoaprendizaje son muy eficientes porque son capaces de captar e identificar la intención del usuario por sí mismos. se construyen utilizando herramientas y técnicas avanzadas de aprendizaje automático, aprendizaje profundo y PNL. Los bots de autoaprendizaje se dividen a su vez en 2 subcategorías.

  • Chatbots basados ​​en recuperación: – Basado en recuperación es algo parecido a basado en reglas, donde se incrustan patrones de entrada y respuestas predefinidos.
  • Chatbots generativos: – Se basa en el mismo fenómeno que la traducción automática se basa en la creación de una red neuronal de secuencia 2 secuencias.

La mayor parte de la organización utiliza un chatbot de autoaprendizaje junto con la incorporación de algunas reglas como la versión híbrida de ambos métodos, lo que hace que el chatbot sea poderoso para manejar cada situación durante una conversación con un cliente.

Construye uno para ti usando Python

Ahora tenemos una inmensa comprensión de la teoría de los chatbots y su avance en el futuro. Ensuciemos nuestras manos construyendo un chatbot simple basado en reglas usando Python para nosotros.

Diseñaremos una GUI simple usando el módulo Python Tkinter con el cual crearemos un cuadro de texto y un botón para enviar la intención del usuario y, en la acción, crearemos una función en la que coincidiremos con la intención del usuario y le responderemos según su intención. Si no tiene instalado el módulo Tkinter, primero instálelo usando el comando pip.

pip install tkinter
from tkinter import *
root = Tk()
root.title("Chatbot")
def send():
    send = "You -> "+e.get()
    txt.insert(END, "n"+send)
    user = e.get().lower()
    if(user == "hello"):
        txt.insert(END, "n" + "Bot -> Hi")
    elif(user == "hi" or user == "hii" or user == "hiiii"):
        txt.insert(END, "n" + "Bot -> Hello")
    elif(e.get() == "how are you"):
        txt.insert(END, "n" + "Bot -> fine! and you")
    elif(user == "fine" or user == "i am good" or user == "i am doing good"):
        txt.insert(END, "n" + "Bot -> Great! how can I help you.")
    else:
        txt.insert(END, "n" + "Bot -> Sorry! I dind't got you")
    e.delete(0, END)
txt = Text(root)
txt.grid(row=0, column=0, columnspan=2)
e = Entry(root, width=100)
e.grid(row=1, column=0)
send = Button(root, text="Send", command=send).grid(row=1, column=1)
root.mainloop()

Explicación – Primero hemos creado una ventana en blanco, después de eso, creamos un campo de texto usando el método de entrada y un widget de botón que al activar las llamadas, la función envía y, a cambio, obtiene la respuesta del chatbot. Hemos utilizado una declaración de control If-else básica para construir un chatbot simple basado en reglas. Y puede interactuar con el chatbot ejecutando la aplicación desde la interfaz y puede ver el resultado como se muestra a continuación.

76583simple20chatbot-3621175

Implementación de Chatbot usando la biblioteca Python NLTK

NLTK son las siglas de Kit de herramientas de lenguaje natural utilizado para tratar con aplicaciones de PNL y el chatbot es uno de ellos. Ahora avanzaremos en nuestros chatbots basados ​​en reglas usando la biblioteca NLTK. Primero instale la biblioteca NLTK antes de trabajar con el comando pip.

pip instal nltk

Lo primero es importar la biblioteca y las clases que necesitamos usar.

import nltk
from nltk.chat.util import Chat, reflections
  • Chat – El chat es una clase que contiene lógica completa para procesar los datos de texto que recibe el chatbot y encontrar información útil a partir de ellos.
  • reflexiones – Otra importación que hemos hecho es reflexiones, que es un diccionario que contiene la entrada básica y las salidas correspondientes. También puede crear su propio diccionario con más respuestas que desee. si imprime reflejos será algo como esto.
reflections = {
  "i am"       : "you are",
  "i was"      : "you were",
  "i"          : "you",
  "i'm"        : "you are",
  "i'd"        : "you would",
  "i've"       : "you have",
  "i'll"       : "you will",
  "my"         : "your",
  "you are"    : "I am",
  "you were"   : "I was",
  "you've"     : "I have",
  "you'll"     : "I will",
  "your"       : "my",
  "yours"      : "mine",
  "you"        : "me",
  "me"         : "you"
}

comencemos a construir la lógica para el chatbot NLTK.

Después de importar las bibliotecas, primero tenemos que crear reglas. Las líneas de código que se muestran a continuación crean un conjunto simple de reglas. la primera línea describe la entrada del usuario que hemos tomado como entrada de cadena sin procesar y la siguiente línea es nuestra respuesta de chatbot. Puede modificar estos pares según las preguntas y respuestas que desee.

pairs = [
    [
        r"my name is (.*)",
        ["Hello %1, How are you today ?",]
    ],
    [
        r"hi|hey|hello",
        ["Hello", "Hey there",]
    ], 
    [
        r"what is your name ?",
        ["I am a bot created by DataPeaker. you can call me crazy!",]
    ],
    [
        r"how are you ?",
        ["I'm doing goodnHow about You ?",]
    ],
    [
        r"sorry (.*)",
        ["Its alright","Its OK, never mind",]
    ],
    [
        r"I am fine",
        ["Great to hear that, How can I help you?",]
    ],
    [
        r"i'm (.*) doing good",
        ["Nice to hear that","How can I help you?:)",]
    ],
    [
        r"(.*) age?",
        ["I'm a computer program dudenSeriously you are asking me this?",]
    ],
    [
        r"what (.*) want ?",
        ["Make me an offer I can't refuse",]
    ],
    [
        r"(.*) created ?",
        ["Raghav created me using Python's NLTK library ","top secret ;)",]
    ],
    [
        r"(.*) (location|city) ?",
        ['Indore, Madhya Pradesh',]
    ],
    [
        r"how is weather in (.*)?",
        ["Weather in %1 is awesome like always","Too hot man here in %1","Too cold man here in %1","Never even heard about %1"]
    ],
    [
        r"i work in (.*)?",
        ["%1 is an Amazing company, I have heard about it. But they are in huge loss these days.",]
    ],
    [
        r"(.*)raining in (.*)",
        ["No rain since last week here in %2","Damn its raining too much here in %2"]
    ],
    [
        r"how (.*) health(.*)",
        ["I'm a computer program, so I'm always healthy ",]
    ],
    [
        r"(.*) (sports|game) ?",
        ["I'm a very big fan of Football",]
    ],
    [
        r"who (.*) sportsperson ?",
        ["Messy","Ronaldo","Roony"]
    ],
    [
        r"who (.*) (moviestar|actor)?",
        ["Brad Pitt"]
    ],
    [
        r"i am looking for online guides and courses to learn data science, can you suggest?",
        ["Crazy_Tech has many great articles with each step explanation along with code, you can explore"]
    ],
    [
        r"quit",
        ["BBye take care. See you soon :) ","It was nice talking to you. See you soon :)"]
    ],
]

Después de crear pares de reglas, definiremos una función para iniciar el proceso de chat. La función es muy simple, primero saluda al usuario y pide ayuda. Y la conversación comienza desde aquí llamando a una clase de Chat y pasándole pares y reflexiones.

def chat():
    print("Hi! I am a chatbot created by DataPeaker for your service")
    chat = Chat(pairs, reflections)
    chat.converse()
#initiate the conversation
if __name__ == "__main__":
    chat()

Hemos creado un increíble chatbot basado en reglas con solo usar la biblioteca Python y NLTK. los nltk.chat funciona en varios patrones de expresiones regulares presentes en la intención del usuario y, correspondiente a ella, presenta la salida a un usuario. Ejecutemos la aplicación y charlemos con su chatbot creado.

43199nltk_chatbot-1602273

Notas finales

Los chatbots son la principal aplicación de procesamiento de lenguaje natural y hoy en día es fácil de crear e integrar con varios sitios web y sitios web de medios sociales. Hoy en día, la mayoría de los chatbots se crean utilizando herramientas como Dialogflow, RASA, etc. Esta fue una rápida introducción a los chatbots para presentar una comprensión de cómo las empresas se están transformando utilizando la ciencia de datos y la inteligencia artificial.

Gracias por seguir el artículo hasta el final. Si tiene alguna consulta, publíquela en la sección de comentarios a continuación. Si le gusta el artículo, lea también mis otros artículos a través de este enlace.

Sobre el Autor

Raghav Agrawal

Estoy cursando mi licenciatura en informática. Me gusta mucho la ciencia de datos y los macrodatos. Me encanta trabajar con datos y aprender nuevas tecnologías. Por favor, siéntete libre de conectarte conmigo en Linkedin.

Los medios que se muestran en este artículo no son propiedad de DataPeaker y se utilizan a discreción del autor.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.