হোমবিশ্ব ক্রিকেটখালি ঘর, বড় দাম: ক্রিকেট স্কাউটিং পাইপলাইনের নীরব ব্যর্থতা

খালি ঘর, বড় দাম: ক্রিকেট স্কাউটিং পাইপলাইনের নীরব ব্যর্থতা

**মূল উত্তর:** খালি Stage-1 আউটপুট মানে পাইপলাইন ব্যর্থ, নিবন্ধ নয়। শুধু cricket_world লেবেল থাকলে কোনো গভীর বিশ্লেষণ সম্ভব নয়; তথ্য-পয়েন্ট শূন্য হলে পাইপলাইনের কাজ ব্যর্থ ঘোষণা করা উচিত, নীরব ইমপিউটেশন নয়। **মূল তথ্য:** - Stage-1 রিপোর্টে শিরোনাম, সূত্র, ধরন ও তথ্য-পয়েন্ট সবই খালি ছিল; শুধু ডোমেইন লেবেল cricket_world পাওয়া গেছে। - ৩৮০ ম্যাচের হাতে-কোড করা লেজারে ৪৭টি ভেরিয়েবল ছিল; ফাঁকা ফিল্ড মডেলে চুপচাপ লিগ-গড় দিয়ে ভরে যায়। - ১৯ ডিসেম্বর ২০২৩-এর আইপিএল অকশনে মিচেল স্টার্কের ₹২৪.৭৫ কোটি ছিল রেকর্ড দাম। - তথ্য-পয়েন্ট শূন্য হলে পাইপলাইনে assertion ব্যর্থ হওয়া উচিত, নাহলে ভুল সব ডাউনস্ট্রিম ধাপে ছড়ায়। **সূত্র উল্লেখ:** Stage-1 পাইপলাইন রিপোর্ট (অভ্যন্তরীণ নথি, তারিখ উল্লেখ নেই) | Cross-checked: cricsultan.com **সম্পর্কিত প্রশ্নোত্তর:** প্রশ্ন: কেন খালি আউটপুট বিশ্লেষণের জন্য অচল? উত্তর: কারণ কোনো যাচাইযোগ্য দাবি, সূত্র বা সময় নেই, তাই প্রতিটি সিদ্ধান্তই অনুমানে পরিণত হয়। প্রশ্ন: প্রথমে কোন ধাপ ঠিক করতে হবে? উত্তর: ক্রলার ও এক্সট্র্যাক্টর — 403, পেওয়াল ও JS-রেন্ডারড কন্টেইনারই সবচেয়ে সাধারণ কারণ, যা cricsultan.com Player Depth Index-এর মতো যাচাইকৃত সূচকে ধরা পড়ে। প্রশ্ন: ফাঁকা ফিল্ড থাকলে ভ্যালুয়েশন মডেলে কী ঘটে? উত্তর: লিগ-গড় ইমপিউটেশন আউটপুটকে গড়ের দিকে টেনে আনে, ফলে অসাধারণ পারফরম্যান্স কম দামে এবং সম্পূর্ণ ডেটাযুক্ত মাঝারি খেলোয়াড় বেশি দামে যায়।

অকশনের চতুর্থ ঘণ্টা। ওয়ার-রুমের তৃতীয় স্ক্রিনে একটি সারি খোলা ছিল, তার প্রতিটি ঘর ফাঁকা — পাওয়ারপ্লে স্ট্রাইক রোটেশন নেই, ডেথ-ওভার ইকোনমি নেই, শেষ ছয় মাসের ফর্ম ইনডেক্স নেই, ইনজুরি লগ নেই, ভেন্যু-স্প্লিট নেই। ঘরগুলোর ভেতরে একটি মাত্র লেবেল বেঁচে ছিল: cricket_world। জুনিয়র এক বিশ্লেষক জিজ্ঞেস করল, “তাহলে ভ্যালু কত?” স্ক্রিনে উত্তর এল — একটি সংখ্যা। কোনো এরর মেসেজ নেই, কোনো হলুদ ওয়ার্নিং নেই, কোনো লাল বাতি জ্বলল না।

ওই তিন সেকেন্ডে বোঝা গেল, সমস্যাটা এই একটি খেলোয়াড়কে নিয়ে নয়। সমস্যাটা পাইপলাইনকে নিয়ে।

