Aula 34 – TensorFlow – Keras – Redes Neurais – RNN Chatbot
Aula 34 – TensorFlow – Keras – Redes Neurais – RNN Chatbot
Voltar para página principal do blog
Todas as aulas desse curso
Aula 33 Aula 35 (Ainda não disponível)
Redes Sociais:
Site das bibliotecas
Tensorflow
Keras
Cursos Gratuitos
Digital Innovation
Quer aprender python3 de graça e com certificado? Acesse então:
workover
Para aprender Python do zero, além do curso aqui do código fluente, eu indico também esse curso do Python Academy.
Meus link de afiliados:
Hostinger
Digital Ocean
One.com
Canais do Youtube
Toti
Backing Track / Play-Along
Código Fluente
Putz!
Vocal Techniques and Exercises
Fiquem a vontade para me adicionar ao linkedin.
PIX para doações
Notebook da aula
Base de dados: human_text.txt e o robot_text.txt
Aula 34 – TensorFlow – Keras – Redes Neurais – RNN Chatbot
Os chatbots traduzem a linguagem humana em informações digitais usando técnicas de aprendizado de máquina e processamento de linguagem natural (NLP).
Existem várias maneiras de desenvolver um chatbot, os dois métodos mais comuns são: generativo e baseado em recuperação de intenções.
Como funcionam os chatbots de IA/ML?
Os chatbots alimentados por inteligência artificial geralmente usam três métodos de classificação.
Os chatbots podem aplicar todos esses métodos em diferentes situações.
1. Correspondências de padrões:
Os chatbots usam a correspondência de padrões para classificar o texto e produzir uma resposta adequada para os clientes.
Os chatbots de correspondência de padrões usam uma base de conhecimento que contém padrões e modelos de fala específicos.
Quando o chatbot recebe uma entrada que corresponde a um padrão existente, ele envia a mensagem armazenada no modelo como resposta.
O padrão pode ser uma frase como “Que horas são?” ou um padrão “A hora é*”, onde o ‘*’ é uma expressão regular.
Um padrão único deve estar disponível no banco de dados para cada tipo de pergunta.
2. Natural Language Understanding (NLU)
Natural Language Understanding (NLU) é um subconjunto de IA que permite a interação humano-computador.
O NLU aproveita uma hierarquia de modelos de classificação para analisar entrada de texto ou fala:
Classificador de domínio — classifica a entrada em um grupo predeterminado de domínios de conversação.
Este classificador é usado apenas para conversas sobre vários tópicos que exigem vocabulário especializado.
Por exemplo, assistentes virtuais como Siri, Alexa… usam classificadores de domínio para responder a perguntas sobre esportes, clima, música ou navegação.
Classificador de intenção — determina o que o usuário está tentando alcançar atribuindo cada entrada a uma das intenções especificadas em seu algoritmo de NLP.
Por exemplo, uma intenção pode ser “encontrar horário de funcionamento”, “encontrar um produto”, “encontrar a loja mais próxima”.
Reconhecedor de entidade — extrai as frases e palavras essenciais para cumprir a intenção do usuário.
Por exemplo, se o usuário estiver tentando reservar uma mesa em um restaurante, a intenção incluirá data, hora e número de pessoas.
Classificadores de função — executa uma rotulagem de entidades com base no contexto.
Por exemplo, você pode classificar ainda mais o tempo rotulando-o como “aberto” ou “fechado”.
3. Processamento de linguagem natural
A Natural Language Processing ou NLP refere-se à síntese e análise de linguagens humanas.
Os algoritmos de NLP usam uma combinação de análises estatísticas, preditivas, mineração de dados e técnicas de modelagem de dados para gerar informações de forma proativa.
A NLP permite que o chatbot aprenda e imite os padrões e estilos da conversa humana.
Dá a sensação de que você está falando com um humano, não com um robô.
Chatbots generativos versus baseados em recuperação de intenções
Decidir sobre a melhor técnica para processar entradas de diálogo e gerar respostas é uma das primeiras decisões que você precisa tomar.
A maioria dos sistemas atuais usa métodos baseados em recuperação, enquanto os métodos generativos ainda estão em pesquisa.
Baseado em recuperação
Os chatbots baseados em recuperação funcionam com o princípio de gráficos ou fluxos direcionados.
O chatbot é treinado para fornecer a melhor resposta possível a partir de um banco de dados de respostas predefinidas.
As respostas são baseadas em informações existentes.
Os chatbots baseados em recuperação usam técnicas como correspondência de palavras-chave, aprendizado de máquina ou aprendizado profundo para identificar a resposta mais apropriada.
Independentemente da técnica, esses chatbots fornecem apenas respostas predefinidas e não geram novas saídas.
Um exemplo de chatbot baseado em recuperação é o Mitsuku.
Ele contém mais de 300.000 padrões de resposta predefinidos e uma base de conhecimento de mais de 3.000 objetos.
Este chatbot pode construir músicas e poemas com base em sua base de conhecimento.
Gerativo
Os sistemas baseados em recuperação são limitados a respostas predefinidas.
Os chatbots que usam métodos generativos podem gerar novos diálogos com base em grandes quantidades de dados de treinamento de conversação.
Os chatbots generativos usam uma combinação de aprendizado supervisionado, aprendizado não supervisionado, aprendizado por reforço e aprendizado adversário para treinamento em várias etapas.
A aprendizagem supervisionada estrutura uma conversação como um problema de sequência a sequência.
O aprendizado de sequência a sequência mapeia as entradas do usuário para uma resposta gerada por computador.
No entanto, esse tipo de aprendizado tende a priorizar respostas de alta probabilidade como “eu sei”.
Os sistemas de aprendizado supervisionado também têm problemas para incluir nomes próprios em sua fala, pois aparecem menos no diálogo em comparação com outras palavras.
Como resultado, os chatbots de aprendizado supervisionado parecem repetitivos e não podem promover uma conversa humana estável.
Para resolver esse problema, os desenvolvedores aproveitam o aprendizado por reforço para ensinar aos chatbots como otimizar os diálogos para obter alguma recompensa cumulativa.
Conclusão
Os chatbots de IA estão se tornando cada vez mais populares na vida cotidiana.
A maioria dos chatbots em assistentes digitais estão usando métodos baseados em recuperação.
Se você preferir usar uma abordagem mais inovadora, como aprendizado generativo, sua equipe de engenharia será limitada pelos recursos de pesquisa, pois essas são direções menos comprovadas.
Decidir sobre uma abordagem técnica é apenas o primeiro passo para construir um chatbot de sucesso.
Muitos chatbots com algoritmos avançados ainda apresentam falhas na experiência do usuário.
Projeto Prático – Chatbot generativo – seq2seq
Usando o modelo seq2seq
Um chatbot generativo, gera uma resposta em vez de selecionar uma entre as existentes em um conjunto de respostas prontas.
É um software que fornece uma experiência real de conversação.
O bot que iremos construir, vai gerar uma resposta com base no corpus de treinamento.
Vamos usar o modelo codificador-decodificador (seq2seq) para esta abordagem.