Tensorflow por Brasileiros — Construindo seu próprio Chatbot (Parte1)
Salve galera, tudo bem com vocês ? Agora que vocês já conhecem o TensorFlow e Deep Learning através das minhas postagens anteriores, iremos nesse post de hoje desenvolver nosso próprio chatbot capaz de classificar a intenção e de responder algumas perguntas, e o melhor de tudo usando nosso querido Tensorflow.
Tensorflow + ChatBot
Certamente você já deve ter conversado com algum robô, especialmente aqueles de atendimento nos canais digitais. Nesse tutorial vou ensinar vocês a usar o recursos do Tensorflow para criar seu próprio bot para uma loja assim como é feito no Dialogflow, porém dessa vez vamos fazer tudo na mão e entender todo o processo, para isso teremos que executar os seguintes passos:
- Transformar as definições de intenção em um modelo Tensorflow;
- Desenvolver uma estrutura para o chatbot processar as respostas;
- Exibir o contexto básico pode ser incorporado ao nosso processador de respostas.
Para isso usaremos o tflearn, uma camada acima do tensorflow e, é claro, do Python.
Transformando as definições de intenção de conversação em um modelo de tensorflow
Para inciarmos uma boa estratégia para se fazer isso é utilizando um arquivo JSON com as seguintes informações:
Note que cada uma das intenções possui:
- tag: um nome único;
- patterns: sequência de frases ditas pelo usuário;
- responses: respostas possíveis para o chatbot.
Feito isso o próximo passo é importar nossas dependências:
Com nosso arquivo JSON devidamente carregado, podemos então começar a organiza-lo separando os documentos, respostas e classes.
Feito isso termos como resultado uma lista de documentos (frases), lista de palavras e classes possíveis.
24 documents
7 classes ['agradecimento', 'cardapio', 'despedida', 'horario', 'pagamentos', 'produto', 'saudacao']
51 unique stemmed words [':', 'a', 'abr', 'abraco', 'abrem', 'aceit', 'aceitam', 'ai', 'ajud', 'ajudou', 'alguem', 'at', 'bem', 'cardapio', 'cartao', 'com', 'credito', 'de', 'est', 'funcionamento', 'hora', 'horario', 'loj', 'mai', 'mand', 'mastercard', 'me', 'muito', 'o', 'obrgado', 'obrigado', 'oi', 'ol', 'os', 'pag', 'pel', 'pizz', 'pod', 'posso', 'produto', 'qua', 'qual', 'que', 'sab', 'seu', 'tchau', 'tem', 'tudo', 'vend', 'vendem', 'voc']
Note que nessa parte também removemos algumas duplicadas com a finalidade deixar a base limpa. Nosso próximo passo agora é transformar esses documentos em dados numéricos para o tensorflow.
Observando atentamente repare que transformamos os textos em duas listas (intenção, classe) que servirão de treinamento para nossa rede neural, com os seguintes parâmetros:
- entrada (input): será o vetor train_x;
- camadas ocultas: 2 com 8 nós ;
- saída (output): train_y;
- épocas: 1000 (aumente caso necessário)
Como saída você terá as informações sobre a execução do treinamento.
Finalizado o treinamento devemos salvar nosso modelo para a parte 2 desse tutorial onde faremos a predição da classe e das respostas do chatbot.
Para testar o modelo treinado iremos realizar uma pequena demonstração de predição que será trabalhada na parte 2 desse post.
Observe que a predição foi realizada corretamente:
Com isso enceramos nosso post de hoje, espero que vocês tenham gostado desse tutorial com uma serie de novos conhecimentos, o fonte completo para treinamento do seu chatbot você encontra no meu github.
Abraços e até a parte 2 desse post.
bye bye !