Eu queria começar a experimentar redes neurais e, como um problema de brinquedo, queria treinar um para conversar, ou seja, implementar um bot de bate-papo como o cleverbot. Não é tão inteligente assim.
Procurei alguma documentação e encontrei muitos tutoriais sobre tarefas gerais, mas poucos sobre esse tópico específico. O que encontrei apenas expôs os resultados sem fornecer informações sobre a implementação. Os que fizeram, fizeram isso muito superficial (a página de documentação do tensorflow no seq2seq está faltando imho).
Agora, sinto que posso ter entendido o princípio mais ou menos, mas não tenho certeza e nem mesmo como começar. Assim, explicarei como resolveria o problema e gostaria de receber um feedback sobre essa solução, informando onde estou enganado e possivelmente tenho algum link para explicações detalhadas e conhecimentos práticos sobre o processo.
O conjunto de dados que usarei para a tarefa é o despejo de todo o meu histórico de bate-papo do facebook e whatsapp. Não sei quão grande será, mas possivelmente ainda não o suficiente. O idioma de destino não é o inglês, portanto, não sei onde reunir rapidamente amostras significativas de conversas.
Vou gerar um vetor de pensamento de cada frase. Ainda não sei como na verdade; Encontrei um bom exemplo para o word2vec no site deeplearning4j, mas nenhum para frases. Entendi como os vetores de palavras são construídos e por quê, mas não consegui encontrar uma explicação exaustiva para os vetores de frases.
Usando vetores de pensamento como entrada e saída, vou treinar a rede neural. Não sei quantas camadas ela deve ter e quais devem ser camadas lstm.
Deve haver outra rede neural capaz de transformar um vetor de pensamento em uma sequência de caracteres que compõem uma frase. Eu li que deveria usar preenchimento para compensar comprimentos de frases diferentes, mas sinto falta de codificar caracteres (os pontos de código são suficientes?).
De acordo com o conceito do seu projeto, para iniciantes, solicito que você aplique algumas técnicas de desenvolvimento orientadas a testes. Primeiro, tente criar um banco de dados de tamanho menor que você possa usar para lidar com uma pequena quantidade de conjunto de dados, o que pode proporcionar a melhoria desejada.
Dito isso, use esse banco de dados para criar uma árvore organizada em linha com seus dados, como nós. Portanto, se um bot começar a gerar algum feedback, a partir do banco de dados, marcado com pontos de dados do conjunto de dados especificado. para o próximo nó na árvore.
nota : Para iniciantes, não use seu grande histórico de bate-papos como um todo, porque esta é uma tarefa simples.
fonte