संदर्भ: मैं यूनी पाठ्यक्रमों के आंकड़ों में कुछ (आधे-भूल गए) अनुभव वाला एक प्रोग्रामर हूं। हाल ही में मैंने http://akinator.com पर ठोकर खाई और इसे विफल बनाने के लिए कुछ समय बिताया। और कौन नहीं था? :)
मैंने यह पता लगाने का फैसला किया है कि यह कैसे काम कर सकता है। Googling और संबंधित ब्लॉग पोस्ट पढ़ने और परिणामी मिश्रण में अपने कुछ (सीमित) ज्ञान जोड़ने के बाद मैं निम्नलिखित मॉडल के साथ आता हूं (मुझे यकीन है कि मैं गलत संकेतन का उपयोग करूंगा, कृपया मुझे इसके लिए मार न डालें):
विषय (S) और प्रश्न (Q) हैं। भविष्यवक्ता का लक्ष्य एस विषय का चयन करना है, जिसमें उस विषय के होने की सबसे बड़ी संभावना है, जिसके बारे में उपयोगकर्ता अब तक एकत्र किए गए प्रश्नों और उत्तरों के बारे में सोच रहा है।
गेम जी से पूछे गए सवालों के जवाब दिए जाएं और दिए गए जवाब: ।
फिर भविष्यवक्ता ।
विषयों के लिए ( ) से पहले कई बार खेल की कुल संख्या से विभाजित होने वाले विषय का अनुमान लगाया जा सकता है।
यह धारणा बनाते हुए कि सभी उत्तर स्वतंत्र हैं, हम इस विषय की संभावना की गणना कर सकते हैं कि एस ने खेल को इस तरह दिया है:
हम गणना कर सकते हैं यदि हम इस बात पर नज़र रखते हैं कि दिए गए विषय के उपयोग के दौरान कौन से प्रश्न और उत्तर दिए गए थे:
अब, विषयों पर एक संभाव्यता वितरण को परिभाषित करता है और जब हमें अगले प्रश्न का चयन करने की आवश्यकता होती है, तो हमें उस एक का चयन करना होगा, जिसके लिए इस वितरण की एन्ट्रापी में अपेक्षित परिवर्तन अधिकतम है:
मैंने इसे लागू करने की कोशिश की है और यह काम करता है। लेकिन, जाहिर है, जैसे-जैसे विषयों की संख्या बढ़ती जाती है, प्रत्येक चाल के बाद को पुनर्गणना करने की आवश्यकता के कारण प्रदर्शन में गिरावट होती है और अद्यतन वितरण की गणना लिए होती है। प्रश्न चयन।
मुझे संदेह है कि मैंने केवल गलत मॉडल को चुना है, मेरे ज्ञान की सीमाओं से विवश होकर। या, हो सकता है, गणित में कोई त्रुटि हो। कृपया मुझे बताएं: मुझे अपने आप से क्या परिचित होना चाहिए, या भविष्यवक्ता को कैसे बदलना चाहिए ताकि यह लाखों विषयों और हजारों सवालों का सामना कर सके?