Chatbot usando a biblioteca NLTK | Construir Chatbot em Python usando NLTK

Conteúdo

Essa é a beleza de um chatbot. Um chatbot é um software baseado em IA aplicado à PNL que lida com usuários para lidar com suas consultas específicas sem interferência humana..

39933chatbots20recurso20img-8425875

Tabela de conteúdo

  • Breve sobre chatbots
  • Qual é a necessidade de chatbots?
  • Tipos de chatbot
    • Chatbots baseados em regras
    • Chatbots de autoaprendizagem
  • Chatbot usando Python
  • Chatbot usando Python e NLTK
  • Notas finais

Breve introdução sobre o Chatbot

Um chatbot é um aplicativo inteligente que reduz o trabalho humano e ajuda uma organização a resolver consultas básicas de clientes.. Hoje em dia, a maioria das empresas, empresas de diversos setores, eles usam o chatbot de uma maneira diferente para responder aos clientes o mais rápido possível. Os chatbots também ajudam a aumentar o tráfego do site, qual é a principal razão comercial para usar chatbots.

O chatbot solicita informações básicas dos clientes, como o nome, endereço de e-mail e consulta. Se uma consulta é simples, como falha do produto, erro de reserva, preciso de informações, então sem qualquer conexão humana pode resolvê-lo automaticamente e se algum problema for alto, passe os detalhes para a cabeça humana e ajude o cliente a se conectar facilmente com o gerente da organização. E a maioria dos clientes gosta de negociar e conversar com um chatbot.

Por que precisamos de Chatbots?

  • Eficaz em custo e tempo ~ Humanos não podem estar ativos no site 24 horas do dia, a 7 dias da semana, mas os chatbots podem e o poder de resposta dos chatbots é muito mais rápido que os humanos.
  • Custo do desenvolvimento econômico ~ Com o avanço da tecnologia, são desenvolvidas muitas ferramentas que facilitam o desenvolvimento e integração de chatbots com pouco investimento..
  • Recursos Humanos ~ Hoje em dia, chatbots também podem falar usando tecnologia de texto ou voz, então dá a sensação de que um humano está falando do outro lado.
  • Marca registrada ~ As empresas estão mudando com a tecnologia e o chatbot é uma delas. O chatbot também ajuda na publicidade, marca de produtos e serviços da organização e fornece atualizações diárias aos usuários.

Tipos de chatbot

Existem principalmente 2 tipos de chatbot.

1) Chatbots baseados em regras – Como o nome sugere, existem certas regras sobre as quais o chatbot opera. Como um modelo de aprendizado de máquina, treinamos chatbots nas intenções do usuário e respostas relevantes, e com base nessas intenções, o chatbot identifica a intenção do novo usuário e a resposta a ela.

2) Chatbots de autoaprendizagem – Os bots de autoaprendizagem são muito eficientes porque são capazes de capturar e identificar a intenção do usuário por conta própria.. são construídos usando ferramentas e técnicas avançadas de aprendizado de máquina, aprendizado profundo e PNL. Os bots de autoaprendizagem são divididos em 2 subcategorias.

  • Chatbots baseados em recuperação: – Baseado em busca é semelhante ao baseado em regras, onde os padrões de entrada e resposta predefinidos são incorporados.
  • Geradores de chatbots: – Baseia-se no mesmo fenômeno que a tradução automática se baseia na criação de um neuronal vermelho Seqüenciar 2 sequências.

A maior parte da organização usa um chatbot de autoaprendizagem juntamente com a incorporação de algumas regras como a versão híbrida de ambos os métodos, o que torna o chatbot poderoso para lidar com todas as situações durante uma conversa com um cliente.

Construa um para você usando Python

Agora temos uma imensa compreensão da teoria dos chatbots e seu avanço no futuro. Vamos sujar as mãos construindo um chatbot simples baseado em regras usando Python para nós mesmos.

Vamos projetar uma GUI simples usando o módulo Python Tkinter com o qual criaremos um quadro de texto e um botão para enviar a intenção do usuário e, sobre a ação, criaremos uma função onde corresponderemos à intenção do usuário e responderemos a eles com base em sua intenção. Se você não tiver o módulo Tkinter instalado, primeiro instale-o usando o comando pip.

