বিশ্ব ক্রিকেটখালি স্প্রেডশিটও সত্যি বলে: ক্রিকেট ডেটা পাইপলাইনে নাল-ফলাফলের নিরীক্ষা
বিশ্ব ক্রিকেট

খালি স্প্রেডশিটও সত্যি বলে: ক্রিকেট ডেটা পাইপলাইনে নাল-ফলাফলের নিরীক্ষা

**মূল উত্তর:** একটি ক্রিকেট বিশ্লেষণ পাইপলাইনে প্রথম ধাপের পেলোড শূন্য ফিরলে সেটি ব্যর্থতা নয়, একটি বৈধ ফলাফল। শূন্য তথ্যবিন্দু থাকলে দ্বিতীয় ধাপের বিশ্লেষণ চালানো সম্ভব নয়; সেক্ষেত্রে পাইপলাইন থামিয়ে তোলার ত্রুটি শনাক্ত করা উচিত। **মূল তথ্য:** - শূন্য তথ্যবিন্দু, শূন্য সত্তা ও অনুপলব্ধ সূত্র — এই তিনটি একসঙ্গে উৎস-নিষ্কাশনে ত্রুটি নির্দেশ করে। - ডোমেইন লেবেল ‘ক্রিকেট_ওয়ার্ল্ড’ এবং ধরন ‘অশ্রেণীবদ্ধ’ — ট্যাক্সোনমি ম্যাপিং সমস্যার লক্ষণ। - ফেচ স্তরে এইচটিটিপি স্ট্যাটাস, চূড়ান্ত ইউআরএল ও বডি-বাইট দৈর্ঘ্য লগ করলেই মূল কারণ এক ধাপে ধরা পড়ে। - বিশ্লেষণ চালানোর সর্বনিম্ন শর্ত: তিনটি তথ্যবিন্দু, একটি দৃষ্টিভঙ্গি, একটি সূত্র ও একটি নামকরা সত্তা। - ব্যাচের দুই শতাংশের বেশি পেলোড খালি ফিরলে সমস্যাটি ব্যবস্থাগত, ব্যক্তিগত নয়। **সূত্র ও তারিখ:** Stage-2 Deep Analysis — Cricket Domain (অভ্যন্তরীণ পাইপলাইন প্রতিবেদন)। মূল নিবন্ধের প্রকাশকাল অনুপলব্ধ; Stage-1 পেলোডে কোনো তারিখ ছিল না। **সম্পর্কিত প্রশ্নোত্তর:** প্রশ্ন: খালি পেলোড মানেই কি স্ক্র্যাপার ব্যর্থ? উত্তর: না; স্কোরকার্ড বা ফিক্সচার স্টাবও খালি ফিরতে পারে, তাই ব্যাচের অন্য সারিগুলোর স্বাক্ষর মিলিয়ে দেখা প্রয়োজন। প্রশ্ন: সূত্র অনুপলব্ধ হলে কী ক্ষতি? উত্তর: সূত্রের মান যাচাই করা যায় না, ফলে আত্মবিশ্বাসের মাত্রা হিসাব করা অসম্ভব হয়ে পড়ে। প্রশ্ন: নো-রেজাল্ট কি আসলেই ফলাফল হিসেবে গণ্য? উত্তর: হ্যাঁ; ২০১৯ বিশ্বকাপের গ্রুপ পর্বে চারটি ম্যাচ বল না গড়িয়েই পরিত্যক্ত হয়েছিল এবং সেই পয়েন্ট পয়েন্ট টেবিলে গোনা হয়েছিল।

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

শিরোনাম: অনুপলব্ধ। সূত্র: অনুপলব্ধ। ধরন: অশ্রেণীবদ্ধ। তথ্যবিন্দু: শূন্য।

কার্সার জ্বলছে। চা ঠান্ডা। আর মাথার ভেতরে সেই পুরোনো কণ্ঠস্বর, যেটা চার দশক ধরে প্রতিটি ডেডলাইনে ফিসফিস করে ওঠে — কিছু একটা লিখে ফেলো, ক্রিকেট নিয়ে তো সবাই কিছু না কিছু বলতে পারে।

ষাট-ছয় বছর বয়সে এসে একটা জিনিস পরিষ্কার বুঝি। বিশ্লেষণে সবচেয়ে দামি বাক্য হলো সেই বাক্যটা, যেটা আপনি ফাঁকা জায়গা ভরাতে লিখতে যাচ্ছিলেন, কিন্তু লেখেননি। খালি সেলটা কোনো লজ্জা নয়; খালি সেলটা একটা ফলাফল। আর এই লেখাটা সেই ফলাফলের নিরীক্ষা।

