लेखक:
(1) प्रेरक गांधी, कंप्यूटर विज्ञान और इंजीनियरिंग विभाग, भारतीय प्रौद्योगिकी संस्थान बॉम्बे, मुंबई, [email protected], और इन लेखकों ने इस कार्य में समान रूप से योगदान दिया;
(2) विशाल प्रमाणिक, कंप्यूटर विज्ञान और इंजीनियरिंग विभाग, भारतीय प्रौद्योगिकी संस्थान बॉम्बे, मुंबई, vishalpramanik,[email protected], और इन लेखकों ने इस कार्य में समान रूप से योगदान दिया;
(3) पुष्पक भट्टाचार्य, कंप्यूटर विज्ञान और इंजीनियरिंग विभाग, भारतीय प्रौद्योगिकी संस्थान बॉम्बे, मुंबई।
मूवी प्लॉट जनरेशन के लिए, हमने विकिपीडिया से प्लॉट लिए हैं। इस कार्य के लिए संकेत IMDb से लिए गए हैं। IMDb में, यह संकेत दो प्रकार का हो सकता है। पहला मूवी का संक्षिप्त विवरण (15-40 शब्द) है, जबकि दूसरा एक लंबी कहानी है, जो 30-200 शब्दों से भिन्न होती है और इसमें मूवी के विभिन्न पात्रों और घटनाओं के बारे में बहुत अधिक विवरण शामिल हैं। हमने IMDb से प्रत्येक फिल्म की शैलियों को भी एकत्र किया है। फिर हम 4-अधिनियम संरचना का उपयोग करके प्लॉट को विभाजित करते हैं। दृश्य निर्माण के लिए, हम IMSDb से स्क्रिप्ट लेते हैं और उन्हें एक दृश्य के प्रमुख तत्वों के साथ एनोटेट करते हैं।
हमने बॉलीवुड और हॉलीवुड दोनों तरह के प्लॉट्स से युक्त 1000 प्लॉट्स का एक डेटासेट बनाया है, जिसे पायथन में विकिपीडिया मॉड्यूल का उपयोग करके विकिपीडिया से निकाला गया है। एकत्र किए गए प्लॉट औसतन लगभग 700 शब्द लंबे हैं।
हम परिशिष्ट A.5 में वर्णित 4-अधिनियम संरचना का उपयोग करके उन्हें मैन्युअल रूप से 4 भागों में विभाजित करके प्लॉट्स को एनोटेट करते हैं। हम प्रत्येक अधिनियम के अंत में एक एकल टैग लगाते हैं: 〈एक〉 (अधिनियम 1), 〈दो-ए〉 (अधिनियम 2 भाग ए), 〈दो-बी〉 (अधिनियम 2 भाग बी) और 〈तीन〉 (अधिनियम 3) सीमांकक के रूप में। प्लॉट एनोटेशन के लिए एक उदाहरण परिशिष्ट (चित्र 6) में दिया गया है।
मॉडल द्वारा उत्पन्न प्लॉट पर कुछ नियंत्रण लाने के लिए, हमने स्टोरीलाइन के साथ-साथ डेटासेट में फिल्मों की शैलियों को भी शामिल किया है। हम स्टोरीलाइन की शुरुआत में शैलियों को जोड़ते हैं। चित्र 2 डेटासेट में शैलियों के वितरण को दर्शाता है।
मूवी की स्क्रिप्ट बहुत लंबी होती है। 2 घंटे की मूवी में लगभग 30,000 शब्द होते हैं। क्रिएटिव टेक्स्ट जनरेशन के लिए इस्तेमाल किए जाने वाले भाषा मॉडल, जैसे GPT-2 और GPT-3, में क्रमशः 1024 और 2048 टोकन सीमाएँ हैं, जिससे एक बार में पूरी स्क्रिप्ट को संभालना असंभव हो जाता है। इसलिए, हमने स्क्रिप्ट को दृश्यों में विभाजित किया और मैन्युअल रूप से उनके संक्षिप्त विवरण बनाए। यह किसी भी पिछले दृश्य पर निर्भर रहने के बजाय दृश्यों को स्वतंत्र रूप से प्रशिक्षित करने की अनुमति देता है।
मूवी स्क्रिप्ट में कई तत्व शामिल होते हैं जिनका वर्णन परिशिष्ट A.4 में किया गया है। अलग-अलग तत्वों के कारण मॉडल को प्रत्येक तत्व को अलग-अलग पहचानना सीखने में कठिनाई होती है। इस बाधा को दूर करने के लिए, हम पूरी स्क्रिप्ट में चार प्रमुख तत्वों को टैग करते हैं - स्लगलाइन, एक्शन लाइन, संवाद और चरित्र नाम।
हम हर स्क्रिप्ट में मौजूद चार प्रमुख तत्वों को बनाए रखते हैं - स्लगलाइन, एक्शन लाइन, किरदार का नाम और संवाद - और पेज नंबर, ट्रांज़िशन या सीन की तारीख जैसी किसी भी अन्य जानकारी को हटा देते हैं। चार प्रमुख तत्वों की टैगिंग, तत्वों के चारों ओर लपेटे गए आरंभ और अंत टैग का उपयोग करके की जाती है, जैसा कि नीचे दिखाया गया है:
• स्लगलाइन्स: 〈bsl〉...〈esl〉
• एक्शन लाइन्स: 〈bal〉...〈eal〉
• वर्ण का नाम: 〈bcn〉...〈ecn〉
• संवाद:〈bd〉...〈ed〉
एनोटेट दृश्य का एक उदाहरण चित्र 3 में दिखाया गया है।
यह पेपर CC 4.0 DEED लाइसेंस के अंतर्गत arxiv पर उपलब्ध है।