Generar un único .csv de los .json que tenemos con las conversaciones de los canales:
python get_slack_msg.py
La información queda guardada en el fichero 'mensajes_slack.csv'. El siguiente paso es generar un .txt con todos los mensajes, así como los diccionarios de conversión de caracter a índice y viceversa. Para ello ejecutar:
python preprocesamiento.py
De este script solo hay que cambiar la variable path_to_csv y poner el path del
fichero 'mensajes_slack.csv'.
Esta ejecución genera tres ficheros: 'text_dataset.txt', 'char2int.pkl' y 'int2char.pkl',
el dataset y los diccionarios.
Con esto ya nos vamos al entrenamiento.
Para entrenar:
python train.py
Esto haría un entrenamiento con los valores que tiene por defecto. No es muy pesado, se puede hacer en CPU.
Para tener un poco más de control sobre el entrenamiento podéis usar:
--tp: Número de secuencias que se van a utilizar en el entrenamiento.--tl: Número de caracteres por secuencia.--mepoch: Número máximo de epochs de entrenamiento.--hl: Dimensión de la hidden layer.--nl: Número de redes LSTM.--cuda: Entrenar en GPU.
Durante el entrenamiento, cada 100 epochs genera una frase para ir viendo cómo va la cosa, así como
un fichero checkpoint.pth con los parámetros del modelo, así como los diccionarios para transformar
caracteres en índices y viceversa, y la estructura de la red.
Cuando acabe el entrenamiento generará un fichero antonIA.pth con la misma información que tenían
los checkpoints.
Una vez tenéis alguno de los ficheros checkpoint.pth o antonIA.pth podéis probar cómo va la cosa a
través de la función que hay en /bot/func4antonIA.py llamada answer. Ahí le pasáis el mensaje como
si fuese del chat y véis qué responde. Hay que utilizar antes del función load_antonIA que carga los
parámetros en la red. El único argumento de esta función es el path al fichero donde estén guardados los
parámetros del modelo.