Este es un intento de crear un bot divertido entrenado en un corpus de bromas. El objetivo del proyecto es dibujar muestras que son realmente divertidas, de un modelo LSTM a nivel de personaje.
Lea mi publicación de blog para obtener análisis y resultados detallados.
Este proyecto también obtuvo cobertura en TED Ideas: https://ideas.te.com/can-you-toach-a-computer-to-be-funny/
Chistes cortos : contiene 231,657 chistes y onelinistas cortos. Para el modelo de lenguaje, el archivo CSV del conjunto de datos se procesa y se escribe en un archivo de texto separado data/shortjokes.txt con utils/csv_to_text.py .
Amigos : como una tarea divertida, las transcripciones de todos los episodios de la serie de televisión amigos se compilan en un solo archivo de texto de 4.79mb ( /data/friends.txt ) usando el script utils/friends.py . La intención es generar texto divertido similar a los diálogos de la serie. El guión es ad-hoc a partir de ahora, por lo que las contribuciones son bienvenidas.
Navegue a /src/ carpeta y ejecute los siguientes comandos:
python scripts/preprocess.py --input_txt ../data/shortjokes.txt --output_h5 my_data.h5 --output_json my_data.json
th train.lua -input_h5 my_data.h5 -input_json my_data.json -model_type lstm -num_layers 3 -rnn_size 512 Esto comenzará la sesión de entrenamiento de 50 épocas en el conjunto de datos de chistes y los puntos de control se guardan en la carpeta src/cv/ cada 1000 iteraciones con nombres como cv/checkpoint_1000.t7 .
Para probar datos con 2000 caracteres del punto de control entrenado (por ejemplo, después de 3000 iteraciones), ejecute el siguiente comando:
th sample.lua -checkpoint cv/checkpoint_3000.t7 -length 2000En caso de errores, dependencias faltantes o más información, consulte Torch-RNN.
utils/friends.py contienen muchos encabezados adicionales, que se eliminaron manualmente. Sería genial si esta tarea pudiera ser automatizada.