শূন্যঘরই ডেটা: ক্রিকেট বিশ্লেষণে একটি নাল পেলোডের পাঠ
**মূল উত্তর:** একটি নাল পেলোড হলো এমন বিশ্লেষণ-ইনপুট যেখানে শিরোনাম, উৎস ও তথ্যবিন্দু সবই অনুপস্থিত; ক্রিকেটে এটি বিশ্লেষণের ব্যর্থতা নয়, বরং নমুনা-কাঠামোর সংকেত, কারণ ফরম্যাট (টেস্ট/ওয়ানডে/টি-টোয়েন্টি) ছাড়া কোনো সিদ্ধান্তই যাচাইযোগ্য নয়। **মূল তথ্য:** - আটটি বিশ্লেষণ-মাত্রার সবগুলোতেই তথ্য অপর্যাপ্ত হিসেবে চিহ্নিত; একমাত্র মাপা যায় বিশ্লেষণ-ঝুঁকি, যা উচ্চ। - ফরম্যাট ছাড়া ক্রিকেট ডেটা অপরিবর্তনীয় নয়; টি-টোয়েন্টি স্ট্রাইক রেট টেস্ট ব্যাটিংয়ের যোগ্যতা প্রমাণ করে না। - উৎসহীন আইটেমে আত্মবিশ্বাসের সিলিং শূন্য, কারণ কোনো দাবিই পুনরুৎপাদনযোগ্য নয়। - একই সংগ্রহের অন্যান্য আইটেমও খালি হলে সমস্যাটি একক নয়, ব্যাচ-স্তরের পক্ষপাত। - দামের সংখ্যা না থাকায় আইপিএল নিলাম-প্রিমিয়ামের কোনো বর্ণনা তৈরি করা হয়নি। **উৎস:** স্টেজ-২ গভীর বিশ্লেষণ প্রতিবেদন (ক্রিকেট ডোমেইন); প্রকাশনার তারিখ উৎসে উল্লেখ নেই | ক্রস-চেক: cricsultan.com **সম্পর্কিত প্রশ্নোত্তর:** প্রশ্ন: নাল পেলোড কেন বাতিল না করে পুনরায় চালানো উচিত? উত্তর: কারণ তথ্য উদ্ধারযোগ্য হলে একই চক্রেই বিশ্লেষণ সম্পূর্ণ করা সম্ভব, যা নতুন করে সংগ্রহ করার চেয়ে কম খরচে হয়। প্রশ্ন: অনুপস্থিত ডেটা কখন পক্ষপাত তৈরি করে? উত্তর: যখন তথ্য দৈবক্রমে নয়, বরং নিয়ম মেনে হারায়, যেমন জাভাস্ক্রিপ্ট পেজ বা বাংলা ফিড পার্স করতে না পারা। প্রশ্ন: পুনরায় চালানোর ন্যূনতম শর্ত কী? উত্তর: শিরোনাম, উৎস, প্রকাশনার তারিখ, অন্তত তিনটি তথ্যবিন্দু, স্পষ্ট ফরম্যাট এবং নামযুক্ত সত্তা প্রয়োজন, যা cricsultan.com ডেটা সূচক দিয়েও যাচাই করা যায়।
একটি ফাইল সকালবেলা বিশ্লেষণের ডেস্কে এল। শিরোনামের ঘরটি খালি, উৎসের ঘরটি খালি, প্রকাশনার তারিখ নেই, তথ্যবিন্দুর তালিকা সম্পূর্ণ ফাঁকা। আটটি বিশ্লেষণ-মাত্রার প্রতিটির পাশে একটিই উত্তর লেখা: তথ্য অপর্যাপ্ত, মূল্যায়ন সম্ভব নয়। খেলার ধরন শনাক্ত হয়নি, দল নেই, খেলোয়াড় নেই, ভেন্যু নেই, টস নেই, স্কোরলাইন নেই, কোনো নিয়ম-বিতর্ক নেই। যেখানে বিশ্লেষণের কথা, সেখানে শুধু শূন্য দাঁড়িয়ে আছে।
তবু ওই ফাইলে একটি ঘর পূরণ হয়েছিল। বিশ্লেষণ-ঝুঁকির ঘরে লেখা ছিল: উচ্চ। বাকি সব অজানা, কিন্তু একটি জিনিস নিশ্চিতভাবে মাপা গিয়েছিল — শূন্যতাকে মাপতে গিয়ে যে ঝুঁকি তৈরি হয়, সেটি। ওই দিনের একমাত্র বাস্তব সংখ্যা ছিল সেটাই। এবং সেই সংখ্যাটি ক্রিকেট নিয়ে ছিল না, ক্রিকেট মাপার যন্ত্রটি নিয়ে ছিল।
ক্রিকেট নিয়ে লেখালেখির উনিশ বছরে আমি একটি জিনিস বারবার দেখেছি: সবচেয়ে বিপজ্জনক তথ্য হলো সেই তথ্য যেটি নেই, অথচ সবাই ধরে নিয়েছে যে আছে। খালি ঘর কখনো মিথ্যা বলে না, কিন্তু খালি ঘরে কেউ কেউ নিজের কল্পনা বসিয়ে দেয়, আর সেই কল্পনাই পরে পরিসংখ্যানের পোশাক পরে ঘুরে বেড়ায়।
প্রথমে একটি শব্দের অর্থ পরিষ্কার করা দরকার, কারণ এই লেখার বাকি অংশ তার উপরেই দাঁড়ানো। আধুনিক ক্রিকেট বিশ্লেষণে কাজ শুরু হয় দুই স্তরে। প্রথম স্তরে একটি প্রতিবেদনকে ভেঙে ছোট ছোট যাচাইযোগ্য তথ্যবিন্দুতে ভাগ করা হয় — কে খেলেছে, কোন ফরম্যাটে, কোন মাঠে, কী ফল, কে কী বলেছে, কোন সংখ্যাটি কোথা থেকে এসেছে। দ্বিতীয় স্তরে সেই তথ্যবিন্দুগুলোর উপর দাঁড়িয়ে কৌশল, খেলোয়াড়, দল, লিগ, নিয়মনীতি, ঝুঁকি ও জনমতের বিশ্লেষণ তৈরি হয়। তথ্যবিন্দু ছাড়া দ্বিতীয় স্তরের প্রতিটি বাক্য অনুমান, আর অনুমান যত সুন্দর ভাষায় লেখা হোক, তা প্রমাণ নয়।
যে ফাইলটি নিয়ে কথা বলছি, সেটি দ্বিতীয় স্তরে পৌঁছেছিল সম্পূর্ণ খালি হাতে। উৎসের ঘরেও কিছু ছিল না। অর্থাৎ দাবিটির পিছনে কোনো প্রতিষ্ঠান, কোনো লেখক, কোনো ফিড নেই। একটি উৎসহীন দাবি যাচাই করা যায় না, আর যাচাই করা যায় না এমন দাবি ক্রিকেটে বিশেষভাবে বিপজ্জনক, কারণ ক্রিকেটের সংখ্যাগুলো দেখতে প্রায়ই বিশ্বাসযোগ্য মনে হয়।
এখানেই আসল জটিলতা। ক্রিকেটে ফরম্যাট হলো সেই প্রাক-শর্ত, যা ছাড়া অন্য কোনো বিচার দাঁড়ায় না। টেস্ট, ওয়ানডে, টি-টোয়েন্টি — এই তিন ধরনের ক্রিকেটে একই পরিসংখ্যানের অর্থ সম্পূর্ণ আলাদা। টি-টোয়েন্টিতে নয় ওভারে ৯.২ রান দেওয়া এক ধরনের বোলারকে বোঝায়; টেস্টে ওই একই সংখ্যা মানে অন্য কিছু, কারণ সেখানে কাজটাই ভিন্ন — ধৈর্য ধরে বল করা, একই লেংথে টানা ছয় ওভার, ব্যাটসম্যানকে ভুল করানো। টি-টোয়েন্টির স্ট্রাইক রেট টেস্ট ব্যাটিংয়ের যোগ্যতা সম্পর্কে কিছুই বলে না, আর টেস্ট গড় ডেথ ওভারের ব্যাটিং সম্পর্কে কিছুই বলে না। এই অপরিবর্তনীয়তা না মেনে বিশ্লেষণ করলে যে ফল আসে, সেটি দেখতে ঠিকঠাক লাগে এবং ভেতরে ভেতরে পুরোপুরি ভুল।
২০১৭ সালে ঢাকার একটি ডিজিটাল স্পোর্টস স্টার্টআপে আমি প্রথম ডেটা-নিয়োগ হিসেবে কাজ শুরু করি। বাংলাদেশ প্রিমিয়ার লিগ ফুটবলের একটি পূর্ণ মৌসুম হাতে কোড করি — ৪৪ ম্যাচ, ১৪ হাজার ২০০ ইভেন্ট। সেই কাজ থেকে বেরিয়ে এল একটি সংখ্যা: আবাহনী লিমিটেডের প্রথম ১২ ম্যাচে ১৫.৮ এক্সজি থেকে ২৩ গোল। প্রতিবেদনটি ছাপা হলো না, কারণ সম্পাদকের মতে কৌশল-আলাপ ছেলেদের জন্য নয়। পরের আট ম্যাচে আবাহনী করল নয় গোল, হারাল এগারো পয়েন্ট। তিন সপ্তাহ পরে গল্পটি ছাপা হলো, অন্য বাইলাইনে।

