Ini adalah upaya untuk membuat bot lucu yang dilatih pada kumpulan lelucon. Tujuan dari proyek ini adalah untuk menggambar sampel yang sebenarnya lucu, dari model LSTM tingkat karakter.
Baca posting blog saya untuk analisis dan hasil terperinci.
Proyek ini juga mendapat liputan di TED Ideas: https://ideas.ted.com/can-you-tach-a-computer-to-te-funny/
Lelucon pendek : berisi 231.657 lelucon pendek dan oneliner. Untuk model bahasa, file CSV dari dataset diproses dan ditulis ke data/shortjokes.txt dengan utils/csv_to_text.py .
Teman : Sebagai tugas yang menyenangkan, transkrip dari semua episode serial TV teman dikompilasi menjadi satu file teks 4.79MB ( /data/friends.txt ) menggunakan skrip utils/friends.py . Maksudnya adalah untuk menghasilkan teks lucu yang mirip dengan dialog dalam seri. Scriptnya ad-hoc sampai sekarang, jadi kontribusi dipersilakan.
Arahkan ke /src/ folder dan jalankan perintah berikut:
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 Ini akan memulai sesi pelatihan 50 zaman pada dataset lelucon dan pos pemeriksaan disimpan dalam src/cv/ folder setiap 1000 iterasi dengan nama seperti cv/checkpoint_1000.t7 .
Untuk mencicipi data dengan 2000 karakter dari pos pemeriksaan terlatih (katakanlah setelah 3000 iterasi), jalankan perintah berikut:
th sample.lua -checkpoint cv/checkpoint_3000.t7 -length 2000Dalam hal kesalahan apa pun, dependensi yang hilang atau info lebih lanjut, lihat Torch-RNN.
utils/friends.py berisi banyak header tambahan, yang secara manual dihapus. Akan lebih bagus jika tugas ini dapat diotomatisasi.