pip instalar tkinter
da importação do tkinter *
raiz = Tk()
root.title("Chatbot")
def enviar():
    enviar = "Vocês -> "+e. obter()
    txt.inserir(FIM, "n"+mandar)
    usuário = e.get().diminuir()
    E se(usuário == "Olá"):
        txt.inserir(FIM, "n" + "Robô -> Oi")
    elif(usuário == "Oi" ou usuário == "esta" ou usuário == "oiiii"):
        txt.inserir(FIM, "n" + "Robô -> Olá")
    elif(e. obter() == "como você está"):
        txt.inserir(FIM, "n" + "Robô -> multar! e você")
    elif(usuário == "multar" ou usuário == "eu estou bem" ou usuário == "eu estou indo bem"):
        txt.inserir(FIM, "n" + "Robô -> Excelente! Como posso ajudá-lo.")
    outro:
        txt.inserir(FIM, "n" + "Robô -> Desculpe! eu não te peguei")
    e.excluir(0, FIM)
txt = Texto(raiz)
txt.grid(linha=0, coluna=0, columnspan=2)
e = entrada(raiz, largura = 100)
e.grade(linha=1, coluna=0)
enviar = botão(raiz, text ="Mandar", comando=enviar).rede(linha=1, coluna=1)
root.mainloop()

Explicação – Primeiro criamos uma janela em branco, depois disso, criamos um campo de texto usando o método de entrada e um widget de botão que nas chamadas de gatilho, função enviar e, Em troca, obter a resposta do chatbot. Usamos uma instrução de controle If-else básica para construir um chatbot simples baseado em regras. E você pode interagir com o chatbot executando o aplicativo no frontend e pode ver o resultado abaixo.

76583simple20chatbot-3621175

Implementação de chatbot usando a biblioteca Python NLTK

NLTK significa Natural Language Toolkit usado para lidar com aplicativos NLP e o chatbot é um deles. Agora seguiremos em frente com nossos chatbots baseados em regras usando a biblioteca NLTK. primeiro instalar a biblioteca nltk antes de trabalhar com o comando pip.

pip instalar nltk

A primeira coisa é importar a biblioteca e as aulas que precisamos usar.

import nltk
from nltk.chat.util import Chat, Reflexões
  • Bate-papo – O bate-papo é uma classe que contém lógica completa para processar os dados de texto que o chatbot recebe e encontrar informações úteis a partir dele.
  • Reflexões – Outra importação que fizemos são reflexões, que é um dicionário que contém a entrada básica e saídas correspondentes. Você também pode criar seu próprio dicionário com mais respostas do que você quer. se você imprimir reflexões será algo assim.
reflexões = {
  "Eu sou"       : "é você",
  "Eu estava"      : "você estava",
  "eu"          : "você",
  "Eu sou"        : "é você",
  "Eu tinha"        : "você poderia",
  "Eu tenho"       : "você tem",
  "Eu vou"       : "você irá",
  "meu"         : "teu",
  "é você"    : "Eu sou",
  "você estava"   : "Eu estava",
  "você tem"     : "eu tenho",
  "você vai"     : "Eu irei",
  "teu"       : "meu",
  "Sua"      : "minha",
  "você"        : "mim",
  "mim"         : "você"
}

vamos começar a construir a lógica para o chatbot NLTK.

Após importar as bibliotecas, primeiro temos que criar regras. As linhas de código abaixo criam um conjunto simples de regras. a primeira linha descreve a entrada do usuário que tomamos como entrada de string bruta e a próxima linha é nossa resposta do chatbot. Você pode modificar esses pares de acordo com as perguntas e respostas que deseja.