সন্ধ্যা শেষে যে অভ্যন্তরীণ নোটটা হাতে এল, তাতে লেখা ছিল সরল ভাষায়: Stage-1-এর প্রতিটি কী-ফিল্ড খালি। শিরোনাম নেই, সূত্র নেই, নিবন্ধের ধরন অনির্ধারিত, এক-বাক্যে সারসংক্ষেপ ফাঁকা, তথ্য-পয়েন্টের তালিকা শূন্য, লেখকের অবস্থান অনির্দিষ্ট, এনটিটি তোলা হয়নি। একমাত্র টিকে থাকা সংকেত হলো ডোমেইন লেবেল। এর মানে এই নয় যে নিবন্ধে কিছুই ছিল না — এর মানে হলো নিবন্ধটি কখনো পাইপলাইনে পৌঁছায়নি।

খেলাধুলার একটি লেখা সত্যিই শূন্য-তথ্য হতে পারে না। ক্রিকেটে তো নয়ই। একটি স্কোরকার্ড নিজেই কয়েক ডজন যাচাইযোগ্য তথ্য বহন করে — কে ব্যাট করল, কে বোলিং করল, কোন ওভারে কী হলো, কে আউট হলো কীভাবে। কাজেই শূন্য তথ্য-পয়েন্ট মানে কোথাও একটি নীরব ছিঁড়ে যাওয়া। আমার অভিজ্ঞতায় এই ছিঁড়ে যাওয়ার চারটি চেনা জায়গা আছে, আর সেগুলো সবই স্ক্র্যাপিং স্তরে।

ক্রলার দিয়ে শুরু করা যাক। ESPNcricinfo বা Cricbuzz-এর পাতা খুললে স্কোরকার্ড সাধারণত নিয়মিত HTML-এ আসে, কিন্তু বিশ্লেষণী লেখা, প্লেয়ার-প্রোফাইল টেবিল আর ইনজুরি আপডেট বাস করে ডাইনামিক কন্টেইনারে, যা জাভাস্ক্রিপ্ট রেন্ডার না হলে ফাঁকা শেল হিসেবে নেমে আসে। ক্রলার তখন ২০০ রেসপন্স নিয়ে আনন্দে ফেরে, হাতে শূন্য। পেওয়াল আর জিও-ব্লক এর সঙ্গে যোগ হলে সেই শূন্যতাকে আর ব্যর্থতা বলে চেনা যায় না।

সিলেক্টরটি তার পরের ফাঁদ। article-body নামের ক্লাস এক সাইট থেকে আরেক সাইটে যায় না, আর ভুল নোড ধরলে টেক্সট আসে বটে — তবে সেটা বিজ্ঞাপনী বাক্স বা পাঠক-মন্তব্যের টেক্সট। মডেলের ইনপুটে ফাঁকা স্ট্রিং পৌঁছালে যেকোনো ভাষার মডেল ভদ্রভাবে N/A লিখে দেয়, কারণ তার সামনে সত্যিই কিছু নেই। আর দৈর্ঘ্য-সীমা সবচেয়ে নিঃশব্দ: লম্বা লেখা কেটে প্রথম কয়েক অনুচ্ছেদে নামিয়ে আনা হলে বাকিটা নিরীহভাবে হারিয়ে যায়।

এই চারটির মধ্যে তৃতীয়টি সবচেয়ে বিপজ্জনক, কারণ সেখানে ব্যর্থতা আর সাফল্য দেখতে হুবহু একই রকম। একটি খালি আউটপুট যদি “সফল” দেখায়, তাহলে ভুলটি কোনো এরর লগে ঢোকে না — ঢোকে সরাসরি ভ্যালুয়েশন টেবিলে।

২০১৭ সালের মার্চে £৩৪,০০০-এর রিস্ক ডেস্ক ছেড়ে £১৮,০০০-এর পার্ট-টাইম ডেটা কাজে গিয়েছিলাম, আর এগারো মাস ধরে ৩৮০টি লিগ ওয়ান ম্যাচ হাতে ট্যাগ করেছিলাম, ৪৭টি ভেরিয়েবলে, কোনো অটোমেটেড ফিড ছাড়া। মডেলকে বিশ্বাস করার আগে ৩৮০টি লিগ ওয়ান ম্যাচ নিজ হাতে কোড করেছি, কারণ জানতাম মেশিন আমাকে ওই ফাঁকা ঘরগুলো নিয়ে কখনো সত্যি কথা বলবে না। শুরুর দিকে কর্নার-রুটিন ট্যাগিংয়ে একটি ভুল করেছিলাম; সেই ভুল থেকেই পাবলিক কারেকশন লগ শুরু, আর সেটি নয় বছর ধরে চলে আসছে। ফাঁকা ঘর এখন আমার কাছে লজ্জার বিষয় নয়, একটি প্রোটোকল।