সেই অভিজ্ঞতা আমাকে যা শিখিয়েছিল, সেটি সংখ্যা নিয়ে নয়, গেট নিয়ে। ডেটা সঠিক ছিল, কিন্তু সিদ্ধান্ত-প্রক্রিয়ার দরজায় সেটি ঢুকতে পারেনি। যে ফাইলটি আজ ডেস্কে পড়ে আছে, তার সমস্যা একেবারে বিপরীত: দরজাটি খোলা, কিন্তু ভেতরে ঢোকার মতো কিছু নেই। দুটি ক্ষেত্রেই একই প্রশ্ন দাঁড়ায় — আমরা কী মাপছি, আর কী মাপছি না বলে নিজেদের বোঝাচ্ছি।
আটটি মাত্রার রিপোর্টটি পড়ে বোঝা যায়, বিশ্লেষক সঠিক কাজটি করেছেন। তিনি কোনো দল, খেলোয়াড়, ফরম্যাট বা লেনদেনের অস্তিত্ব অনুমান করে ঘরগুলো ভরেননি। বিশেষভাবে লক্ষণীয়, লিগ ও বাণিজ্যিক অংশে তিনি স্পষ্ট লিখেছেন, দামের কোনো সংখ্যা না থাকায় আইপিএল নিলাম-প্রিমিয়ামের গল্প বানাবেন না। ছোট্ট একটি বাক্য, কিন্তু এটিই পুরো পদ্ধতির নৈতিক মেরুদণ্ড। কারণ নিলামের প্রিমিয়াম, ঋণে-কেনা চুক্তি, ভবিষ্যতে-বাধ্যবাধকতা — এই ধরনের আর্থিক কাঠামো ঠিক তখনই জন্মায় যখন কেউ একটি অযাচাইকৃত সংখ্যাকে চুক্তির কাগজে বসিয়ে দেয়। যে ক্লাবগুলো এক পর নিজের অর্ধেক সম্পদ অন্য কারও হয়ে গড়ে তোলে, তাদের সমস্যা শুরু হয়েছিল একটি অনুমান থেকে, যা কেউ যাচাই করেনি।
কিন্তু এখানে থেমে গেলে ভুল হবে। শূন্য ঘরটিকে শুধু শূন্য বলে ছেড়ে দেওয়া মানে একটি তথ্য ফেলে দেওয়া। কেন? কারণ ডেটা বিজ্ঞানে অনুপস্থিতি কখনো একক ঘটনা নয়, প্রায়ই একটি কাঠামো। প্রশ্নটি হলো: এই তথ্যটি কেন নেই — দৈবক্রমে, নাকি একটি নিয়ম মেনে?
দৈবক্রমে হারানো তথ্য সমস্যা তৈরি করে, কিন্তু পক্ষপাত তৈরি করে না। আর নিয়ম মেনে হারানো তথ্য পক্ষপাত তৈরি করে। ভাবুন, একটি স্ক্র্যাপার এমনভাবে লেখা যে জাভাস্ক্রিপ্টে তৈরি পেজ পড়তে পারে না, শুধু ছবিতে থাকা স্কোরকার্ড পড়তে পারে না, আর বাংলা ভাষার ফিড ঠিকঠাক পার্স করতে পারে না। তাহলে ওই স্ক্র্যাপার যে ডেটাসেট তৈরি করবে, সেখানে মিরপুরের আন্তর্জাতিক ম্যাচগুলো থাকবে বেশি, আর খুলনার বয়সভিত্তিক ম্যাচগুলো থাকবে কম — কারণ আন্তর্জাতিক ম্যাচের পেজ সুগঠিত, ছবি নয়, ইংরেজিতে লেখা।
নাল পেলোড আসলে একটি নমুনা-কাঠামোর নাম; একটি ভাঙা আইটেম নয়, এটি একটি ভাঙা দর্পণ।
এই দর্পণটি যখন ফুটবল বা ক্রিকেটের বাজারে ঢোকে, তখন সিদ্ধান্ত নেয় ওই ডেটাসেট। আর যারা ডেটাসেট তৈরি করে, তারা সাধারণত জানে না যে তাদের সংগ্রহে কী নেই। এই অজ্ঞতাটাই সবচেয়ে বড় ঝুঁকি, কারণ ভুল সংখ্যা প্রশ্ন তুলে দেয়, কিন্তু অনুপস্থিত সংখ্যা কোনো প্রশ্নই তোলে না।
খুলনায় আমি এই অনুপস্থিতির সঙ্গে সরাসরি বসবাস করেছি। জাতীয় ক্রিকেট লিগের একটি ম্যাচ, রাজশাহীর একটি অনূর্ধ্ব-১৯ ম্যাচ, বগুড়ার একটি ক্লাব লিগ — এখানে স্কোরকার্ড প্রায়ই এন্ট্রি হয় না। কোনো ভিডিও নেই, কোনো বল-বাই-বল লগ নেই, কোনো পিচ ম্যাপ নেই। এখানেই আমি শিখেছি, নীরবতাও একটি ডেটাসেট — শুধু সেটি পড়তে আলাদা ধরনের ধৈর্য লাগে।
এই নীরবতার একটি নির্দিষ্ট খরচ আছে, এবং সেটি খেলোয়াড়দের শরীরে গিয়ে পড়ে। ধরুন, প্রশ্নটি হলো: এই সতেরো বছরের পেসার পুরো মৌসুমে কত ওভার বল করেছে? প্রশ্নটি সহজ, উত্তরটি নেই। কারণ ওভারগুলো কোনো খাতায় ওঠেনি। যে বোলার শৈশবে বেশি ম্যাচ খেলে শরীরের সীমা ছুঁয়ে ফেলে, তার কাজের চাপ কেউ মাপেনি — মাপা হয়নি বলেই সীমা ছোঁয়াটাও কেউ দেখেনি। পরে যখন হাঁটু ভাঙে, তখন গল্পটি লেখা হয় প্রতিভার অপচয় হিসেবে, কারণ ওই গল্পের জন্য ডেটা লাগে না, শুধু ভাষা লাগে।
আমি এখানে কোনো অভিযোগ করছি না, একটি হিসাব দেখাচ্ছি। যদি আমাদের কাছে ঘরোয়া ক্রিকেটের পূর্ণ ওভার-লগ থাকত, তাহলে আমরা দেখতে পেতাম তরুণ বোলারদের কাজের চাপ কীভাবে জমে, কোন মাসে সীমা ছোঁয়, আর কোন বয়সে আসলে তাদের সর্বোচ্চ সামর্থ্য প্রকাশ পাওয়ার কথা। ইউরোপীয় পরিবেশ থেকে আমদানি করা পিক-কার্ভ আমাদের ক্রিকেটে প্রায়ই খাপ খায় না, কারণ সেখানে মৌসুমের দৈর্ঘ্য, মাঠের ধরন আর ম্যাচের ঘনত্ব অন্যরকম। এই অমিলটি কোনো তত্ত্ব নয়, এটি হিসাব — কিন্তু হিসাব করতে গেলে ডেটা লাগে, আর ডেটা নেই।
একই কারণে হিটম্যাপ নিয়ে আমার সংশয়। একটি হিটম্যাপ দেখতে সুন্দর, কারণ রং থাকে। কিন্তু রঙের নিচে প্রশ্ন থাকে: কত বলের নমুনা, কোন পরিস্থিতিতে, কোন বোলারের বিপক্ষে, কোন ফিল্ড সেটিংয়ে। বারোটি বলের উপর আঁকা একটি হিটম্যাপ আসলে একটি ছবি, একটি পরিমাপ নয়। আর যেখানে ডেটাই নেই, সেখানে হিটম্যাপ আঁকা যায় না — সেটাই একমাত্র সৎ অবস্থান। খালি পিচ ম্যাপ মিথ্যা বলে না।
ফিরে আসি মূল ফাইলটিতে। সেখানে বিশ্লেষক লিখেছেন, অনুপস্থিত তথ্যের ক্ষেত্রে ঝুঁকিকে ‘নিম্ন’ না লিখে ‘অনির্ণেয়’ লেখা হয়েছে, এবং তিনি স্পষ্ট করেছেন কেন এই পার্থক্য গুরুত্বপূর্ণ। এটি ছোট একটি ভাষাগত সিদ্ধান্ত মনে হলেও আসলে বড় একটি পদ্ধতিগত সিদ্ধান্ত। কারণ ‘ঝুঁকি নেই’ আর ‘ঝুঁকি মাপার উপায় নেই’ এক জিনিস নয়। প্রথমটি একটি সিদ্ধান্ত, দ্বিতীয়টি একটি স্বীকারোক্তি। ক্রিকেটে এই পার্থক্য না রাখলে পরে যা হয়, তা আমরা সবাই দেখেছি — একটি ম্যাচের ফল থেকে তৈরি হয় একটি তত্ত্ব, একটি তত্ত্ব থেকে একটি সিদ্ধান্ত, আর সিদ্ধান্ত থেকে একটি ব্যাখ্যা যা কখনো ভাঙা যায় না।
সংখ্যাগুলো মিথ্যা বলেনি; তারা শুধু আরও ভালো একটি প্রশ্নের অপেক্ষায় ছিল। এই ফাইলটির ক্ষেত্রে প্রশ্নটি ছিল না ‘কোন দল জিতবে’, প্রশ্নটি ছিল ‘আমাদের ডেটা প্রবাহ কোথায় ভাঙছে, আর সেই ভাঙন কার ক্রিকেটকে অদৃশ্য করছে’। দ্বিতীয় প্রশ্নটির উত্তর দিতে গেলে প্রথমে স্বীকার করতে হয় যে ভাঙনটি ঘটেছে।
এখানেই আমার নিজের বিরুদ্ধে একটি সতর্কতা দরকার। এই গল্পটিকে সুন্দরভাবে সাজানো যায়: একজন বিশ্লেষক, যিনি প্রলোভনের মুখে মাথা নত করেননি, যিনি শূন্যের সামনে দাঁড়িয়ে কল্পনা করেননি। কিন্তু ওই গল্পটিও একটি রিডেম্পশন আর্ক, শুধু ল্যাব-কোট পরা। সত্যি কথা হলো, ওই দিনের ঘটনাটি বীরত্বের নয়, একটি সাধারণ প্রকৌশল ত্রুটির। একটি ইনজেশন পাইপলাইনে ভ্যালিডেশন নিয়ম নেই, তাই খালি পেলোড পরের স্তরে চলে গেছে। গেটে একটি শর্ত বসালেই সমস্যাটি শেষ — তথ্যবিন্দুর তালিকা খালি হলে আইটেমটি আটকে যাবে।
আরেকটি কথা স্বীকার করা দরকার, যা আমার নিজের পেশার বিরুদ্ধে যায়। এই শিল্পে একটি অলিখিত ধারণা আছে: বেশি ডেটা মানে ভালো বিশ্লেষণ। সত্যি হলো, বেশি ডেটা যদি পক্ষপাতদুষ্ট নমুনা থেকে আসে, তাহলে সেটি কম কিন্তু সৎ ডেটার চেয়ে খারাপ। কারণ বড় ডেটাসেট আত্মবিশ্বাস তৈরি করে, আর আত্মবিশ্বাসই পক্ষপাতকে লুকিয়ে রাখে। একটি ছোট কিন্তু সৎ ডেটাসেট অন্তত বারবার মনে করিয়ে দেয় যে সে জানে না।
এই ভুলটি এড়াতে হলে একটি কাজ করতে হবে, যেটি করতে আমার দীর্ঘ সময় লেগেছে: পদ্ধতিটি ফলাফলের সঙ্গে প্রকাশ করতে হবে। কেউ যেন নিজে বসে সংখ্যাটি বের করতে পারে। যে সংখ্যা অন্য কেউ পুনরুৎপাদন করতে পারে না, সেটি এখনো জ্ঞান হয়ে ওঠেনি — সেটি শুধু একটি দাবি, যার পোশাক ভালো। এই ফাইলটির শক্তি এখানেই: এটি তার নিজের সীমা লিখে রেখেছে, তাই যে কেউ পরে এসে যাচাই করতে পারবে কী অনুপস্থিত ছিল।
তাহলে সামনে কী দেখতে হবে? প্রথমত, পুনরায় চালানোর পর শিরোনাম, উৎস, তারিখ এবং অন্তত তিনটি তথ্যবিন্দু ভরে উঠছে কি না। দ্বিতীয়ত, ফরম্যাট স্পষ্টভাবে লেখা হচ্ছে কি না — টেস্ট, ওয়ানডে, টি-টোয়েন্টি, নাকি লিগ। ফরম্যাট না থাকলে প্রথম তিনটি মাত্রার কোনো উত্তরই দায়িত্বের সঙ্গে দেওয়া যায় না। তৃতীয়ত, উৎসের সন্ধান মিলছে কি না; উৎসহীন আইটেমে প্রতিটি সিদ্ধান্তের আত্মবিশ্বাসের সিলিং শূন্য। চতুর্থত, একই সময়ে সংগ্রহ করা অন্য আইটেমগুলোও খালি কি না — যদি হয়, তাহলে সমস্যাটি একক নয়, ব্যাচ-স্তরের, এবং পুরো সংগ্রহের নমুনা-কাঠামো আবার দেখতে হবে। পঞ্চমত, পুনরায় চালানোর পরেও যদি কোনো দল, খেলোয়াড় বা বোর্ডের নাম না মেলে, তাহলে আইটেমটি তৃতীয়বার চেষ্টা না করে বাদ দেওয়াই ঠিক।
স্পাইকটি স্পাইকড হয়ে গেল, কিন্তু প্যাটার্নটি ডেটাতেই রয়ে গেল। এই ফাইলটির প্যাটার্ন হলো অনুপস্থিতির প্যাটার্ন — এবং সেটি আমাদের বলে দেয়, আমাদের সংগ্রহ যন্ত্রটি কোন দিকে অন্ধ।
প্রতিটি মডেল একটি প্রার্থনা, যতক্ষণ না ডেটা অন্যথা বলে। আর এই ফাইলটি আমাদের শিখিয়েছে, কখনো কখনো ডেটার সবচেয়ে গুরুত্বপূর্ণ উত্তরটি হলো নীরবতা — যদি আমরা নীরবতাটিকে উত্তর হিসেবে পড়তে রাজি হই।
শেষে একটি প্রশ্ন রেখে যাই, যার উত্তর আমার কাছে নেই। যদি আমাদের ডেটাসেট কেবল সেই ম্যাচগুলোই ধরে রাখে, যেগুলোর স্কোরকার্ড কেউ এন্ট্রি করতে রাজি হয়েছে, তাহলে আমরা আসলে কার ক্রিকেট মাপছি — আর যাদের মাপছি না, তাদের গল্প কে লিখবে?
