funnybot
1.0.0
這是一種創建一個有趣的機器人,該機器人在笑話中訓練。該項目的目的是從字符級別的LSTM模型中繪製實際上很有趣的樣本。
閱讀我的博客文章以進行詳細分析和結果。
該項目還獲得了TED想法的報導:https://ideas.ted.com/can-you-teach-a-computer-to-be-funny/
簡短的笑話:它包含231,657個短笑話和小伙子。對於語言模型,將處理數據集的CSV文件並寫入帶有utils/csv_to_text.py的單獨的文本文件data/shortjokes.txt 。
朋友:作為一項有趣的任務,使用utils/friends.py腳本將電視系列朋友的所有情節的成績單編譯為4.79mb( /data/friends.txt )的單個文本文件。目的是生成與該系列中的對話類似的有趣文本。截至目前,該腳本是臨時的,因此歡迎貢獻。
導航到/src/文件夾並運行以下命令:
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這將在笑話數據集上開始的50個時期的培訓會話,然後將檢查點保存在src/cv/文件夾中,每1000次迭代使用cv/checkpoint_1000.t7等名稱。
要從受過訓練的檢查點中使用2000個字符的數據採樣(例如3000個迭代後),請運行以下命令:
th sample.lua -checkpoint cv/checkpoint_3000.t7 -length 2000如果有任何錯誤,則缺失依賴項或更多信息,請參閱Torch-RNN。
utils/friends.py收集的數據包含許多額外的標題,這些標頭已手動刪除。如果可以自動化此任務,那將是很棒的。