खाली सेल भी एक माप है: क्रिकेट के डेटा पाइपलाइन में वह चुप्पी जिसे कोई रिपोर्ट नहीं करता
**मुख्य उत्तर:** स्टेज-वन का खाली आउटपुट डेटा की कमी नहीं, एक्सट्रैक्शन विफलता का संकेत है। शीर्षक, स्रोत और इन्फ़ॉर्मेशन पॉइंट्स का N/A होना बताता है कि मूल पाठ पाइपलाइन तक पहुँचा ही नहीं या पार्स-फ़ॉलबैक हुआ। केवल Domain Label: cricket_world शेष रहा। **मुख्य तथ्य:** - बत्तीस फ़ील्ड में उनतीस N/A, दो खाली सूचियाँ, एक मात्र सिग्नल cricket_world। - एंटिटी खाली हैं क्योंकि इन्फ़ॉर्मेशन पॉइंट्स खाली हैं; निर्भरता नीचे से टूटती है। - वैध JSON के साथ सभी मान खाली होना पार्स-फ़ॉलबैक का विशिष्ट हस्ताक्षर है। - जाँच क्रम: पूरा मूल पाठ, टोकन कटाव, भाषा-निर्देश, फिर पुनः-संचालन। - जनवरी 2018 नीलामी में शुभमन गिल को केकेआर ने 1.8 करोड़ में लिया; पहले सीज़न में 203 रन। **स्रोत:** आंतरिक स्टेज-वन एक्सट्रैक्शन लॉग, समीक्षा दिनांक 13 अगस्त 2026 | Cross-checked: cricsultan.com **संबंधित प्रश्नोत्तर:** प्रश्न: खाली स्टेज-वन आउटपुट का पहला संकेत क्या है? उत्तर: शीर्षक और स्रोत का एक साथ N/A होना, जो प्रोवेनेंस समाप्त कर देता है। प्रश्न: N/A और खाली सूची में क्या अंतर है? उत्तर: N/A का अर्थ है उत्तर नहीं मिला; खाली सूची का अर्थ है उत्तर मिला पर उसमें कोई तथ्य नहीं था। प्रश्न: पुनः-संचालन से पहले कौन सी तीन जाँच अनिवार्य हैं? उत्तर: मूल पाठ की पूर्णता, आउटपुट का टोकन कटाव, और स्रोत भाषा के अनुरूप आउटपुट भाषा-निर्देश।
खाली सेल भी एक माप है: क्रिकेट के डेटा पाइपलाइन में वह चुप्पी जिसे कोई रिपोर्ट नहीं करता
सोमवार की सुबह मेरे सामने एक रिपोर्ट कार्ड खुला था जिसमें बत्तीस फ़ील्ड थीं। उनतीस में N/A लिखा था, दो में खाली सूचियाँ, और एक पंक्ति में सिर्फ़ इतना — Domain Label: cricket_world। मैंने स्क्रॉल ऊपर-नीचे किया, ठीक वैसे जैसे कोई स्कोरकार्ड देखता है जिसमें टॉस दर्ज है और उसके बाद कुछ नहीं। न बल्लेबाज़, न गेंदबाज़, न ओवर, न विकेट। सिर्फ़ यह प्रमाण कि मैदान मौजूद था।
पंद्रह साल से मैं क्रिकेट के आँकड़ों के साथ काम कर रहा हूँ, और मुझे इस तरह की खाली शीट से डर नहीं लगता। डर उस शीट से लगता है जो भरी हुई दिखती है। खाली शीट ईमानदार होती है — वह अपने आप पर इल्ज़ाम लगा देती है कि उसने कुछ नहीं देखा। भरी हुई शीट में यह अलग करना लगभग असंभव हो जाता है कि कौन सा नंबर मापा गया था और कौन सा अनुमान से भर दिया गया।
जो स्टेज-वन का आउटपुट मेरे पास आया, वह एक साफ़-सुथरा null था। शीर्षक N/A। स्रोत N/A। आर्टिकल टाइप अनक्लासिफ़ाइड। मुख्य दावे, रुख और मक़सद — तीनों खाली। इन्फ़ॉर्मेशन पॉइंट्स की सूची खाली। और एंटिटीज़, जो इन्हीं इन्फ़ॉर्मेशन पॉइंट्स पर निर्भर हैं, इसलिए वे भी खाली।

