นี่เป็นความพยายามที่จะสร้างบอทตลกที่ได้รับการฝึกฝนในคลังข้อมูลเรื่องตลก เป้าหมายของโครงการคือการวาดตัวอย่างที่ตลกจริง ๆ จากรุ่น LSTM ระดับตัวละคร
อ่านโพสต์บล็อกของฉันสำหรับการวิเคราะห์และผลลัพธ์โดยละเอียด
โครงการนี้ยังได้รับความคุ้มครองในแนวคิด TED: https://ideas.ted.com/can-you-teach-a-computer-to-be-funny/
เรื่องตลกสั้น ๆ : มีเรื่องตลกสั้น ๆ 231,657 เรื่องสั้น ๆ และ OneLiners สำหรับโมเดลภาษาไฟล์ CSV ของชุดข้อมูลจะถูกประมวลผลและเขียนลงใน data/shortjokes.txt ด้วย utils/csv_to_text.py
เพื่อน : เป็นงานที่สนุกการถอดเสียงของทุกตอนของซีรีย์ทีวีเพื่อนจะถูกรวบรวมไว้ในไฟล์ข้อความเดียวที่ 4.79MB ( /data/friends.txt ) โดยใช้สคริปต์ utils/friends.py ความตั้งใจคือการสร้างข้อความตลกคล้ายกับบทสนทนาในซีรีส์ สคริปต์เป็น ad-hoc ณ ตอนนี้ยินดีต้อนรับการมีส่วนร่วม
นำทางไปยัง /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 EPOCHS ในชุดข้อมูลเรื่องตลกและจุดตรวจจะถูกบันทึกไว้ใน src/cv/ Folder ทุก ๆ 1,000 การวนซ้ำที่มีชื่อเช่น cv/checkpoint_1000.t7
ในการสุ่มตัวอย่างข้อมูลที่มีอักขระ 2,000 ตัวจากจุดตรวจที่ผ่านการฝึกอบรม (พูดหลังจากการวนซ้ำ 3000) ให้เรียกใช้คำสั่งต่อไปนี้:
th sample.lua -checkpoint cv/checkpoint_3000.t7 -length 2000ในกรณีที่มีข้อผิดพลาดใด ๆ การพึ่งพาที่ขาดหายไปหรือข้อมูลเพิ่มเติมโปรดดูที่ Torch-RNN
utils/friends.py มีส่วนหัวพิเศษมากมายซึ่งถูกลบออกด้วยตนเอง มันจะดีถ้างานนี้อาจเป็นไปโดยอัตโนมัติ