pares = [
    [
        r"Meu nome é (.*)",
        ["Olá %1, Como você está hoje ?",]
    ],
    [
        r"Oi|Ei|Olá",
        ["Olá", "ei",]
    ], 
    [
        r"Qual o seu nome ?",
        ["Eu sou um bot criado por DataPeaker. você pode me chamar de louco!",]
    ],
    [
        r"como você está ?",
        ["Estou indo bem, e quanto a você ?",]
    ],
    [
        r"Desculpe (.*)",
        ["Está tudo bem","Tudo bem, deixa pra lá",]
    ],
    [
        r"eu estou bem",
        ["Ótimo ouvir isso, Como posso ajudá-lo?",]
    ],
    [
        r"Eu sou (.*) fazendo bem",
        ["Legal ouvir isso","Como posso ajudá-lo?:)",]
    ],
    [
        r"(.*) era?",
        ["Eu sou um programa de computador cara, sério, você está me perguntando isso?",]
    ],
    [
        r"que (.*) quer ?",
        ["Faça-me uma oferta que não posso recusar",]
    ],
    [
        r"(.*) criado ?",
        ["Raghav me criou usando a biblioteca NLTK do Python ","ultra secreto ;)",]
    ],
    [
        r"(.*) (localização|cidade) ?",
        ['Indore, Madhya Pradesh',]
    ],
    [
        r"como está o clima (.*)?",
        ["Tempo em %1 é incrível como sempre","homem muito quente aqui em %1","Homem muito frio aqui em %1","Nunca nem ouviu falar %1"]
    ],
    [
        r"eu trabalho em (.*)?",
        ["%1 é uma empresa incrível, eu ouvi sobre isso. Mas eles estão em grande perda nos dias de hoje.",]
    ],
    [
        r"(.*)chovendo em (.*)",
        ["Sem chuva desde a semana passada aqui em %2","Porra, está chovendo muito aqui em %2"]
    ],
    [
        r"Como as (.*) saúde(.*)",
        ["Eu sou um programa de computador, então estou sempre saudável ",]
    ],
    [
        r"(.*) (Esportes|jogos) ?",
        ["sou muito fã de futebol",]
    ],
    [
        r"Who (.*) desportista ?",
        ["Bagunçado","Ronaldo","Roony"]
    ],
    [
        r"Who (.*) (estrela de cinema|ator)?",
        ["Brad Pitt"]
    ],
    [
        r"estou procurando guias e cursos on-line para aprender ciência de dados, você pode sugerir?",
        ["Crazy_Tech tem muitos artigos excelentes com cada explicação de passo junto com o código, você pode explorar"]
    ],
    [
        r"Sair",
        ["Bjs se cuide. Vejo você em breve :) ","Foi bom falar com você.. Vejo você em breve :)"]
    ],
]

Depois de criar pares de regras, vamos definir uma função para iniciar o processo de bate-papo. A função é muito simples, primeiro cumprimentar o usuário e pedir ajuda. E a conversa começa a partir daqui, chamando uma aula de Bate-Papo e passando pares e reflexões..

def chat():
    imprimir("Oi! Eu sou um chatbot criado pela DataPeaker para o seu serviço")
    chat = Chat(Pares, Reflexões)
    chat.converse()
#initiate the conversation
if __name__ == "__a Principal__":
    bate-papo()

Criamos um incrível chatbot baseado em regras apenas usando a biblioteca Python e nLTK. a nltk.chat funciona em vários padrões de expressões regulares presentes na intenção do usuário e, correspondente a ele, apresenta a saída para um usuário. Vamos executar o aplicativo e conversar com o seu chatbot criado.

43199nltk_chatbot-1602273

Notas finais

Os chatbots são o principal aplicativo de processamento de linguagem natural e hoje é fácil de criar e integrar com vários sites e sites de mídia social.. Hoje em dia, a maioria dos chatbots são criados usando ferramentas como o Dialogflow, SABOR, etc. Esta foi uma introdução rápida aos chatbots para apresentar uma compreensão de como as empresas estão se transformando usando ciência de dados e inteligência artificial..

Obrigado por acompanhar o artigo até o final.. Se você tiver alguma dúvida, poste na seção de comentários abaixo. Se você gostou do artigo, leia também meus outros artigos através deste link.

Sobre o autor

Raghav Agrawal

Estou buscando meu diploma em ciência da computação. Eu realmente gosto de ciência de dados e big data. Adoro trabalhar com dados e aprender novas tecnologias. Por favor, sinta-se à vontade para se conectar comigo no Linkedin.

A mídia mostrada neste artigo não é propriedade da DataPeaker e é usada a critério do autor.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.