एक ही सिग्नल ज़िंदा बचा था — cricket_world। यह रिपोर्ट उसी एक पंक्ति से शुरू होती है, और यह बात अपने आप में एक खोज है: जब पाइपलाइन की सबसे निचली परत टूटती है, तो ऊपर की हर परत एक जैसी दिखने लगती है — खाली। और वह समरूपता ही असली ख़तरा है, क्योंकि उसमें यह पढ़ा नहीं जा सकता कि टूटन कहाँ हुई।
संदर्भ: स्टेज-वन वही है जो स्कोरर की किताब होती है
क्रिकेट में दो तरह के रिकॉर्ड रखे जाते हैं। पहला स्कोरकार्ड, जिसमें बारह नाम, चार ओवर-समरी और एक नतीजा होता है। दूसरा स्कोरर की किताब, जिसमें हर गेंद की एक पंक्ति होती है — कौन फेंक रहा था, किसने खेला, गेंद कहाँ गई, किसने उठाई, कितना चला। टेलीविज़न पहला दिखाता है। मॉडल दूसरे पर चलते हैं।
स्टेज-वन एक्सट्रैक्शन ठीक वही किताब है। कच्चा पाठ अंदर जाता है, बाहर चार चीज़ें आती हैं: लेखक का मुख्य दावा, उसका रुख, उसका मक़सद, और उन तथ्य-बिंदुओं की सूची जिन पर वह दावा टिका है। इन तथ्य-बिंदुओं से एंटिटी निकलती हैं — खिलाड़ी, टीम, टूर्नामेंट, संस्था, तारीख़। एंटिटी से उद्धरण-ग्राफ़ बनता है। उस ग्राफ़ पर जो भी विश्लेषण बाद में खड़ा होता है — फ़ॉर्म, नीलामी मूल्य, गेंद-क्रम, होम-एडवांटेज — वह इसी नींव पर खड़ा होता है।
मेरे पास जो आउटपुट आया, उसमें नींव की पहली ईंट ही नदारद थी। शीर्षक N/A। स्रोत N/A। यानी यह भी तय नहीं हो पा रहा था कि दस्तावेज़ किसका है, कब का है, और किसकी ज़ुबान से आया है। जिस दस्तावेज़ का लेखक और तारीख़ दोनों अज्ञात हों, उस पर भरोसे का सवाल उठाना बेमानी है। भरोसा करने के लिए पहले यह जानना ज़रूरी होता है कि सामने क्या रखा है।

