শূন্য ডেটা মানে শূন্য ঝুঁকি নয়: ইস্পোর্টস বিশ্লেষণের পাইপলাইন যেখানে ভেঙে পড়েছে
**মূল উত্তর:** খালি ডেটা মানে ঝুঁকি নেই নয়। একটি ইস্পোর্টস বিশ্লেষণ পাইপলাইনের প্রথম ধাপে শূন্য তথ্যবিন্দু ফেরত এলে দ্বিতীয় ধাপের নয় মাত্রার রিপোর্টে কোনো বিষয়ভিত্তিক রায় সম্ভব নয়; সেখানে যা উচ্চ, তা বিশ্লেষণ-প্রক্রিয়ার ঝুঁকি, বিষয়ের ঝুঁকি নয়। **মূল তথ্য:** - রিপোর্টের নয়টি মাত্রার সবকটিই অমূল্যায়নযোগ্য ছিল, কারণ ইনপুটে একটিও তথ্যবিন্দু ছিল না। - সাত সারির ঝুঁকি ম্যাট্রিক্সে ছয়টি সারি ছিল অচিহ্নিত, একমাত্র ভরা সারিটি পাইপলাইন-ব্যর্থতা। - Article Type ছিল Unclassified এবং Author Stance ছিল N/A — ক্লাসিফায়ারও টেক্সট পায়নি। - ২০২০ বুন্দেসলিগা পুনরারম্ভের প্রথম ৪৮ ম্যাচে ঘরের দল জিতেছিল ১৪টিতে, ২৯.২ শতাংশ, আগের হার ৪৩.৩ শতাংশ। - প্রতিকার আপস্ট্রিম: শিরোনাম, অন্তত একটি তথ্যবিন্দু ও একটি নামযুক্ত সত্তা যাচাই করা স্কিমা-গেট। **উৎস:** Stage-2 Esports Deep Analysis Report; প্রকাশের নির্দিষ্ট তারিখ উৎস নথিতে উল্লেখ করা হয়নি। **সম্পর্কিত প্রশ্নোত্তর:** প্রশ্ন: N/A — insufficient information আর ঋণাত্মক ফলাফলের পার্থক্য কী? উত্তর: প্রথমটি বোঝায় কোনো ডেটা দেওয়া হয়নি, দ্বিতীয়টি বোঝায় ডেটা ছিল এবং মূল্যায়ন নেতিবাচক এসেছে; দুটোকে এক হিসেবে পড়া যায় না। প্রশ্ন: এই ব্যর্থতা ধরার সবচেয়ে সস্তা উপায় কী? উত্তর: Stage-2 চালানোর আগে একটি স্কিমা-যাচাই, যা শূন্য তথ্যবিন্দুর পেলোড প্রত্যাখ্যান করে কাঠামোবদ্ধ ত্রুটি ফেরায়। প্রশ্ন: পাইপলাইন-ব্যর্থতার ঝুঁকি কি দল বা খেলোয়াড়ের ঝুঁকি হিসেবে ধরা যাবে? উত্তর: না, বিষয়ভিত্তিক সব ঝুঁকি শ্রেণি অনির্ধারিত থেকে যায়, সেগুলো মওকুফ হয়নি।
গত সপ্তাহে একটা রিপোর্ট আমার ডেস্কে এল। নয়টি অধ্যায়। নয়টি টেবিল। সাত সারির একটা রিস্ক ম্যাট্রিক্স। আর প্রথম পাতায় বড় হরফে একটা রায় — Overall Risk Rating: High। ঠিক তার উপরে ছোট করে লেখা Input Integrity Notice। ভেতরে ঢুকলে দেখা যায়, নয়টি অধ্যায়ের নয়টিতেই একই বাক্য ঘুরেফিরে বসানো: N/A — insufficient information। গেমের নাম নেই। দল নেই। খেলোয়াড় নেই। প্যাচ ভার্সন নেই। টুর্নামেন্ট নেই। লেনদেন নেই। শাসনব্যবস্থার কোনো ঘটনাও নেই। তবু রিপোর্টটা শেষ হয়েছে রায় দিয়ে, আর সেই রায়ের পাশে বসানো হয়েছে কী রিস্ক ওয়ার্নিং নামের একটা অগ্রাধিকার-তালিকা।
ঘরের সবচেয়ে চিচ্চা দাবিটা ছিল ওই একটা লাইন — ঝুঁকি উচ্চ। আমি ২০১৭-এ ফিরে গিয়েছিলাম, কারণ দাবিটা সত্য হওয়ার জন্য বেশ চিচ্চা ছিল। ২০১৭ সালের ১৮ জুন, ওভালের ফাইনাল। পাকিস্তান ভারতকে ১৮০ রানে হারায়। ফখর জামানের ১১৪। আমি তখন রংপুরে, কুড়ি বছরের এক ছাত্র, অফসাইড লজিক পেজের মালিক। ফাইনালের পর তিন মিনিটের একটা ভিডিও দিলাম — ফখরের ইনিংস ভাগ্য নয়, ভারতের ডেথ বোলিংয়ের পূর্বানুমানযোগ্যতা। প্রমাণ হিসেবে দেখালাম, ১১ থেকে ৩০ ওভারের মধ্যে ১৪টি বাউন্ডারি। ওই পোস্টে ১২ হাজার ভিউ আর ৪০০ কমেন্ট এল। তারপর এক সপ্তাহ ধরে প্রতিটি বাউন্ডারি ক্লিপ করে দেখালাম প্যাটার্নটা কোথায় ছিল।
সেই সপ্তাহে একটা নিয়ম দাঁড়িয়ে গেল, যেটা আজও আমার লেখার ভিত্তি: যেকোনো উসকানিমূলক দাবির সঙ্গে অন্তত তিনটি কঠিন পরিসংখ্যান আর একটা টাইমস্ট্যাম্প থাকতে হবে। রিসিট আগে, রায় পরে।
এখন এই নিয়মটা একটা খালি পেলোডের ওপর প্রয়োগ করি।
কনটেক্সট: পাইপলাইনটা কী, আর কোথায় ভাঙে
যে রিপোর্টটা আমার কাছে এসেছে, সেটা দুই ধাপের একটা বিশ্লেষণ-পাইপলাইনের দ্বিতীয় ধাপ। প্রথম ধাপের কাজ একটাই — উৎস লেখা থেকে তথ্যবিন্দু আর সত্তা টেনে বের করা। কোন গেম, কোন টুর্নামেন্ট, কোন দল, কোন খেলোয়াড়, কোন প্যাচ, কোন লেনদেন, কোন শাসন-ঘটনা। দ্বিতীয় ধাপ সেই তথ্যবিন্দুর ওপর নয়টি মাত্রার একটা ফ্রেমওয়ার্ক বসায় — প্যাচ ও মেটা, টুর্নামেন্ট ফরম্যাট, দল ও খেলোয়াড়, আঞ্চলিক ল্যান্ডস্কেপ, ক্লাব ফাইন্যান্স, নিয়ম ও শাসন, রিস্ক প্রোফাইল, পাবলিক ন্যারেটিভ, আর ইন্ডাস্ট্রি ট্রান্সমিশন।
এই ফ্রেমওয়ার্কটা দরকারি, কারণ ইস্পোর্টসের সিদ্ধান্তগুলো ঠিক এই নয়টা জায়গায় ভাঙে। বাংলাদেশ আর ভারতের বাজারেও ভাঙে। কিন্তু ফ্রেমওয়ার্ক দরকারি হওয়া আর সেটা সবসময় চালানো — দুটো আলাদা কথা। ছোট নিউজরুমে কনটেন্টের চাপ বাড়ছে, আর প্রতিটি ছোট খবরের জন্য নয় মাত্রার সুইপ চালানোর প্রলোভনও বাড়ছে। কারণ ফ্রেমওয়ার্কটা চালালে আউটপুটটা ভারী দেখায়।
আর ঠিক এখানেই ২০১৭-এর নিয়মটা কাজে আসে। ২০১৭ সালে আমি যা শিখেছিলাম, সেটা ক্রিকেট নিয়ে নয়, পদ্ধতি নিয়ে: দাবির ওজন তার দৈর্ঘ্যে মাপা হয় না, তার রিসিটে মাপা হয়।
কোর: রিপোর্টটা যা বলছে, আর যা করে ফেলছে
প্রথমেই একটা জিনিস পরিষ্কার করে নিই। রিপোর্টটা বাক্য-পর্যায়ে সৎ। এটা নিজেই লিখেছে, insufficient information মানে কোনো ডেটা দেওয়া হয়নি, এটা মূল্যায়ন নেতিবাচক এসেছে থেকে আলাদা। এটা নিজেই সতর্ক করেছে, এই রিপোর্টকে কোনো দল বা প্রতিষ্ঠানের ডিউ-ডিলিজেন্স হিসেবে ধরা যাবে না। এটা নিজেই স্বীকার করেছে, এখানে যেটা উচ্চ, সেটা বিষয়ের ঝুঁকি নয়, বিশ্লেষণ-প্রক্রিয়ার ঝুঁকি।
সমস্যাটা বাক্যে নয়, স্থাপত্যে। নয়টা ভরা টেবিল, সাত সারির একটা রিস্ক ম্যাট্রিক্স, তিন ধাপের শাস্তি-প্রক্ষেপণ, একটা অগ্রাধিকার-ক্রমে সাজানো সতর্কবার্তার তালিকা — এই কাঠামোটা পড়তে গিয়ে পাঠক স্বাভাবিকভাবে ধরে নেয় যে একটা মূল্যায়ন হয়েছে। বিন্যাস যখন ডেটার কাজটা নিজে করে ফেলে, তখন পাঠক ডেটার অনুপস্থিতিটাই টের পান না। এটা ফাঁকা রিপোর্টের সবচেয়ে বিপজ্জনক দিক, আর রিপোর্টটা নিজেই সেটা ধরতে পেরেছে — কিন্তু ধরাটা লেখা হয়েছে শেষ অধ্যায়ে, প্রথম পাতায় নয়।
দ্বিতীয় জিনিসটা আরও স্পষ্ট। রিস্ক ম্যাট্রিক্সে সাতটি সারি। ছয়টি সারিতে লেখা subject unidentified — প্রতিযোগিতামূলক, আর্থিক, কর্মী, নিয়ম, জনমত, সিস্টেমিক। একমাত্র ভরা সারিটা হলো পাইপলাইন, আর সেটার রায় High, অবস্থা Confirmed — মানে ঝুঁকিটা ইতিমধ্যেই ঘটে গেছে। অর্থাৎ যে ম্যাট্রিক্সটা বিষয়ের ঝুঁকি মাপার কথা, সেটা আসলে রিপোর্টটার নিজের আত্মপ্রতিকৃতি হয়ে দাঁড়িয়েছে। সাত ভাগের এক ভাগ ভরা, আর সেই এক ভাগও নিজের সম্পর্কে।
তৃতীয় জিনিসটা ডায়াগনসিস। খালি এক্সট্রাকশনের তিনটি বিশ্বাসযোগ্য কারণ আছে — পেওয়াল বা জাভাস্ক্রিপ্টে রেন্ডার হওয়া উৎস, যেখান থেকে বডি টেক্সট ফেরেনি; টেক্সট নয় এমন উৎস, যেমন ছবি বা স্ক্রিনশট; অথবা এক্সট্রাকশন-নিয়মের অমিল, যেমন কাঠামোবদ্ধ ফিল্ডহীন এক লাইনের সংক্ষিপ্ত খবর। এই তিনটার সম্ভাব্যতা মাঝারি। কিন্তু একটা সহায়ক সংকেত আছে যেটা দিক ঠিক করে দেয়: রিপোর্টে Article Type লেখা Unclassified, আর Author Stance লেখা N/A। ক্লাসিফায়ার যদি ক্লাসিফাই করার টেক্সটই না পায়, তাহলে দোষটা ক্লাসিফিকেশন-নিয়মের নয়, বডি-এক্সট্রাকশনের। এই সংযোগটা ছোট, কিন্তু এটা একটা অনুমান নয় — এটা পেলোডের ভেতরের দুটো ফিল্ডের পারস্পরিক সাক্ষ্য।
চতুর্থ জিনিসটা আমার নিজের ট্র্যাকার থেকে শেখা। ২০২০ সালে, বুন্দেসলিগা পুনরায় চালু হওয়ার পর প্রথম ৪৮টি ম্যাচে ঘরের দল জিতেছিল মাত্র ১৪টিতে — ২৯.২ শতাংশ, যেখানে আগের হার ছিল ৪৩.৩ শতাংশ। পাঁচ লিগ জুড়ে আমি নো-ফ্যানস ডেটা ট্র্যাকার বানালাম, ছয় সপ্তাহ ধরে প্রতিদিন আপডেট করলাম, আর লিখলাম — খালি স্টেডিয়াম ঘরের সুবিধা মেরে ফেলে, বায়ার্ন ছাড়া, যারা দুই গোলের ব্যবধানে জেতে; বায়ার্ন ওই সময় নয়টির আটটিতে জিতেছিল। ট্র্যাকারটা দুটো জাতীয় মাধ্যম উদ্ধৃত করেছিল। কিন্তু লক্ষ করুন, ট্র্যাকারটা কাজ করেছিল কারণ আমি প্রতি সপ্তাহে একই জিনিস মাপছিলাম। যদি ওই ৪৮ ম্যাচের নমুনা ছাড়াই ঘরের সুবিধা শেষ লিখতাম, তাহলে সেটা এই রিপোর্টটার মতোই একই অপরাধ হতো। একটা খালি ঘর কোনো ফলাফল নয়, সেটা একটা অসম্পূর্ণ পরিমাপ। ঝুঁকি তালিকায় এটাকে কোনো ঝুঁকি নেই হিসেবে পড়া যায় না, আর ঝুঁকি আছে হিসেবেও পড়া যায় না।
পঞ্চম জিনিসটা ক্রম নিয়ে। ২০১৮ বিশ্বকাপে মেক্সিকোর কাছে জার্মানি ১-০ হারে যাওয়ার পরেই আমি লিখেছিলাম, জার্মানি গ্রুপ পর্বেই বাদ পড়বে। দক্ষিণ কোরিয়ার বিপক্ষে ম্যাচের আগে থ্রেড দিলাম — ০-২ হার, ৭০ শতাংশ পজেশন, ২৬ শট, ৬টি অন টার্গেট, কিন্তু পাঁচটি প্রেসিং ট্রিগার ফেল করবে। জার্মানি ঠিক ওই পরিসংখ্যান নিয়েই ০-২ হারে। থ্রেডটা ৫০ হাজার ভিউ আর ৩ হাজার কমেন্ট পেল, আর আমি সেটা পিন করে রেখে দিলাম, মুছলাম না। কারণটা সহজ: রিসিট আগে, রায় পরে। এই রিপোর্টটা উল্টোটা করেছে — আগে রায় দিয়েছে, তারপর স্বীকার করেছে রিসিট নেই। রায় আগে আর রিসিট পরে — এই ক্রমটাই এখানে সবচেয়ে বড় নিয়ম-লঙ্ঘন, খালি পেলোডটা নয়।
ষষ্ঠ জিনিসটা টার্নওভার ম্যাপ থেকে। ২০২১ ইউরো ফাইনালের আগে আমি লিখেছিলাম, ইংল্যান্ডের ১-০ এগিয়ে যাওয়া টিকবে না, ইতালি মাঝমাঠে ১৫-র বেশি টার্নওভার জোর করে আনবে। ইতালির দখলে ৬৫ শতাংশ বল, শট ১৯ বনাম ইংল্যান্ডের ৬, ম্যাচ ১-১ শেষে পেনাল্টিতে ইতালির জয়। আমি ১৪টি ইতালীয় মিডল-থার্ড টার্নওভার গুনেছিলাম, আর ফাইনাল-পূর্ব থ্রেডটা ৮০ হাজার ইমপ্রেশন পেয়েছিল। ম্যাপটা কাজে লেগেছিল কারণ সেটা ম্যাচের আগে আঁকা। পরে আঁকা ম্যাপ কোনো পূর্বানুমান নয়, শুধু একটা ছবি। এই রিপোর্টটা সেই ছবিটাই আঁকছে — ম্যাচ শেষ, তারপর নয়টা মাত্রার নকশা।
সপ্তম জিনিসটা শাস্তি-প্রক্ষেপণের তিনটি ঘর। সবচেয়ে খারাপ পরিস্থিতি, মাঝারি পরিস্থিতি, আশাবাদী পরিস্থিতি — তিনটিই ফাঁকা। কোনো অভিযোগ নেই, তাই কোনো প্রক্ষেপণ নেই। এটাই আসল সংকেত: যখন যন্ত্রটা শাস্তির তিনটি স্তর তৈরি করে, কিন্তু তিনটিতেই কিছু লিখতে পারে না, তখন বোঝা যায় যন্ত্রটা রায়ের আকৃতি তৈরি করছে, রায়ের বিষয়বস্তু নয়।
অষ্টম জিনিসটা একটা ব্যতিক্রম। পুরো রিপোর্টে একমাত্র কাজে লাগার মতো অংশ হলো পর্যবেক্ষণ-সংকেতের ছোট টেবিলটা — উৎস পুনরুদ্ধারযোগ্যতা, প্রথম ধাপের ফিল্ড পূরণ, আর্টিকেল টাইপের পুনরাবৃত্তি, প্রকাশের তারিখ। চারটে স্পষ্ট ট্রিগার, চারটে স্পষ্ট শর্ত। এটা টেমপ্লেট হিসেবে রাখার যোগ্য, কারণ এটা অনুমান করে না, মাপে।
নবম জিনিসটা সমাধান। সমাধানটা ডাউনস্ট্রিমে নয়, আপস্ট্রিমে। একটা স্কিমা-গেট যথেষ্ট: শিরোনাম আছে কি না, অন্তত একটা তথ্যবিন্দু আছে কি না, অন্তত একটা নামযুক্ত সত্তা আছে কি না। তিনটার যেকোনো একটা ফেল করলে পুরো নয়-মাত্রার রিপোর্ট না দিয়ে একটা কাঠামোবদ্ধ ত্রুটি ফেরানো। খরচ প্রায় শূন্য, আর এটা একটা পুরো রিপোর্টের ভুয়ো আভিজাত্য বাঁচিয়ে দেয়।
কন্ট্রারিয়ান: আমি কোথায় ভুল হতে পারি

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

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