Skip to content

Desarrollo de un BOT que utilice técnicas de NLP para analizar conversaciones en Slack y dialogar de forma autónoma

Notifications You must be signed in to change notification settings

pablomazo/MLH_bot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MLH_bot

Preprocesamiento:

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.

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.

Bibliografía:

About

Desarrollo de un BOT que utilice técnicas de NLP para analizar conversaciones en Slack y dialogar de forma autónoma

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 91.8%
  • Python 8.2%