খালি ইনপুট, ভরা ফরম্যাট: ক্রিকেট ডেটার যাচাই-লেজার
রাত সাড়ে বারোটা, রংপুরের টেবিলে ল্যাপটপ খোলা। একটি বিশ্লেষণ-নথি স্ক্রল...
রাত সাড়ে বারোটা, রংপুরের টেবিলে ল্যাপটপ খোলা। একটি বিশ্লেষণ-নথি স্ক্রল করছি—আটটি অধ্যায়, প্রতিটিতে টেবিল, প্রতিটি টেবিলে সারি, প্রতিটি সারিতে একই বাক্য: “N/A – insufficient information”। এটি একটি ক্রিকেট বিশ্লেষণের প্রতিবেদন, অথচ ভেতরে একটিও ম্যাচ নেই, একটিও ব্যাটসম্যান নেই, একটিও রান বা একটি বলের বর্ণনা নেই। কাঠামো নিখুঁত, বিষয়বস্তু শূন্য।
বছরের পর বছর ম্যাচ দেখে, হাতে লিখে, সংখ্যা মিলিয়ে আমি উল্টো ছবিতে অভ্যস্ত—তথ্য অনেক, কাঠামো অগোছালো। আজ উল্টোটা: গোছানো কাঠামো, কিন্তু তথ্য নেই। আর তখনই মনে হলো, আসল বিপদ এই নথিতে নয়, এর পরের ধাপে। এই শূন্য নথি যদি পরের মডেলে চলে যায়, আর সেই মডেল “যেভাবেই হোক আউটপুট দিতে হবে” চাপে পড়ে, তাহলে সে একটা ম্যাচ বানিয়ে ফেলবে—একটা নাম, একটা স্কোর, একটা ভেন্যু। সব বানানো, কিন্তু দেখতে এতটাই বিশ্বাসযোগ্য যে কেউ প্রশ্ন করবে না। একটি খালি কাগজ আর একটি ভরা মিথ্যার মধ্যে দূরত্ব মাত্র এক ধাপ।
আমি শুরু করেছিলাম ৪৪টি ম্যাচ, একটি রংপুরের নোটবুক আর সহজ সংখ্যার প্রতি সন্দেহ দিয়ে। ২০১৭ সালে, ষোলো বছর বয়সে, রংপুর স্টেডিয়ামে স্পাইরাল নোটবুক নিয়ে বসে বাংলাদেশ প্রিমিয়ার লিগের পুরো মৌসুম হাতে কোড করেছিলাম—শটের অবস্থান, পাসের দিক, মিনিট, ফলাফল। কারণ স্থানীয় কোনো মাধ্যম গোল আর কার্ডের বাইরে কিছু ছাপত না। আবাহনী লিমিটেড ঢাকার ক্যাম্পেইনের আমার গ্রিড দেখাল, ওদের ওপেন-প্লে গোলের ৬১ শতাংশ এসেছিল বাঁ দিকের হাফ-স্পেস থেকে—এমন একটা প্যাটার্ন তখন কোনো বাংলাদেশি সাংবাদিক নাম দেননি। শিটগুলোর ছবি অনলাইনে দিয়েছিলাম; এগারো জন উত্তর দিয়েছিল, একজন বিশ্ববিদ্যালয়ের কোচ।
সেই এগারোটি উত্তর বিশাল কোনো জনসমাগম ছিল না। কিন্তু সেগুলো আমাকে একটা শিক্ষা দিয়েছিল, যা পরে বারবার ফিরে এসেছে: একটি দাবি তখনই মূল্য পায়, যখন তার সঙ্গে থাকে একটি খোলা রেকর্ড। কেউ আমার সিদ্ধান্ত মানতে বাধ্য ছিল না; কেউ চাইলে আমার কোন কলাম প্রশ্ন করতে পারত। যাচাইয়ের সুযোগটাই দাবিটাকে দাঁড় করিয়েছিল।
নোটবুকের কলাম-গঠনটাই পরে আমার প্রতিটি ডেটাসেটের স্থায়ী ছাঁচ হয়ে যায়: ঘটনা, অবস্থান, মিনিট, প্রেক্ষাপট। চারটি কলাম। মজার কথা, এই চারটি কলাম আসলে যা করে, তা কোনো স্কোরকার্ড করে না—এটি প্রতিটি ঘটনাকে একটি টাইমস্ট্যাম্পযুক্ত, ক্রমিক, যাচাইযোগ্য রেকর্ডে পরিণত করে। তখন আমি জানতাম না, এই ছাঁচই একদিন আমার কাছে লেজার-ধারণার দরজা খুলে দেবে।
২০১৮ সালে, সতেরো বছর বয়সে, রাশিয়া বিশ্বকাপের চুয়ান্নটি ম্যাচ একটি একুশ ইঞ্চি টেলিভিশনে দেখে প্রায় বারোশো শট-কোঅর্ডিনেট গুগল শিটে লিখেছিলাম, নোটবুকের কলাম-যুক্তি ধরে একটা xG মডেল বানিয়ে। ক্রোয়েশিয়ার টানা তিনটি অতিরিক্ত সময়ের ম্যাচ—ডেনমার্ক, রাশিয়া, ইংল্যান্ড—আমার পরীক্ষার কেস হয়েছিল। ইংল্যান্ড সেমিফাইনালে ওরা কভার করেছিল ১৪৩.৬ কিলোমিটার, টুর্নামেন্টে সর্বোচ্চ। ঢাকার একটি সাইট আমার তিন হাজার শব্দের বিশ্লেষণ ছাপল, দিল চার হাজার টাকা।