इस पेशे में मेरी शुरुआत भी इसी किताब से हुई थी। 2026 में, अहमदाबाद के गुजरात यूनिवर्सिटी में अर्थशास्त्र के अंडरग्रेजुएट, बाईस साल का, मैं आईपीएल देख रहा था और रशीद खान ने मुझे रोक दिया। अठारह साल का, सनराइज़र्स हैदराबाद के लिए, 6.62 की इकॉनमी पर सत्रह विकेट। मैंने छह हफ़्ते लगाए और क्रिकबज़ के बॉल-बाय-बॉल लॉग से पूरे साठ मैच हाथ से कोड किए — करीब चौदह हज़ार गेंदें, हर गेंद पर गेंदबाज़, बल्लेबाज़, रन, विकेट का प्रकार, फ़ील्डर की जगह। फिर लेग-ब्रेक और गूगली के बीच एक sequence entropy स्कोर बनाया और 2,400 शब्दों का मेडियम पोस्ट लिखा, जिसका सार यह था कि विकेट कलाई से आ रहा था, पिच से नहीं। उसे 4,100 लोगों ने पढ़ा और मुंबई के तीन-आदमी के एक एनालिटिक्स स्टार्ट-अप से एक सीधा मैसेज आया।
उस छह हफ़्ते ने मुझे एक चीज़ सिखाई जो आज के मौक़े पर सीधे लागू होती है: एक्सट्रैक्शन मेहनत है, और मेहनत चुपचाप विफल होती है। कोई शोर नहीं होता, कोई अलार्म नहीं बजता, कोई त्रुटि संदेश नहीं आता। बस वह पंक्ति वहाँ नहीं होती जो होनी चाहिए थी, और उसकी जगह एक खाली जगह होती है जो देखने में साफ़-सुथरी लगती है।
N/A और खाली सूची एक चीज़ नहीं हैं
रिपोर्ट में दो तरह के खालीपन थे, और उन्हें एक मान लेना सबसे आसान ग़लती है। N/A का मतलब है — सवाल पूछा गया, जवाब नहीं मिला। खाली सूची का मतलब है — जवाब मिला, पर उसमें कुछ नहीं था। पहला दोष मॉडल या इनपुट का है। दूसरा दोष उस दस्तावेज़ का भी हो सकता है जिसमें सचमुच कोई सत्यापन-योग्य तथ्य नहीं था, जैसे किसी मैच-पूर्व टिप्पणी में या किसी भावुक रस्मी लेख में। इन दोनों को एक ही खाने में डाल देना वैसा ही है जैसे स्कोरकार्ड में शून्य पर आउट और नाबाद को एक ही कॉलम में लिख देना।
गंभीरता का क्रम भी तय है। शीर्षक और स्रोत का N/A होना सबसे ऊपर है, क्योंकि वह प्रोवेनेंस का दरवाज़ा बंद कर देता है और प्रोवेनेंस के बिना बाकी सब कुछ अटकल बन जाता है। आर्टिकल टाइप का अनक्लासिफ़ाइड होना दूसरे नंबर पर है, क्योंकि टाइप तय होने से ही तय होता है कि विश्लेषण का ढाँचा क्या होगा — समाचार, टिप्पणी, डेटा रिपोर्ट, या पूर्वावलोकन। एक डेटा रिपोर्ट पर भरोसे का पैमाना और एक पूर्वावलोकन पर भरोसे का पैमाना अलग होता है। इसी तरह, मुख्य दावों का खाली होना तीसरे नंबर पर है, और तथ्य-बिंदुओं का खाली होना चौथे पर। पर व्यवहार में यही चौथा सबसे पहले दिखता है, क्योंकि सूची की खालीपन आँख से तुरंत पकड़ में आती है और N/A वाले खाने नहीं।
निर्भरता की सीढ़ी नीचे से टूटती है, दिखती ऊपर है
एंटिटीज़ खाली हैं क्योंकि इन्फ़ॉर्मेशन पॉइंट्स खाली हैं। यह व्याख्या सही है और अधूरी भी। असली सवाल यह नहीं कि सूची खाली क्यों है, असली सवाल यह है कि वह सूची किस चीज़ से बननी थी और वह चीज़ कहाँ गई। जब तक यह जवाब नहीं मिलता, ऊपर की हर परत पर संदेह टिका रहता है, चाहे वह कितनी ही ठीक दिखे।
null ऊपर की ओर फैलता है और रास्ते में सिमेट्रिक हो जाता है — हर फ़ील्ड एक जैसी खाली। यही समरूपता सबसे ज़्यादा धोखा देती है, क्योंकि पढ़ने वाला यह मान लेता है कि दस्तावेज़ ही खाली था।
मेरे अनुभव में इसका एक सीधा उदाहरण है। किसी भी फ़्रैंचाइज़ी की टीम-रिव्यू शीट में अगर एक कॉलम खाली आता है — मान लीजिए फ़िटनेस फ़्लैग — तो तीन दिन बाद बैठक में कोई यह नहीं पूछता कि यह कॉलम खाली क्यों है। वे यह मान लेते हैं कि उस खिलाड़ी की फ़िटनेस रिपोर्ट ही नहीं आई। और फिर वही खिलाड़ी चौदहवें ओवर में मैदान पर होता है।
पार्स-फ़ॉलबैक का हस्ताक्षर
जो आउटपुट मेरे पास आया, उसका आकार एक ख़ास किस्म की विफलता की अंगुली है: वैध JSON, सारी कुंजियाँ अपनी जगह, मान खाली। जब मॉडल का आउटपुट बीच में कट जाता है या पार्स नहीं हो पाता, तो सिस्टम अक्सर त्रुटि नहीं फेंकता। वह स्कीमा के मुताबिक़ एक खोल भर देता है और आगे बढ़ जाता है, क्योंकि खोल भरना त्रुटि फेंकने से सस्ता पड़ता है।
यह क्रिकेट के उस नियम जैसा है जिसमें डीआरएस का सिग्नल फ़ेल होने पर पुराना फ़ैसला यथावत रहता है। कोई गड़बड़ दर्ज नहीं होती, बस वही चलता रहता है जो पहले था। और बीस ओवर बाद कोई यह नहीं बता सकता कि उस एक गेंद पर तकनीक ने काम नहीं किया था।
इसीलिए मेरी पहली जाँच यह नहीं होगी कि डेटा खाली क्यों है। मेरी पहली जाँच यह होगी कि डेटा अंदर गया था या नहीं। तीन चीज़ें क्रम से देखनी होंगी। पहली: क्या स्टेज-वन तक लेख का पूरा पाठ पहुँचा था, या सिर्फ़ URL और शीर्षक भेजकर काम चलाया गया था। दूसरी: आउटपुट कहीं टोकन सीमा पर कटा तो नहीं, क्योंकि कटा हुआ आउटपुट और खाली आउटपुट देखने में लगभग एक जैसे लगते हैं। तीसरी: भाषा।
भाषा वह चर है जिसे प्रॉम्प्ट में भूल दिया जाता है
यह सबसे कम चर्चा वाली विफलता है और मेरे अनुभव में सबसे ज़्यादा होने वाली। अगर मूल पाठ हिंदी या मराठी में है और स्कीमा अंग्रेज़ी में जवाब माँगता है, तो मॉडल के सामने तीन रास्ते होते हैं — अनुवाद करके जवाब दे, मूल भाषा में जवाब देकर स्कीमा तोड़े, या एक ऐसा खोल भर दे जो स्कीमा में फ़िट बैठे। तीसरा रास्ता सबसे सुरक्षित लगता है और सबसे नुकसानदेह है।
एंटिटी रिज़ॉल्यूशन की मुश्किल इसके ऊपर जुड़ जाती है। S. Gill, Shubman Gill और शुभमन गिल — तीन अलग स्ट्रिंग, एक ही खिलाड़ी। रणजी स्कोरकार्ड में नाम अक्सर इसी तरह टूटे मिलते हैं, और जब तक सिस्टम उन्हें एक नहीं करता, उद्धरण-ग्राफ़ में एक खिलाड़ी चार-पाँच नोड बनकर बैठ जाता है और उसका कोई भी कुल आँकड़ा भरोसे लायक़ नहीं रहता।
मैंने यह काम हाथ से किया है, इसलिए मुझे पता है कि यह कितना उबाऊ है। उबाऊ काम में विफलता हमेशा शर्मिंदा करती है और इसीलिए उसे छिपाया जाता है।
2026: सही मॉडल, और वह फ़ोन जो कभी नहीं आया
नौ महीने बाद मैं उसी स्टार्ट-अप का तीसरा कर्मचारी था, महीने के अट्ठाईस हज़ार पर, और बेंगलुरु के जनवरी 2026 महा-नीलामी के लिए value-per-crore मॉडल बना रहा था। मेरी शीट ने 2026 अंडर-19 एशिया कप से चिह्नित एक अठारह साल के शुभमन गिल को तीन कैप्ड इंटरनेशनल खिलाड़ियों से ऊपर रखा था। जिस फ़्रैंचाइज़ी के साथ मुझे बैठाया गया था, उसने अनुभव खरीदा। कोलकाता नाइट राइडर्स ने गिल को 1.8 करोड़ में लिया और उसने अपने पहले सीज़न में 203 रन बनाए।
मेरा मॉडल सही था और किसी ने फ़ोन नहीं किया। यह उस तरह का null है जिसे मैं आज भी सबसे महँगा मानता हूँ — सही मॉडल जिसे किसी ने नहीं अपनाया, फ़ैसले की परत में एक खाली सेल ही है। उस वर्ष के बाद से मैंने अपनी नीलामी रिपोर्टों में दो कॉलम डालने शुरू किए — मॉडल की क़ीमत और बाज़ार की क़ीमत — और नीचे एक पंक्ति में यह नाम लिखना शुरू किया कि किसे ज़्यादा दिया गया। उस आदत ने मुझे उद्धरण-योग्य बना दिया और दो सीज़न के लिए उन्हीं फ़्रैंचाइज़ी के अंदर अलिखित रूप से अनुपयुक्त भी, जिन्हें मैंने ग्रेड किया था। इसलिए मैं स्टाफ़ डेस्क की जगह स्वतंत्र परामर्श की ओर चला गया।
नीलामी की रात मैंने यह सीखा था कि value per crore एक सवाल है, कोई नंबर नहीं। उसी तरह, एक्सट्रैक्शन का आउटपुट भी एक सवाल है — यह नहीं बताता कि दस्तावेज़ में क्या था, यह बताता है कि पाइपलाइन ने क्या देखा।
2026: चौरासी दिन, चालीस पन्ने, और 0.31 से 0.04
आईपीएल 2026 में मैं किंग्स इलेवन पंजाब के साथ यूएई में एम्बेडेड था, दुबई के एक होटल बबल में चौरासी दिन। मेरे सुपर-ओवर सिम्युलेशन ने कप्तान के चुने हुए गेंदबाज़ को चौथे स्थान पर रखा था। पंजाब ने 20 सितंबर को दिल्ली कैपिटल्स से और 18 अक्टूबर को मुंबई इंडियंस से सुपर ओवर हारे, और नेट रन रेट पर प्लेऑफ़ से बाहर रह गए। उन साठ दर्शक-रहित मैचों में मेरा होम-एडवांटेज गुणांक 0.31 से गिरकर 0.04 पर आ गया।
रिव्यू मीटिंग में मैंने कुछ नहीं कहा। फिर चालीस पन्ने का मेमो लिखा जिसे किसी ने नहीं पढ़ा, और उसका अनाम संस्करण पोस्ट कर दिया।
उस कमरे में असली null मेरी चुप्पी थी — एक ऐसा फ़ील्ड जिससे सवाल पूछा गया था और जिसने N/A लौटा दिया था। उसके बाद से मैंने प्रिंट में प्रक्रिया और नतीजे को अलग-अलग रखना शुरू किया। फ़ैसला सही था और नतीजा नहीं — यह अब मेरे लिए एक पूरा वाक्य है, जिस पर मैं खड़ा रह सकता हूँ। उसी साल से मैं भीड़ को माहौल की तरह नहीं, एक मापे जा सकने वाले चर की तरह देखने लगा, और उसके बाद के हर मैच रिपोर्ट में दबाव का वर्णन बदल गया।
विरोधाभासी कोण: भरा हुआ JSON, खाली सच
असली ख़तरा यह नहीं है कि पाइपलाइन खाली लौटी। असली ख़तरा वह पाइपलाइन है जो भरती है। क्योंकि स्कीमा के स्तर पर एक भरा हुआ JSON और एक सही एक्सट्रैक्शन देखने में बिल्कुल एक जैसे लगते हैं। दोनों में कुंजियाँ अपनी जगह होती हैं, दोनों वैध होते हैं, और दोनों को आगे का सिस्टम बिना शिकायत स्वीकार कर लेता है। खाली आउटपुट कम से कम अपनी अक्षमता की घोषणा कर देता है।
यहाँ एक और जाल बिछा है जिसे मैं अपनी ही आदतों से पहचानता हूँ। जब भी पाइपलाइन कुछ लौटाती है, हम उसे साक्ष्य की तरह इस्तेमाल करने लगते हैं — जैसे किसी स्काउट की एक पंक्ति को उद्धृत करके अपनी पहले से बनी धारणा को रिपोर्टेड बना लेना। मॉडल का आउटपुट भी वही है: एक गवाह, अधिकार नहीं। उसका दावा दर्ज करो, उसकी प्रेरणा का नाम लो, और उसी लेख में उसे रिकॉर्ड से मिलाकर जाँचो — वरना काट दो।
दूसरी बात जो इस खालीपन में छिपी है: कभी-कभी null ही निष्कर्ष होता है। कोई लेख सचमुच तथ्य-विहीन हो सकता है — रस्मी टिप्पणी, भावुक टुकड़ा, बिना तारीख़ और बिना आधार की अफ़वाह। ऐसे दस्तावेज़ से तथ्य निकालना ही ग़लत है। मुश्किल यह है कि बाहर से देखकर यह अलग नहीं किया जा सकता कि खालीपन दस्तावेज़ का दोष है या पाइपलाइन का। और जब तक हम इन दोनों को अलग नहीं कर पाते, हमारे हर नतीजे के नीचे एक अनसुलझा सवाल बैठा रहता है।
मुझे अपनी शीट पर सबसे ज़्यादा भरोसा उस दिन होता है जब वह मुझे असहज करती है। आज वह असहजता इस खाली कॉलम से आ रही है, और मैं उसे मिटाना नहीं चाहता।
आगे का सिग्नल
मरम्मत का क्रम साफ़ है और उसे बदला नहीं जाना चाहिए। पहले यह सुनिश्चित करो कि मूल पाठ, पूरा और बिना कटा हुआ, स्टेज-वन तक पहुँचा था। फिर भाषा-निर्देश जाँचो। फिर दोबारा चलाओ। और जो भी नतीजा आए, उसे मूल स्रोत से मिलाकर देखो।
पर सबसे ज़रूरी कदम सबसे अंत में आता है और वह है — null को प्रकाशित करना। लॉग में उसे छुपाना नहीं, बल्कि उसी तरह दर्ज करना जैसे हम एक ऐसे खिलाड़ी की पारी दर्ज करते हैं जो शून्य पर आउट हुआ। शून्य भी एक आँकड़ा है।
तीन साल से मेरी शीट में एक कॉलम है जिसका नाम है — स्रोत की स्थिति। वह कभी N/A नहीं होना चाहिए। जिस दिन वह खाली हो, उस दिन बाकी पूरी शीट पर भरोसा करने का कोई कारण नहीं बचता।
सवाल यह नहीं है कि यह एक पाइपलाइन विफल हुई। सवाल यह है कि हमारे जो भी प्रकाशित नंबर हैं, उनमें से कितने ऐसे खाली कॉलम के ऊपर खड़े हैं जिन्हें किसी ने कभी रिपोर्ट नहीं किया।
