funnybot
1.0.0
これは、ジョークのコーパスで訓練された面白いボットを作成する試みです。プロジェクトの目標は、文字レベルのLSTMモデルから、実際に面白いサンプルを描画することです。
詳細な分析と結果については、ブログ投稿をご覧ください。
このプロジェクトは、TEDのアイデアでも報道されました:https://ideas.ted.com/can-you-teach-a-computer-to-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エポックのトレーニングセッションが開始され、チェックポイントはcv/checkpoint_1000.t7などの名前の1000回の反復ごとにsrc/cv/フォルダーに保存されます。
訓練されたチェックポイントから2000文字のデータをサンプリングするには(3000回の反復後など)、次のコマンドを実行します。
th sample.lua -checkpoint cv/checkpoint_3000.t7 -length 2000エラー、依存関係の欠落、または詳細の場合、Torch-RNNを参照してください。
utils/friends.pyからコンパイルされたデータには、手動で削除された多くの追加のヘッダーが含まれています。このタスクを自動化できれば素晴らしいでしょう。