প্রথম পারিশ্রমিক পাওয়া বাইলাইন আমাকে শিখিয়েছিল—একটি মডেল ঠিক ততটাই সৎ, যতটা সৎ তার অনুমান। সেদিন থেকে প্রতিটি লেখার সঙ্গে পদ্ধতি-ফুটনোট যুক্ত করা শুরু করি। কারণ খোলা, পুনরুৎপাদনযোগ্য মডেল মতামতকে হারিয়ে দেয়—তবে শুধু তখনই, যখন অনুমানগুলো লুকানো না থাকে।
২০২০ সালে, বৈশ্বিক বিরতির সময়, বন্ধ দরজার পেছনে খেলা বুন্দেসলিগার ৮৩টি ম্যাচ কোড করেছিলাম। খালি গ্যালারি আমাকে শিখিয়েছিল, ফুটবল হোক বা ক্রিকেট, দর্শক একটি চলক—অলৌকিক কিছু নয়। হোম-উইন হার ৪৩.৩ শতাংশ থেকে নেমে এসেছিল ৩৩.৩ শতাংশে। ব্যাপারটা একটা সমাজবিজ্ঞানের টার্ম পেপারে লিখেছিলাম; দুটি জার্নাল ফিরিয়ে দিল, একই যুক্তির ব্লগ-লেখা পড়ল নয় হাজার মানুষ। দুই প্রত্যাখ্যান আমাকে শিখিয়েছিল—প্রথমে প্রকাশ করো, তারপর জার্নালে পাঠাও, কারণ সত্যের গতি প্রতিষ্ঠানের গতির চেয়ে দ্রুত।
আজ আমি যে সমস্যাটা নিয়ে লিখছি, তা এই তিনটি অভিজ্ঞতার সংযোগস্থলে দাঁড়ানো। সেটা কোনো নির্দিষ্ট ম্যাচ নয়, কোনো খেলোয়াড় নয়—সেটা হলো সেই নথি, যেখানে কাঠামো সম্পূর্ণ আর তথ্য শূন্য, এবং সেই শূন্যতা ভরে দেওয়ার জন্য অপেক্ষা করছে একটি প্রক্রিয়া।
ধরা যাক, একটি স্বয়ংক্রিয় ক্রিকেট-বিশ্লেষণ পাইপলাইন। শুরুতে একটি সূত্র থেকে তথ্য-বিন্দু বের করা হয়; এরপর সেই বিন্দুগুলো আটটি মাত্রায় বিশ্লেষণ করা হয়; শেষে সব মিলিয়ে একটা গল্প বানানো হয়। যে নথিটি আমি হাতে পেয়েছি, সেটি এই পাইপলাইনের বিশ্লেষণ-ধাপ—এবং তার ইনপুট ছিল খালি। প্রথম ধাপ কোনো তথ্য-বিন্দু দেয়নি, তাই দ্বিতীয় ধাপ প্রতিটি ঘরে সৎভাবে লিখেছে “অপর্যাপ্ত তথ্য”। পেশাগতভাবে এটি সঠিক সিদ্ধান্ত। কিন্তু প্রশ্ন হলো, পাইপলাইনে এমন একটা স্তর আছে কি, যা এই শূন্যতা ধরে ফেলে?
এখানেই আমার মূল যুক্তি: ক্রিকেট ডেটার সবচেয়ে বড় দুর্বলতা ভুল সংখ্যা নয়, বরং এমন একটি রেকর্ড-ব্যবস্থা, যেখানে ভুল ঢুকলে তা ধরা পড়ে না। আর ঠিক এই জায়গাতেই ব্লকচেইনের কেন্দ্রীয় ধারণাটি কাজে লাগে—শৃঙ্খল, অপরিবর্তনীয়তা, আর অংশগ্রহণকারীদের মধ্যে যাচাই। ক্রিপ্টো-উৎসাহ নয়; শুধু রেকর্ড-সততা।
ভাবুন, প্রতিটি হাতে-কোড করা ঘটনা একটি ব্লক। প্রতিটি ব্লকে থাকে টাইমস্ট্যাম্প, অবস্থান, মিনিট, প্রেক্ষাপট—আমার নোটবুকের চার কলাম—আর আগের ব্লকের একটি হ্যাশ। ব্লকগুলো শুধু যুক্ত করা যায়, মুছে ফেলা যায় না, মাঝখানে ঢোকানো যায় না। এখন যদি কেউ একটা বানানো ম্যাচ, বানানো স্কোর, বানানো ব্যাটিং-গড় রেকর্ডে ঢোকাতে চায়, তাহলে শৃঙ্খল ভেঙে যাবে—হ্যাশ মিলবে না, যাচাই ব্যর্থ হবে। কৃত্রিম বুদ্ধিমত্তা যতই বিশ্বাসযোগ্য বাক্য লিখুক, সে বৈধ হ্যাশ তৈরি করতে পারবে না।
জালিয়াতি পাইপলাইনে ঢোকে তিনটি আলাদা দরজা দিয়ে। নিষ্কাশন স্তরে সূত্র খালি, পেওয়াল, ছবি-ভিত্তিক বা ভুল ভাষার হতে পারে; সেখান থেকে ভুল তথ্য-বিন্দু বেরোয়। বিশ্লেষণ স্তরে মডেল চাপে পড়ে বানায়; এখানেই “অপর্যাপ্ত তথ্য” লেখা সবচেয়ে কঠিন, কারণ সিস্টেম আউটপুট দাবি করে। আর সমন্বয় স্তরে খালি নথি আর ভরা নথি একসাথে গুনে ফেলা হয়, আর কেউ খেয়াল করে না কোনটা আসলে শূন্য ছিল।
যে নথিটি আমি পেয়েছি, তা সবচেয়ে স্পষ্টভাবে এই শেষ দরজাটাই উন্মোচন করে। কারণ আগের দুটি দরজা এখানে সৎ ছিল—প্রথম স্তর কিছু দেয়নি, দ্বিতীয় স্তর বানায়নি। কিন্তু যদি সেই শূন্য নথি আরও নিচে চলে যায়, সমষ্টিগত পরিসংখ্যানে ঢুকে যায়, তখন একটি খালি বিশ্লেষণ “সম্পন্ন বিশ্লেষণ” হিসেবে গোনা হবে। এটাই সবচেয়ে নীরব বিপদ: আউটপুটের অস্তিত্ব আছে, কিন্তু বিষয়বস্তু নেই।
এখানে তথ্য-লাভ শব্দটা মনে রাখা দরকার। একটি লেখা তখনই পাঠকের সময়ের যোগ্য, যখন সে এমন কিছু জানায় যা আগে জানত না। একটি খালি বিশ্লেষণ, যার প্রতিটি ঘরে অপর্যাপ্ত তথ্য, পাঠকের জন্য শূন্য তথ্য-লাভ। কিন্তু বিপদটা পরোক্ষ: যদি সেই খালি লেখা সম্পন্ন বলে চিহ্নিত হয়, তাহলে পাইপলাইন ভাবে তথ্য-লাভ হয়েছে, আর পরের বার একই খালি ছাঁচে ভরা মিথ্যা ঢুকিয়ে দেওয়া হয়। শূন্য তথ্য-লাভ, যদি সৎভাবে শূন্য বলে ঘোষণা করা না হয়, ধীরে ধীরে নেতিবাচক তথ্য-লাভে পরিণত হয়—অর্থাৎ পাঠক আগের চেয়ে কম জানে, কারণ সে ভুল জানে।
ভাবুন একটা বানানো ম্যাচ কেমন ছড়ায়। প্রথমে একটি বাক্য: অমুক দল শেষ ওভারে ম্যাচ জিতল। পরের স্তরে সেটি একটি স্কোরলাইন হয়ে যায়। তারপর সেটি একটি খেলোয়াড়-পরিসংখ্যানে ঢোকে, তারপর একটি র্যাঙ্কিং মডেলে, তারপর একটি নির্বাচনের যুক্তিতে। প্রতিটি ধাপে দাবিটা আরও দৃঢ় হয়, অথচ উৎসের প্রশ্নটা কেউ করে না। এক লেজার-শৃঙ্খল থাকলে প্রথম ধাপেই জাল ব্লকটা ধরা পড়ত—কারণ তার আগের ব্লকের হ্যাশ কেউ মেলাতে পারত না। অথচ শৃঙ্খল ছাড়া জালটা প্রতিটি স্তরে বাস্তব হয়ে ওঠে।
এখানে একটা সূক্ষ্ম কথা আছে, যা আমি নিজের ভুল থেকে শিখেছি। অনেক সময় খালি ইনপুট মানেই খালি সূত্র নয়। সূত্রটি বাস্তবে থাকতে পারে—কিন্তু সেটি পেওয়ালের পেছনে, ছবির ভেতরে, বা এমন ভাষায় লেখা যা প্রক্রিয়া পড়তে পারে না। তখন দোষটা বিশ্লেষণ-স্তরের নয়, নিষ্কাশন-স্তরের। একটি পাইপলাইন যদি শুধু বিশ্লেষণে মন দেয়, আর নিষ্কাশনের অন্ধ দাগ দেখে না, তাহলে সে বারবার একই ভুল করবে: ভালো বিশ্লেষণ, খালি উৎস। কারণ যাচাই শুরু হয় সূত্র থেকে, গল্প থেকে নয়।
সমাধানের প্রথম ধাপ সহজ এবং বিরক্তিকর: একটি সর্বনিম্ন-বিষয়বস্তু-দরজা। কোনো প্রথম-স্তরের নথি যদি শূন্য তথ্য-বিন্দু নিয়ে আসে, তাহলে পাইপলাইন বিশ্লেষণ শুরুই করবে না। পাশাপাশি এমন একটি ট্যাগ—STATUS: NO-CONTENT / ANALYSIS ABORTED—যা সমষ্টিগত হিসাব থেকে নথিটিকে আলাদা করে দেয়। শুনতে ছোট কাজ, কিন্তু একটি ভুল আউটপুট পুরো ফিডে ছড়িয়ে পড়ার আগে এটিই একমাত্র প্রহরী।
আমি যাচাইয়ের এই গুরুত্ব নিজের ছোট ছোট ডেটাসেটে বারবার দেখেছি। আবাহনীর বাঁ হাফ-স্পেসের ৬১ শতাংশ তখনই বিশ্বাসযোগ্য হয়েছিল, যখন আমি জানিয়েছিলাম কোন ৪৪ ম্যাচ, কোন কলাম, কোন সংজ্ঞা। ক্রোয়েশিয়ার ১৪৩.৬ কিলোমিটার অর্থবহ হয়েছিল, কারণ আমি লিখেছিলাম কোন সূত্র থেকে শট-কোঅর্ডিনেট নিয়েছি। বুন্দেসলিগার ৪৩.৩ থেকে ৩৩.৩ শতাংশ নাটকীয় লেগেছিল, কারণ সংখ্যাটাকে ৮৩টি ম্যাচের সীমায় বেঁধে রেখেছিলাম। যে সংখ্যা তার সীমা লুকায়, সে সংখ্যা আসলে বিজ্ঞাপন, বিশ্লেষণ নয়।
রেফারি আর VAR-এর গল্পটা এখানে প্রাসঙ্গিক। ভিডিও প্রযুক্তি বিতর্ক কমায়নি—সে বিতর্ককে মাঠ থেকে সরিয়ে রিভিউ রুম আর নিয়মের ধূসর এলাকায় নিয়ে গেছে। ঠিক তেমনি, একটি যাচাই-লেজার ভুল মুছে দেবে না; সে ভুলকে ট্রেসযোগ্য করে তুলবে। পার্থক্য এতটুকু—ট্রেসযোগ্য ভুল সংশোধনযোগ্য, আর অদৃশ্য ভুল চিরস্থায়ী। যে বিতর্ক আপনি দেখতে পান, সেটি কম ভয়ংকর; যে বিতর্ক রিভিউ রুমে লুকিয়ে থাকে, সেটিই বিপদ।
একইভাবে, বিনামূল্যে এজেন্টের বিশাল সাইনিং-অন ফি খেলোয়াড়-বাজারের একটা ফাঁকফোকর—কারণ ট্রান্সফার ফি যেখানে আর্থিক নিয়মের কঠিন স্ক্রুটিনির মধ্যে পড়ে, সেখানে সাইনিং-অন ফি অনেকটা যাচাইয়ের বাইরে চলে যায়। ডেটা পাইপলাইনেও ঠিক এমন একটা ফাঁক আছে: শিরোনাম-স্তরের দাবি যাচাই হয়, কিন্তু শিরোনামের নিচের রেকর্ড—কে কোড করেছে, কখন, কোন অনুমানে—প্রায় কেউ দেখে না।
এখানেই আমাকে নিজের যুক্তির বিরুদ্ধে দাঁড়াতে হবে, কারণ সবচেয়ে সহজ ভুলটা হলো যাচাইয়ের লেজারকে সত্যের মেশিন ভাবা।
একটি লেজার যা রেকর্ড করে, তা প্রমাণ করে না যে রেকর্ড করা ঘটনাটি সত্য। এটা নিছক সম্পর্ক, কারণ নয়। ভাবুন, ২০১৭ সালে আমি নিজেই ঠিক করেছিলাম কোন ঘটনাগুলো নোটবুকে লিখব। একটি পাস যেটা আমি সফল বললাম, অন্য কেউ হয়তো নিরাপদ বলত। আমার চার কলাম যাচাইযোগ্য, কিন্তু কলাম ভরার সিদ্ধান্তটা ছিল বিষয়ভিত্তিক। এখন সেই বিষয়ভিত্তিক রায় যদি একটি হ্যাশ-শৃঙ্খলে ঢুকে যায়, তাহলে দুর্বল অনুমানটি যাচাইকৃত সিলমোহর পেয়ে যায়। লেজার তখন সত্য প্রমাণ করে না; সে পক্ষপাতকে যাচাইয়ের চেহারা দিয়ে দেয়।
লেজার শুধু বলবে কে লিখেছে, কখন লিখেছে, তারপর কেউ বদলায়নি। কিন্তু কে সিদ্ধান্ত নিয়েছে কোন ঘটনা লেখার যোগ্য—সে প্রশ্নের উত্তর লেজারে থাকে না। সেই ফাঁক ভরতে হয় দুই জিনিসে: অনুমান প্রকাশ্যে লেখা, আর নমুনার আকার স্পষ্ট করে বলা। খালি ইনপুটের ক্ষেত্রে সেই দুটিই আসল প্রমাণ—প্রথম স্তর কিছু দেয়নি, দ্বিতীয় স্তর বানায়নি।
আরেকটা অস্বস্তিকর সত্য হলো, সমস্যাটা প্রযুক্তির নয়, প্রণোদনার। একটি পাইপলাইন যদি আয়তন দিয়ে পুরস্কৃত হয়—কত লেখা তৈরি হলো, কত আউটপুট বেরোলো—তাহলে সে কখনোই খালি আউটপুট দিতে শিখবে না। যন্ত্র শূন্যতা লিখতে পারে; পুরস্কার-ব্যবস্থা শূন্যতাকে ব্যর্থতা বলে। ফলে মডেলের চাপ বাড়ে বানানোর দিকে, আর লেজার থাকলেও সে চুপচাপ বানিয়ে ফেলে।
আরেকটি ফাঁদ আমার নিজের জন্যই তৈরি: ছোট নমুনার রোমান্টিকতা। ৪৪টি ম্যাচ, একটি নোটবুক, একটি রংপুরের গল্প—এই তিনটি জিনিস সহজেই বড় দাবির মালিকানা নিয়ে নেয়। অথচ ৪৪টি ম্যাচ মানে এক মৌসুমের একটি দল; এর থেকে জাতীয় সিদ্ধান্তে লাফ দেওয়া যায় না। যে যাচাই-লেজার ছোট নমুনাকে বড় দেখায়, সে লেজার আরেক ধরনের জালিয়াতি। সততার প্রথম শর্ত—নমুনার আকার স্বীকার করা, তারপর দাবির সীমা টানা।
সবচেয়ে কাউন্টার-ইনটুইটিভ বিষয়টা হলো, খালি নথিটি আসলে ব্যর্থতা নয়—এটি ব্যবস্থার সঠিক কাজ। ব্যর্থতা হলো ফরম্যাটের পূর্ণতাকে বিষয়বস্তুর পূর্ণতা ভাবা। যেদিন একটি প্রক্রিয়া গর্ব করে বলবে আমি পনেরোটি অধ্যায় লিখেছি, সেদিন প্রথম প্রশ্ন হবে—ভেতরে কতটা ম্যাচ আছে, নাকি সবটাই শূন্য?
সামনের দিকে তাকিয়ে যে সংকেতটি আমি দেখছি, তা কোনো দল বা খেলোয়াড়ের নয়, বরং সিস্টেম-স্থাপত্যের। পরের কয়েক মৌসুমে ক্রিকেট-ডেটার পাইপলাইনগুলোতে তিনটি জিনিস দেখতে চাই: একটি সর্বনিম্ন-বিষয়বস্তু-দরজা, একটি অপরিবর্তনীয় ঘটনা-লেজার, আর একটি সৎ বিশ্লেষণ-বাতিল ট্যাগ। যে ব্যবস্থা খালি ইনপুট পেয়ে খালি, সৎ আউটপুট দিতে পারে—সেটিই বিশ্বাসযোগ্য; যে ব্যবস্থা খালি ইনপুটেও সুন্দর, ফাঁপা আউটপুট দেয়, সেটিই বিপদ।
প্রশ্নটা শেষ পর্যন্ত একটাই: একটি স্কোরকার্ড, যার কাঠামো নিখুঁত, আর একটি নোটবুক, যা বিষয়বস্তুতে সৎ—আপনি কোনটার পাশে দাঁড়াবেন?