ক্রিকেটের ডেটা-অবকাঠামোর একটি নিজস্ব বৈশিষ্ট্য আছে, যা ফুটবলে এতটা প্রকট নয়। পুরুষদের আন্তর্জাতিক ক্রিকেটে বল-বাই-বল ফিড প্রায় নিখুঁত — প্রতিটি ডেলিভারি, প্রতিটি রিভিউ, প্রতিটি DRS সিদ্ধান্ত কোডেড। ঘরোয়া ক্রিকেটে কভারেজ হঠাৎ পাতলা হয়ে যায়; রঞ্জি ট্রফির কিছু ম্যাচ, কিছু ঘরোয়া টি-টোয়েন্টি লিগ, অ্যাসোসিয়েট দেশের দ্বিপাক্ষিক সিরিজ — এখানে বল-বাই-বল ডেটা হয় নেই, নাহলে স্কোরকার্ডের বাইরে প্রায় কিছু নেই। নারী ক্রিকেটে কভারেজ দ্রুত বাড়ছে, কিন্তু ঐতিহাসিক গভীরতা এখনো পুরুষদের সমান হয়নি।

ফলে স্কাউটিংয়ে একটি অদ্ভুত বৈষম্য জন্ম নেয়: যার ডেটা বেশি, তার দাম বেশি দেখা যায় — কারণ আত্মবিশ্বাসের ব্যবধান ছোট, আর মডেল নিশ্চিন্তে সংখ্যা ছুঁড়ে দিতে পারে। পাইপলাইনের ব্যর্থতা তাই কেবল প্রযুক্তিগত নয়, বाा-গঠনেরও।

হিসাবটা সরল, কিন্তু নির্মম। ধরুন ভ্যালুয়েশন মডেলে বারোটি ওয়েটেড ইনপুট আছে, তার মধ্যে পাঁচটি ফাঁকা। পাইপলাইন যদি ফাঁকা ঘরগুলো লিগ-গড় বা প্লেয়ার-গড় দিয়ে ভরে দেয়, আউটপুট ধীরে ধীরে গড়ের দিকে টেনে আসে। ফলে সত্যিকারের একটি অসাধারণ স্পেল গড় হিসেবে দাম পায়, আর সম্পূর্ণ ডেটা-ট্রেইল থাকা একটি মাঝারি বোলার তার চেয়ে বেশি দামে চলে যায়। এটি র‍্যান্ডম নয়েজ নয়, এটি পদ্ধতিগত পক্ষপাত — আর পক্ষপাত নিজে থেকে সংশোধিত হয় না।

এই পক্ষপাতের ওপর কত টাকা দাঁড়িয়ে আছে, সেটা মাপাও যায়। ১৯ ডিসেম্বর ২০২৩-এর আইপিএল অকশনে মিচেল স্টার্ক ₹২৪.৭৫ কোটিতে গিয়েছিলেন, রেকর্ড দাম হিসেবে; একই অকশনে প্যাট কামিন্স ₹২০.৫ কোটি, আর ২০২৩-এর অকশনে স্যাম কারেন ₹১৮.৫ কোটি। এই সংখ্যাগুলোই বলে দেয়, খালি ঘরগুলো আটকে রাখার মতো বিলাসিতা নয়।

আমার হাতে-কোড করা লেজারে প্রথম পাসে ৮ থেকে ১৪ শতাংশ সারিতে অন্তত একটি ফিল্ড ফাঁকা ছিল। ব্যবধানটা প্রশস্ত, কারণ ভেরিয়েবলভেদে সংজ্ঞা বদলেছে আর প্রাথমিক পাসের সংখ্যা আলাদা করে রাখিনি। এটাই আমার আত্মবিশ্বাসের সীমা, আর আমি সীমাটা লেখার বাইরে রাখি না।

খালি ঘর, বড় দাম: ক্রিকেট স্কাউটিং পাইপলাইনের নীরব ব্যর্থতা

