খালি ঘর, ভরা মাঠ: ব্যর্থ ফুটবল ডেটা পাইপলাইনে তিনটি পাঠ
**মূল উত্তর:** স্টেজ-১ ডিকনস্ট্রাকশনের আউটপুটে কোনো ব্যবহারযোগ্য কনটেন্ট ছিল না। ইনফরমেশন পয়েন্টের তালিকা ফাঁকা ছিল, তাই লেখকের অবস্থান, উদ্দেশ্য, এনটিটি বা উৎসের মান নির্ধারণ করা যায়নি। শুধু ডোমেইন লেবেল “ফুটবল” পাওয়া গেছে, যা অসম্পূর্ণ পাইপলাইনের ইঙ্গিত দেয়। **মূল তথ্য:** - ইনফরমেশন পয়েন্টের তালিকা সম্পূর্ণ খালি ছিল, ফলে কোনো তথ্য-ভিত্তিক বিশ্লেষণ সম্ভব হয়নি। - এনটিটি ও উৎস-মান নির্ধারণের নির্দেশ ফাঁকা তালিকার ওপর নির্ভরশীল, যা এক বৃত্তাকার নির্ভরতা তৈরি করেছে। - শিরোনাম, উৎস, নিবন্ধের ধরন ও সারমর্ম — সব ক্ষেত্রেই “N/A” বা ফাঁকা দেখানো হয়েছে। - ডোমেইন লেবেল “ফুটবল” থাকার অর্থ হলো কিছু মেটাডেটা প্রসেস হয়েছে, কিন্তু মূল লেখা প্রসেস হয়নি। - সঠিক পদক্ষেপ হলো স্টেজ-১ ব্যর্থ ধরে নিয়ে পূর্ণ উৎস লেখাসহ পুনরায় চালানো। **উৎস:** প্রদত্ত স্টেজ-১ ডিকনস্ট্রাকশন নোট; প্রকাশের তারিখ উৎসে উল্লেখ নেই। **সম্ভাব্য ফলো-আপ প্রশ্ন:** প্রশ্ন: কেন এই ডিকনস্ট্রাকশন থেকে গভীর বিশ্লেষণ করা যাবে না? উত্তর: কারণ দাবি, সংখ্যা, উদ্ধৃতি বা উৎস — বিশ্লেষণের কোনো কাঁচামালই আউটপুটে নেই। প্রশ্ন: ডোমেইন লেবেল থাকা সত্ত্বেও কনটেন্ট খালি কেন? উত্তর: সম্ভবত ইনপুট ফেচ ব্যর্থ হয়েছে, অথবা টেমপ্লেট ডিফল্ট মান নিয়ে সম্পাদন ছাড়াই আউটপুট দিয়েছে। প্রশ্ন: পরবর্তী ধাপে কী প্রয়োজন? উত্তর: পূর্ণ উৎস লেখা বা সফল স্টেজ-১ আউটপুট, যাতে ইনফরমেশন পয়েন্ট ভরে পুনরায় বিশ্লেষণ চালানো যায়।
একটা ফাইল খুললাম। শিরোনামের ঘরে একটা নাম, পাশে লিগের নাম, নিচে এগারোটা সারি। এগারোটা সারিই খালি। কোনোটায় লেখা “N/A”, কোনোটায় শুধু ড্যাশ, একটায় “not assessed”। ফাইলটা যে ফুটবল নিয়ে, তার একমাত্র প্রমাণ ডোমেইন লেবেলের একটা শব্দ — football। বাকিটা শূন্য।
আমি খারাপ স্কাউটিং রিপোর্ট কম দেখিনি। খারাপ রিপোর্টেও অন্তত একটা ভুল দাবি থাকে, যেটা ধরে টানাটানি করা যায়, ভুল প্রমাণ করা যায়। এখানে সেটুকুও নেই। একটা কাঠামো তৈরি হলো, কাঠামোটা ফাঁকা ফিরে এলো, আর ফাঁকা কাঠামোটা এখনো নিজেকে “ফুটবল বিশ্লেষণ” বলে পরিচয় দিচ্ছে।
আমার কাছে এটাই এই মুহূর্তের সবচেয়ে বড় ট্যাকটিক্যাল ঘটনা — কোনো ম্যাচের নয়, একটা প্রক্রিয়ার। সংখ্যাটা পরিষ্কার ছিল; ম্যাচটা পরিষ্কার হতে রাজি হয়নি।

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

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

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