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收集的数据包含许多额外的标题,这些标头已手动删除。如果可以自动化此任务,那将是很棒的。