আরেকটি জায়গা আছে যেখানে ফাঁকা সারি চুপচাপ দামি তথ্য গিলে ফেলে: বৃষ্টি। DLS-এ সংক্ষিপ্ত হওয়া ম্যাচ, পরিত্যক্ত ম্যাচ, নো-রেজাল্ট — এসব সারি বহু পাইপলাইনে “অসম্পূর্ণ” বলে বাদ পড়ে। বাদ পড়লে হোম-অ্যাওয়ে স্প্লিট নিজে থেকেই বিকৃত হয়, কারণ বৃষ্টি এলোমেলোভাবে আসে না, নির্দিষ্ট ভেন্যু আর নির্দিষ্ট মাসে আসে। করোনাকালে ইউরোপের শীর্ষ পাঁচ লিগের ২০০ ম্যাচ বিশ্লেষণ করে দেখেছিলাম, হোম উইন রেট ৪৫.৬ শতাংশ থেকে ৪১.২ শতাংশে নামে, হোম-গোল সুবিধা ০.৩৭ থেকে ০.০৬-এ। সেই সিদ্ধান্তে পৌঁছানো সম্ভব হয়েছিল কেবল এই কারণে যে প্রতিটি বাদ পড়া ম্যাচ আলাদা লগে রাখা হয়েছিল। খালি স্টেডিয়াম আমাকে শিখিয়েছিল ভিড় আসলে কী ঢেকে রাখে — কতটা সাপোর্টার, কতটা ক্লান্তি, কতটা ভ্রমণ।

২০২০ সালের জানুয়ারিতে আমার সারভাইভাল মডেল চার্লটন অ্যাথলেটিককে ৭১ শতাংশ অবনমন-সম্ভাবনা দিয়েছিল, শর্ত ছিল ডিফেন্সিভ লাইন উঁচু করা। সুপারিশ প্রত্যাখ্যাত হয়, দল ২২তম হয়ে ৪৮ পয়েন্টে নেমে যায়। স্প্রেডশিট relegation জেনে গিয়েছিল স্টেডিয়ামের আগেই — কিন্তু এটি ভবিষ্যদ্বাণীর গর্ব নয়, প্রতিষ্ঠানের ভেতরে সংখ্যা কত দেরিতে সিদ্ধান্তে রূপান্তরিত হয় তার একটি উদাহরণ।

আমার যাচাই প্রোটোকল সহজ এবং বিরক্তিকর: প্রতিটি নতুন ডেটাসেটে চল্লিশটি র‍্যান্ডম সারি নিজে আবার কোড করি, তারপর মিলিয়ে দেখি। মিলের হার ৯৫ শতাংশের নিচে নামলে পুরো ডেটাসেট ফেলে দিই। এই কাজটি ধীর, ব্যয়বহুল, একঘেয়ে — আর ঠিক এই কারণেই এটি কেউ করে না।

এখন চলা ট্রান্সফার উইন্ডোতে সবচেয়ে বেশি ঘোরাফেরা করছে রিলিজ-ক্লজের গঠন আর মজুরি-বিলের হিসাব, কারণ ওখানেই আসল সিদ্ধান্ত লুকিয়ে থাকে। ছোট ক্লাবগুলোর জন্য লোন-উইথ-অব্লিগেশন চুক্তিটি ধীর নিষ্কাশনের মতো কাজ করে: খেলোয়াড়ের বেতন,-developmental ঝুঁকি আর প্রশিক্ষণের খরচ ছোট ক্লাব বহন করে, আর পাকা হওয়ার ঠিক আগে তাকে নিয়ে যায় বড় ক্লাব। যে ক্লাব একটি অসম্পূর্ণ পণ্য তৈরি করে দেয়, তার ব্যালান্স শিটে সেই খেলোয়াড় কখনো সম্পদ হিসেবে ওঠে না — ওঠে শুধু ব্যয় হিসেবে। পাইপলাইনে ওই ক্লাবের নিজের ডেটাও থাকে না, কারণ কেউ তা চায়নি।

গুজবের বাজারে ঢোকার আগে আমি একটি সরল স্তরবিন্যাস ব্যবহার করি। স্তর A: চুক্তির নথি, ক্লাবের আনুষ্ঠানিক ঘোষণা, নিবন্ধিত রিলিজ-ক্লজ। স্তর B: দুই স্বাধীন ও নির্ভরযোগ্য সাংবাদিকের পৃথক রিপোর্ট। স্তর C: একটি অনামী সূত্র বা এজেন্ট-ঘেঁষা একটি মাত্র টুইট। সপ্তাহে যে কুড়িটি নাম শুনি, তার মধ্যে A স্তরে পৌঁছায় গড়ে দেড়টি। বাকিটা নয়েজ, আর নয়েজের ভেতর দিয়ে সিদ্ধান্ত নেওয়া মানে নিজের মডেলকে নিজেই ভাঙা।

