Dies ist ein Versuch, einen lustigen Bot zu kreieren, der auf einem Korpus von Witzen trainiert wurde. Ziel des Projekts ist es, Proben zu zeichnen, die eigentlich lustig sind, aus einem LSTM -Modell auf Charakterebene.
Lesen Sie meinen Blog -Beitrag für detaillierte Analysen und Ergebnisse.
Dieses Projekt erhielt auch die Berichterstattung in TED-Ideen: https://ideas.ted.ted.com/can-you-teach-a-computer-t-be-funny/
Kurze Witze : Es enthält 231.657 kurze Witze und Oneliner. Für das Sprachmodell wird die CSV -Datei des Datensatzes verarbeitet und in eine separate Textdatendaten data/shortjokes.txt mit utils/csv_to_text.py geschrieben.
Freunde : Als unterhaltsame Aufgabe werden Transkripte aller Episoden von Freunden von TV -Serien mit einer einzigen Textdatei von 4.79MB ( /data/friends.txt ) mit utils/friends.py -Skript zusammengestellt. Die Absicht ist es, lustige Text zu generieren, ähnlich den Dialogen der Serie. Das Skript ist ab sofort Ad-hoc, daher sind Beiträge willkommen.
Navigieren Sie zu /src/ Ordner und führen Sie die folgenden Befehle aus:
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 Dadurch wird die Schulungssitzung von 50 Epochen auf Witzen -Datensatz gestartet, und Kontrollpunkte werden alle 1000 Iterationen in src/cv/ Ordner mit Namen wie cv/checkpoint_1000.t7 gespeichert.
Durch die Stichprobe mit 2000 Zeichen aus dem trainierten Checkpoint (z. B. nach 3000 Iterationen) führen Sie den folgenden Befehl aus:
th sample.lua -checkpoint cv/checkpoint_3000.t7 -length 2000Bei Fehlern, fehlenden Abhängigkeiten oder mehr Informationen finden Sie in Torch-RNN.
utils/friends.py zusammengestellt wurden. Py enthält viele zusätzliche Header, die manuell entfernt wurden. Es wäre großartig, wenn diese Aufgabe automatisiert werden könnte.