هذه محاولة لإنشاء روبوت مضحك مدرب على مجموعة من النكات. الهدف من المشروع هو رسم عينات مضحكة بالفعل ، من نموذج LSTM على مستوى الشخصية.
اقرأ منشور مدونتي للتحليل والنتائج التفصيلية.
حصل هذا المشروع أيضًا على تغطية في TED Ideas: https://ideas.ted.com/can-you-teach-a-computer-to-be-funny/
النكات القصيرة : يحتوي على 231،657 النكات القصيرة والمحترفين. بالنسبة لنموذج اللغة ، تتم معالجة ملف CSV لمجموعة البيانات وكتابته إلى data/shortjokes.txt مع utils/csv_to_text.py .
الأصدقاء : كمهمة ممتعة ، يتم تجميع النصوص لجميع حلقات أصدقاء المسلسلات التلفزيونية في ملف نصي واحد من 4.79 ميجابايت ( /data/friends.txt ) باستخدام نص utils/friends.py . القصد من ذلك هو إنشاء نص مضحك مماثل للحوارات في السلسلة. البرنامج النصي مخصص حتى الآن ، لذلك نرحب بالمساهمات.
انتقل إلى /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/ Folder كل 1000 تكرار بأسماء مثل cv/checkpoint_1000.t7 .
لتجربة البيانات التي تحتوي على 2000 حرفًا من نقطة التفتيش المدربة (على سبيل المثال بعد 3000 تكرار) ، قم بتشغيل الأمر التالي:
th sample.lua -checkpoint cv/checkpoint_3000.t7 -length 2000في حالة وجود أي أخطاء أو تبعيات مفقودة أو مزيد من المعلومات ، راجع Torch-Rnn.
utils/friends.py تحتوي على العديد من الرؤوس الإضافية ، والتي تمت إزالتها يدويًا. سيكون من الرائع أن تكون هذه المهمة آلية.