দুই স্তরের পাইপলাইন, এক স্তরের নীরবতা

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

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

ক্রিকেটে এই অবস্থাটা চেনা। ডিআরএস চালু আছে, বড় স্ক্রিনে সব প্রস্তুত, কিন্তু বল-ট্র্যাকিং ডেটা এসে পৌঁছায়নি। তখন থার্ড আম্পায়ার কী করেন? তিনি সিদ্ধান্ত দেন না। কারণ ট্র্যাকিং ছাড়া যেকোনো সিদ্ধান্ত হবে অনুমান, আর অনুমানকে সিদ্ধান্ত বলে চালিয়ে দেওয়াটা পেশাদারিত্বের অভাব। স্কোরার যদি খাতায় পৃষ্ঠা ফাঁকা রেখে স্কোরবোর্ডে ২৪০/৬ তুলে দেন, তাহলে দোষ স্কোরবোর্ডের নয়, দোষ সেই ফাঁকাটা গোপন করার।

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

খালি পেলোড আসলে কী বলে

এখানেই অনেকে ভুল করেন। তাঁরা ভাবেন, খালি মানে কিছু নেই, কাজেই বলার কিছু নেই। ভুল। একটা খালি পেলোড নিজেই তথ্য দেয়, যদি আপনি ঠিক জায়গায় তাকান।

প্রথম সাক্ষ্য — ফরম্যাট-শনাক্তকারীর অনুপস্থিতি। কোনো ক্রিকেট লেখা টেস্ট, ওয়ানডে, টি-টোয়েন্টি বা হান্ড্রেড — যেটাই হোক, সেটার ফরম্যাট লেখার ভেতরে অন্তত একবার শব্দ হয়ে ফিরে আসে। ফরম্যাট একবারও না ফেরার অর্থ হলো লেখাটা কখনোই সঠিকভাবে পড়া হয়নি।

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

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

চতুর্থ সাক্ষ্য — সূত্র ক্ষেত্রের শূন্যতা। সূত্র যদি অনুপলব্ধ হয়, তাহলে সূত্রের মান যাচাই করার কোনো উপায় নেই। আর সূত্র যাচাই না হলে আত্মবিশ্বাসের মাত্রা (কনফিডেন্স ট্যাগিং) হিসাব করে বের করাই যায় না।

এই চারটে সাক্ষ্য একসঙ্গে পড়লে একটা সম্ভাবনা সবচেয়ে জোরালো হয়ে ওঠে: উৎস লেখাটি সত্যিই ফাঁকা ছিল না; বরং সেটি তোলার যন্ত্রশৃঙ্খলে কোথাও একটা জায়গায় ভেঙেছে। পেওয়াল, জাভাস্ক্রিপ্টে গড়া পৃষ্ঠা, রিডাইরেক্ট, অথবা এমন পৃষ্ঠা যেটা খুলেছে কিন্তু ভেতরে টেক্সট নেই। আত্মবিশ্বাসের মাত্রা মাঝারি, কারণ লগ ছাড়া এই কারণগুলোকে আলাদা করা যায় না।

তিনটি ঝুঁকি, একটি অজুহাত

ফাঁকা পেলোড নিয়ে আমার প্রধান ভয় বিশ্লেষণী নয়, প্রক্রিয়াগত।

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

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

টেমপ্লেটের সমস্যা এখানেই। টেমপ্লেট completeness দাবি করে। শিরোনাম, সূত্র, সত্তা, সময়-সংবেদনশীলতা — সব ঘর ভরতে হয়। আর যে ঘর ভরতে হয়, সেটা মানুষ ভরে ফেলে বিশ্বাসযোগ্য শোনানো গল্প দিয়ে। এই চাপটাই সবচেয়ে বিপজ্জনক, কারণ এতে মিথ্যা দেখতে মিথ্যার মতো লাগে না — দেখতে বিশ্লেষণের মতো লাগে।

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

একটা খাতা রাখার কথা এখানে বলি। ক্রিকেটে আমরা আসলে অনেক আগে থেকেই অপরিবর্তনীয় খাতা রাখি — স্কোরকার্ড, ডিআরএস লগ, টসের রেকর্ড। ম্যাচ শেষ হওয়ার পর কেউ স্কোরকার্ডের কলাম নিঃশব্দে বদলে দিতে পারে না। ডেটা পাইপলাইনের ক্ষেত্রেও ঠিক এই শৃঙ্খলা দরকার: প্রতিটি এন্ট্রির পাশে কে এনেছে, কখন এনেছে, কোন অবস্থায় এনেছে — এই বিবরণ অপরিবর্তনীয়ভাবে জমা থাকুক। যে ব্যবস্থায় ভুলের দাগ মোছা যায় না, সেখানে ভুল ধরাও সহজ। প্রমাণ-শৃঙ্খলা (provenance) ছাড়া বিশ্লেষণ যতই চকচকে হোক, তার ভিত্তি বালির ওপর।