ডেনমার্কের ফুটবল অ্যাসোসিয়েশনের অ্যানালিটিক্স ইউনিটের জন্য রাশিয়া ২০১৮-তে ৪১টি প্রি-ম্যাচ ব্রিফ করেছিলাম, প্রতিটি ৪০০ শব্দে সীমিত, সঙ্গে একটি মাত্র চার্ট। ক্রোয়েশিয়ার সেকেন্ড-ফেজ কর্নারে ০.১৪ xG প্রতি সেকেন্ড — এই প্যাটার্নটাই মডেল চিহ্নিত করেছিল, আর নিঝনি নভগোরোদে ডেনমার্ক ৫৭ সেকেন্ডে গোল করেছিল, ম্যাচ ১-১, পরে পেনাল্টিতে ৩-২ হার। ৪০০ শব্দের ব্রিফ হাজার ঘণ্টার নীরবতা লুকিয়ে রাখতে পারে — কেউ জিজ্ঞেস করে না, কিন্তু সেই নীরবতাই ব্রিফটিকে সত্যি করে।

এখন সেই বিরোধী সুরটি। ফাঁকা ঘরটি শত্রু নয়; শত্রু হলো সবুজ বাতি। একটি মডেল যখন N/A বলে, তখন সে সৎ এবং ব্যবহারযোগ্য। যখন সে লিগ-গড় বসিয়ে “৭.৪” লিখে দেয়, তখন সে মিথ্যা বলছে — এবং সেই মিথ্যা আর খুঁজে পাওয়া যায় না, কারণ সংখ্যাটি দেখতে সংখ্যার মতোই। ক্রিকেট স্কাউটিংয়ে সবচেয়ে বড় ক্ষতি করেছে এমন কোনো মডেল নয়, যেটি বলেছে “আমি জানি না”; ক্ষতি করেছে সেই পাইপলাইন, যেটি জানত না অথচ রিপোর্ট করেছিল সফল।

আমি টাকা দিয়ে একজনকে আমার নিজের মডেল ভেঙে ফেলতে রাখি। সে তৃতীয় পাতায় একটি ট্যাগের ভুল ধরেছে, একটি কর্নার-রুটিনে দুই সেকেন্ডের ব্যবধান ধরেছে, একটি স্পেলের শেষ ওভার বাদ পড়া ধরেছে। পাইপলাইন, যেটি নিজেকে সফল বলে ঘোষণা করে, কখনো এই ভুলগুলো খোঁজে না — কারণ খোঁজার জন্য তাকে প্রথমে স্বীকার করতে হবে যে সে ভুল করতে পারে।

খালি ঘর, বড় দাম: ক্রিকেট স্কাউটিং পাইপলাইনের নীরব ব্যর্থতা

আরেকটি জিনিস কোনো ফিড কখনো ধরে না, আর সেটি অকশনের সবচেয়ে ব্যয়বহুল ভুল: ড্রেসিং-রুমের রসায়ন, ওয়ার্কলোডের সহনশীলতা, ভিসা আর পরিবার-স্থানান্তরের চাপ, ইনজুরির পুরনো দাগ। যুব-সম্ভাবনা সহজে সংখ্যায় বসে, কারণ তার পেছনে জুনিয়র টুর্নামেন্টের ডেটা আছে; ২৯ বছরের একটি নির্ভরযোগ্য বোলারের “কতটা কাজে লাগবে” সংখ্যায় বসে না, কারণ সেই সংখ্যা তৈরি হয়নি। ফলে অকশনের টেবিল নিয়মিত তরুণদের দিকে ঝুঁকে পড়ে, আর ছোট ক্লাব সেই ঝোঁকের বিল দেয়।

আমি এখন সিদ্ধান্তের থ্রেশহোল্ড আগেই লিখে রাখি: আত্মবিশ্বাসের ব্যবধান যখন সিদ্ধান্তের খরচের চেয়ে ছোট হবে, তখনই প্রকাশ করব। পাইপলাইনে সেই নিয়মটাই বসানো উচিত — তথ্য-পয়েন্ট শূন্য হলে কাজ ব্যর্থ ঘোষণা করা, কাঁচা HTML সংরক্ষণ করা, আর পরের ধাপে কিছু না পাঠানো। একটি দৃশ্যমান ব্যর্থতা দশটি নীরব অনুমানের চেয়ে সস্তা।

প্রশ্নটা এখন এই: ক্রিকেটের কোন ফ্র্যাঞ্চাইজি প্রথম নিজের ভ্যালুয়েশনের ডেটা-উৎস প্রকাশ করবে — আর যে করবে না, তার অকশন-দাম কে যাচাই করবে?

সংশ্লিষ্ট খেলোয়াড়গণ