Quería comenzar a experimentar con la red neuronal y, como problema de juguete, quería entrenar a uno para chatear, es decir, implementar un bot de chat como cleverbot. No es tan inteligente de todos modos.
Busqué documentación y encontré muchos tutoriales sobre tareas generales, pero pocos sobre este tema específico. El que encontré acaba de exponer los resultados sin dar una idea de la implementación. Los que lo hicieron, lo hicieron bastante superficialmente (la página de documentación de tensorflow en seq2seq carece de imho).
Ahora, creo haber entendido el principio más o menos, pero no estoy seguro y ni siquiera estoy seguro de cómo comenzar. Por lo tanto, explicaré cómo abordaría el problema y me gustaría recibir comentarios sobre esta solución, que me diga dónde me equivoco y posiblemente tenga algún vínculo con explicaciones detalladas y conocimientos prácticos sobre el proceso.
El conjunto de datos que usaré para la tarea es el volcado de todo mi historial de chat de Facebook y WhatsApp. No sé qué tan grande será, pero posiblemente aún no lo suficientemente grande. El idioma de destino no es el inglés, por lo tanto, no sé dónde reunir rápidamente muestras de conversación significativas.
Voy a generar un vector de pensamiento de cada oración. Todavía no sé cómo; Encontré un buen ejemplo para word2vec en el sitio web deeplearning4j, pero ninguno para oraciones. Comprendí cómo se construyen los vectores de palabras y por qué, pero no pude encontrar una explicación exhaustiva para los vectores de oraciones.
Usando vectores de pensamiento como entrada y salida, voy a entrenar la red neuronal. No sé cuántas capas debería tener, y cuáles tienen que ser capas lstm.
Entonces debería haber otra red neuronal que sea capaz de transformar un vector de pensamiento en una secuencia de caracteres que componga una oración. Leí que debería usar relleno para compensar diferentes longitudes de oración, pero extraño cómo codificar caracteres (¿son suficientes los puntos de código?).