সর্বনিম্ন গ্রহণযোগ্য ইনপুট

অনেকেই ভাবেন, বিশ্লেষণ চালাতে বিশাল ডেটা লাগে। আমার অভিজ্ঞতা উল্টো। বিশ্লেষণ চালাতে লাগে একটা সংজ্ঞায়িত সর্বনিম্ন সেট, আর সেটা ছোট।

খালি স্প্রেডশিটও সত্যি বলে: ক্রিকেট ডেটা পাইপলাইনে নাল-ফলাফলের নিরীক্ষা

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

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

এই পার্থক্যটা আমি বহুবার জীবনে টের পেয়েছি। দুই হাজার আঠারো সালে লিভারপুলের গোলকিপার আলিসন বেকারকে রোমা থেকে ৬৬.৮ মিলিয়ন পাউন্ডে কেনার সময় আমি হাইলাইট রিল দেখিনি, সিরি আ-র সেভ শতাংশ দেখেছি — ৭৯.৩ শতাংশ, আর xG বাঁচানো প্লাস ৮.৪। তারপর হিসাব কষে বলেছিলাম, লিভারপুলের বিপক্ষে প্রত্যাশিত গোল কমবে ম্যাচে অন্তত শূন্য দশমিক তিনটি। ওই মৌসুমে তারা লিগে মাত্র ২২টি গোল খেয়েছিল। এটা ভাগ্যের কথা নয়, নমুনার কথা। একটা ট্রান্সফার ফি একটা প্রকল্পনা; পুরো মৌসুম তার পিয়ার রিভিউ।

ঠিক সেই একই শৃঙ্খলা ফাঁকা পেলোডের ক্ষেত্রে প্রযোজ্য। যেখানে নমুনা নেই, সেখানে সিদ্ধান্ত নেই। যেখানে সিদ্ধান্ত নেই, সেখানে নীরবতা একটা পেশাদার উত্তর।

নো-রেজাল্টও একটি ফলাফল

এখানে একটা পাল্টা প্রশ্ন তোলা দরকার, কারণ পাল্টা প্রশ্ন না তুললে এই পুরো লেখাটা নিজেই একধরনের টেমপ্লেট-পূজায় পরিণত হবে।

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

দ্বিতীয় পাল্টা যুক্তি আরও অস্বস্তিকর। আসল কেলেঙ্কারি খালি পেলোড নয়; আসল কেলেঙ্কারি হলো এমন একটা ব্যবস্থা, যা ভরাট পেলোডের চেয়ে বেশি পরিমাণে পেলোড চায়। টিপ-অর্থনীতি, থাম্বনেইল-লজিক, দিনে পাঁচটা ভিডিও — এই কাঠামোতে ‘কিছু না বলা’ মানে ব্যর্থতা, যদিও ‘কিছু বলা’ অনেক সময় তার চেয়ে বড় ব্যর্থতা।

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

পরের ব্যাচের জন্য সংকেত

আমি স্প্রেডশিট বন্ধ করলাম, চায়ের কাপটা তুলে রাখলাম। চারশো বারোটা সারির কাজ শেষ, একটার জন্য উত্তর নেই। সেটাই এই রাতের সবচেয়ে সৎ ফলাফল।

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

ছেষট্টি বছর আমাকে ধৈর্য শিখিয়েছে; ডেটা শিখিয়েছে কেন সেই ধৈর্য লাভজনক। কিংবদন্তিদের জন্য আমি আলাদা খাতা রাখি, কারণ স্মৃতি নিজের কলাম নিজেই সম্পাদনা করে। এই লেখাটা সেই খাতারই একটা পৃষ্ঠা — যে পৃষ্ঠায় লেখা আছে, আজ কিছু পাওয়া যায়নি।

প্রশ্নটা এখন আপনার জন্য। গত মাসে যে সিদ্ধান্তগুলো আত্মবিশ্বাসের সঙ্গে প্রকাশিত হলো, তার কতগুলো এমন পেলোডের ওপর দাঁড়িয়ে ছিল, যার ভেতরটা কেউ একবারও খুলে দেখেনি?

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