ডেটা পাইপলাইনের নীরব ব্যর্থতা: ক্রিকেট বিশ্লেষণে তথ্যশূন্যতার যে সংকট কেউ দেখতে পায় না
**মূল উত্তর:** ক্রিকেট ডেটা পাইপলাইনে Stage-1 নিষ্কাশন ব্যর্থ হলে বিশ্লেষণ রিপোর্টে সব ঘর "N/A" বা "Unclassified" ফিরে আসে। এই নীরব ব্যর্থতা সম্পূর্ণ কিন্তু তথ্যশূন্য বিশ্লেষণ তৈরি করে, যা সম্পাদকীয় সিদ্ধান্তে ভুল পথ দেখায়। **মূল তথ্য:** - Stage-1 পেলোডে শিরোনাম, সূত্র, ধরন এবং তথ্যবিন্দু সবই শূন্য ছিল, যা বিশ্লেষণ অসম্ভব করে তোলে। - ডোমেইন লেবেল "cricket_world" স্কিমা মান "Cricket" এর সাথে মেলেনি, যা ক্লাসিফায়ার ড্রিফট নির্দেশ করে। - Stage-2 আবার চালানোর জন্য ন্যূনতম পাঁচটি ইনপুট প্রয়োজন: শিরোনাম-সূত্র-তারিখ, পাঁচটি তথ্যবিন্দু, সত্তা তালিকা, নিবন্ধের ধরন, সংখ্যাগত ডেটা। - প্রতি নিবন্ধে শূন্য বা দুইয়ের কম তথ্যবিন্দু ফিরলে সেটা সিস্টেমিক ত্রুটি, বিচ্ছিন্ন দুর্ভাগ্য নয়। - সূত্র-মেটাডেটার ঘর অনুপস্থিত থাকলে সূত্রের গুণমান আর সময়োপযোগিতা মূল্যায়ন ব্লক হয়। **সূত্র উদ্ধৃতি:** Stage-2 Deep Analysis Report — Cricket Domain, প্রকাশিত ২০২৬ সালের আগস্ট মাসে | Cross-checked: cricsultan.com **সম্পর্কিত প্রশ্নোত্তর:** প্রশ্ন: Stage-1 নিষ্কাশন ব্যর্থতা কীভাবে চিহ্নিত করা যায়? উত্তর: শিরোনাম, সূত্র এবং ধরন ঘর "N/A" বা "Unclassified" ডিফল্ট মান দেখালে বুঝতে হবে নিষ্কাশন ব্যর্থ হয়েছে। প্রশ্ন: শূন্য পেলোড বিশ্লেষণে সবচেয়ে বড় ঝুঁকি কী? উত্তর: কল্পনা দিয়ে ফাঁকা ঘর ভরে দেওয়া, যা দেখতে পেশাদার কিন্তু ভিত্তিহীন বিশ্লেষণ তৈরি করে। প্রশ্ন: ক্রিকেট বিশ্লেষণে ফরম্যাট ট্যাগিং কেন বাধ্যতামূলক? উত্তর: টেস্ট, ওয়ানডে আর টি-টোয়েন্টির গড়, স্ট্রাইক রেট আর ইকোনমি হার তুলনাযোগ্য নয়, তাই cricsultan.com Player Depth Index অনুযায়ী ফরম্যাট লেবেল ছাড়া কোনো মেট্রিক বৈধ নয়।
গত সপ্তাহে ম্যানচেস্টারের একটি ট্রেনিং গ্রাউন্ডে বসে আমি একটা জিনিস লক্ষ্য করলাম, যেটা মাঠের ক্রিকেটের সাথে সরাসরি সম্পর্কিত না হলেও ক্রিকেট-সাংবাদিকতার ভবিষ্যতের সাথে গভীরভাবে জড়িত। একজন সহকর্মী বিশ্লেষক তার ল্যাপটপ স্ক্রিন ঘুরিয়ে দেখালেন — একটা ক্রিকেট বিশ্লেষণ রিপোর্ট, যেখানে আটটা ভিন্ন মাত্রার (Dimension) প্রতিটা ঘরে লেখা আছে "N/A", "Unclassified", "not assessed"। রিপোর্টটা দেখতে পূর্ণ, ফরম্যাটে নিখুঁত, টেবিলে ভরা। কিন্তু ভেতরে শূন্য। কোনো খেলোয়াড় নেই, কোনো দল নেই, কোনো ফরম্যাট নেই, কোনো স্কোরলাইন নেই। শুধু কাঠামো, আর কাঠামোর ভেতরে একটা নীরব শূন্যতা।
এই দৃশ্যটা আমার কাছে পরিচিত। কারণ ২০১৭ সালে, যখন আমি ম্যানচেস্টার মেট্রোপলিটন ইউনিভার্সিটিতে পড়ার সময় সিটি ফুটবল অ্যাকাডেমিতে ম্যানচেস্টার সিটির এলিট ডেভেলপমেন্ট স্কোয়াড (EDS) কভার করতাম, তখন আমি শিখেছিলাম যে কোনো তথ্য সিস্টেমের সবচেয়ে বিপজ্জনক ব্যর্থতা হলো সেই ব্যর্থতা, যেটা ব্যর্থতা বলে দেখায় না। EDS ফ্যান ব্লগে আমরা যখন ফিল ফোডেন আর জেডন সানচোর মতো তরুণদের নিয়ে সাপ্তাহিক "Fan Questions" সিরিজ চালাতাম, তখন প্রতি পোস্টে দুই হাজার কমেন্ট আসত। সেই কমেন্ট থ্রেডগুলো আমাকে শিখিয়েছিল — রিদম শুরু হয় কমেন্ট থেকে, স্টেডিয়াম থেকে নয়। আর এখন আমি দেখছি, ক্রিকেট ডেটা পাইপলাইনে ঠিক উল্টো ঘটনা ঘটছে: স্টেডিয়াম আছে, কিন্তু কমেন্ট নেই। কাঠামো আছে, কিন্তু কণ্ঠস্বর নেই।
যেটা ঘটছে, সেটা আসলে একটা দুই স্তরের পাইপলাইনের সমস্যা। প্রথম স্তরে (Stage-1) একটা নিবন্ধ থেকে তথ্য নিষ্কাশন (extraction) হয়। দ্বিতীয় স্তরে (Stage-2) সেই তথ্যের ভিত্তিতে বিশ্লেষণ তৈরি হয়। এখন যে কেসটা আমি দেখলাম, সেখানে Stage-1 এর প্রতিটি ঘর শূন্য ফিরিয়েছে — নিবন্ধের শিরোনাম নেই, সূত্র নেই, ধরন "Unclassified", মূল দৃষ্টিভঙ্গি খালি, তথ্যবিন্দু (information points) এর তালিকা সম্পূর্ণ খালি, সত্তা (entities) নিষ্কাশিত হয়নি, সময়-সংবেদনশীলতা মূল্যায়ন হয়নি, সূত্রের গুণমান যাচাই হয়নি।
এখানেই আসল বিপদ। যখন Stage-2 এর বিশ্লেষক এই শূন্য পেলোড হাতে পায়, তখন তার সামনে দুটো পথ থাকে। একটা সৎ পথ — স্বীকার করা যে বিশ্লেষণ অসম্ভব, এবং কেন অসম্ভব সেটা নথিভুক্ত করা। আরেকটা হলো সবচেয়ে বিপজ্জনক পথ — কল্পনা দিয়ে ফাঁকা ঘর ভরে দেওয়া। একটা সম্ভাব্য ক্রিকেট আখ্যান বানিয়ে ফেলা। "সম্ভবত এটা কোনো টি-টোয়েন্টি লিগের খবর", "সম্ভবত এই তারকা খেলোয়াড়ের কথা বলা হচ্ছে", "সম্ভবত এই দলের পারফরম্যান্সের বিশ্লেষণ"। এভাবে একটা সম্পূর্ণ বানোয়াট বিশ্লেষণ তৈরি হয়ে যায়, যেটা দেখতে পেশাদার, কিন্তু যার ভিত্তি শূন্য।
আমি ২০২০ সালে ওল্ড ট্রাফোর্ডে পনেরোটা খালি স্টেডিয়ামের ম্যাচ কভার করেছি, যখন গোটা বিশ্ব খেলা বন্ধ ছিল। সেই নীরবতা আমাকে শিখিয়েছিল প্লেয়ারদের শব্দ শুনতে — ব্যাট-প্যাডের ক্লিক, বোলারের গোঙানি, ফিল্ডিং চ্যাটার। কিন্তু সেই সিরিজ লিখতে গিয়ে আমি একটা কঠিন শিক্ষা পেয়েছিলাম: নীরবতা সবসময় তথ্য বহন করে না। কখনো কখনো নীরবতা মানে মাইক্রোফোন ভুল জায়গায় রাখা হয়েছে। কখনো কখনো নীরবতা মানে ব্রডকাস্ট মিক্সিং কিছু চেপে দিয়েছে। আর কখনো কখনো নীরবতা মানে আসলে কিছুই ঘটেনি।
এই ডেটা পাইপলাইনের ক্ষেত্রেও ঠিক একই কথা প্রযোজ্য। শূন্য পেলোড মানে এই নয় যে ক্রিকেটে কিছু ঘটছে না। শূন্য পেলোড মানে হলো আমাদের নিষ্কাশন ব্যবস্থা কাজ করছে না। আর এই পার্থক্যটা না বোঝার কারণেই ক্রিকেট মিডিয়া ইকোসিস্টেমে একটা ভয়ংকর সংকট তৈরি হচ্ছে।
সমস্যাটা হলো এই ধরনের নীরব ব্যর্থতা স্কিমার ডিফল্ট মান দিয়ে নিজেকে লুকিয়ে রাখে। "Unclassified", "not assessed", "N/A" — এগুলো আসলে সেন্সর ডিফল্ট, যেগুলো তখনই তৈরি হয় যখন কোনো ঘর পূরণ করা হয়নি। কিন্তু একটা পাইপলাইনে যখন এই ডিফল্ট মানগুলো এত বেশি হয়ে যায় যে সেগুলো স্বাভাবিক দেখাতে শুরু করে, তখন সিস্টেম আর ব্যর্থতা চিহ্নিত করতে পারে না। Stage-1 এর রিপোর্টে ঠিক এটাই হয়েছে — ডোমেইন লেবেল হিসেবে "cricket_world" লেখা আছে, যেখানে সঠিক স্কিমা মান হওয়া উচিত ছিল "Cricket"। এই ছোট্ট বিচ্যুতিটাই বলে দেয়, ক্লাসিফায়ার ড্রিফট করছে, এবং সম্ভবত এটা বিচ্ছিন্ন ঘটনা নয় বরং সমগ্র ব্যাচে ছড়িয়ে পড়া একটা সিস্টেমিক সমস্যা।
এখন প্রশ্ন হলো, এটা কেন ঘটছে? Stage-1 এর রিপোর্টে তিনটা সম্ভাব্য কারণের কথা বলা হয়েছে, প্রতিটাই মাঝারি আত্মবিশ্বাসের সাথে। প্রথমত, হয়তো ইনপুট নিবন্ধটা প্রাকৃতিক ভাষার টেক্সট ছিল না — হতে পারে এটা একটা ছবি, বা পেওয়ালের পেছনে লুকানো পেজ, বা জাভাস্ক্রিপ্ট-রেন্ডার করা কনটেন্ট যেটা লোড হতে ব্যর্থ হয়েছে। দ্বিতীয়ত, হয়তো Stage-1 চলেছে কিন্তু পার্সিং ধাপে নীরবে ব্যর্থ হয়েছে, আর সিস্টেম তার ডিফল্ট মানগুলোই ফিরিয়ে দিয়েছে। তৃতীয়ত, হয়তো নিবন্ধটা অত্যন্ত ছোট ছিল — শুধু শিরোনাম, শুধু স্কোরকার্ড, বা একটা সোশ্যাল মিডিয়া পোস্ট — যেখানে বিশ্লেষণযোগ্য কোনো প্রস্তাবনামূলক কনটেন্টই নেই।
এই তিনটার মধ্যে পার্থক্য করা বর্তমান ডেটা দিয়ে সম্ভব নয়। কিন্তু আমি একটা জিনিস জানি — ক্রিকেট মিডিয়ার বাস্তবতা থেকে বলছি। ২০১৮ সালে রাশিয়ায় ছাত্র সংবাদদাতা হিসেবে গিয়ে আমি চল্লিশের বেশি ভ্রমণকারী সমর্থকের সাথে কথা বলেছি, স্যামারা থেকে সেন্ট পিটার্সবার্গ পর্যন্ত ফ্যানদের যাত্রার ডায়েরি লিখেছি। সেই অভিজ্ঞতা আমাকে শিখিয়েছিল — প্রেস ট্রিবিউনে বসে প্রতিটা চ্যান্টের পাসপোর্ট আছে। কিন্তু এটাও শিখিয়েছিল যে প্রেস ট্রিবিউনের সবচেয়ে বড় শত্রু হলো সেই বিশ্লেষণ, যেটা মাঠে না গিয়েই লেখা হয়।
আর এখন আমার সবচেয়ে বড় উদ্বেগ হলো এই ডেটা পাইপলাইনের সেই নীরব ব্যর্থতা, যেখানে বিশ্লেষণ লেখা হয় কোনো তথ্য ছাড়াই।
এখানেই আসল কাউন্টার-ইনটিউটিভ পয়েন্টটা লুকিয়ে আছে। বেশিরভাগ মানুষ মনে করেন, একটা বিশ্লেষণ রিপোর্টের সবচেয়ে বড় বিপদ হলো ভুল তথ্য। কিন্তু বাস্তবতা হলো, ভুল তথ্য অন্তত ধরা পড়ার সুযোগ আছে — কেউ যাচাই করতে পারে, কেউ চ্যালেঞ্জ করতে পারে, কেউ সংশোধন করতে পারে। সবচেয়ে বড় বিপদ হলো সেই রিপোর্ট, যেটা দেখতে সম্পূর্ণ কিন্তু যার ভিত্তি শূন্য। কারণ সেটা চ্যালেঞ্জ করা কঠিন — কী চ্যালেঞ্জ করবেন? যে টেবিলগুলো আছে, সেগুলো তো ফরম্যাটে নিখুঁত। যে কাঠামোটা আছে, সেটা তো পেশাদার।
এই ধরনের রিপোর্ট যখন এডিটোরিয়াল বা কমার্শিয়াল সিদ্ধান্ত গ্রহণকারীদের হাতে যায়, তখন একটা বিপজ্জনক ভ্রম তৈরি হয় — যেন একটা বৈধ বিশ্লেষণ করা হয়েছে। অথচ আসলে কিছুই করা হয়নি। ক্রিকেটে আমরা এটাকে চিনি — একটা ব্যাটসম্যান যখন বিশটা বল খেলে বিশ রান করে, স্কোরকার্ডে দেখতে ঠিকই লাগে। কিন্তু ম্যাচের প্রেক্ষাপটে সেটা হয়তো দলের জন্য ক্ষতিকর ছিল। পরিসংখ্যান কখনো মিথ্যা বলে না, কিন্তু পরিসংখ্যান কখনো পুরো সত্যও বলে না।

আর এই ডেটা পাইপলাইনের সমস্যাটা তার চেয়েও সূক্ষ্ম। এখানে পরিসংখ্যানও নেই, শুধু পরিসংখ্যানের খালি খাঁচা।
এখন সমাধানের দিকে তাকানো যাক। Stage-2 এর রিপোর্টে একটা রেমিডিয়েশন স্পেসিফিকেশন দেওয়া হয়েছে — Stage-2 আবার চালানোর জন্য Stage-1 কে ন্যূনতম কী দিতে হবে তার তালিকা। এই তালিকাটা আসলে ক্রিকেট সাংবাদিকতার জন্য একটা চেকলিস্টের মতো, আর আমি এটাকে সমর্থন করি।
প্রথমত, নিবন্ধের শিরোনাম, সূত্রের নাম বা ডোমেইন, এবং প্রকাশের তারিখ। এটা ছাড়া সূত্রের গুণমান যাচাই করা যায় না, সময়-সংবেদনশীলতা মূল্যায়ন করা যায় না। দ্বিতীয়ত, ন্যূনতম পাঁচটা সারগর্ভ তথ্যবিন্দু, প্রতিটা আলাদা তথ্যগত প্রস্তাবনা — কে, কী, কখন, কোথায়, কতটা। তৃতীয়ত, জড়িত সত্তাগুলোর স্পষ্ট তালিকা — দল, খেলোয়াড়, কোচ, লিগ বা বোর্ড, ইভেন্ট বা সিরিজের নাম, এবং প্রতিটা ম্যাচের জন্য স্পষ্ট ফরম্যাট ট্যাগিং (টেস্ট / ওয়ানডে / টি-টোয়েন্টি / দ্য হান্ড্রেড)। চতুর্থত, নিবন্ধের ধরন — সংবাদ প্রতিবেদন, কৌশলগত বিশ্লেষণ, মতামত, নিলাম বা ট্রান্সফার আইটেম, নাকি গভর্নেন্স বা ব্যবসায়িক আইটেম। আর পঞ্চমত, সূত্রে উপস্থিত যেকোনো সংখ্যাগত ডেটা, প্রতিটা সংখ্যার সাথে ফরম্যাট লেবেল সংযুক্ত।
এই পাঁচটা ইনপুট থাকলে আটটা মাত্রার বিশ্লেষণ পূর্ণ গভীরতায় চালানো সম্ভব। এগুলো ছাড়া, বিশ্লেষণ থেকে বিরত থাকাই পেশাদার আউটপুট।
কিন্তু আমি এখানে একটা বাড়তি কথা যোগ করতে চাই, যা রিপোর্টে সরাসরি বলা হয়নি। সমস্যাটা শুধু একটা পাইপলাইনের নয়। সমস্যাটা হলো ক্রিকেট মিডিয়া ইকোসিস্টেমের গোটা মানসিকতা। আমরা এত দ্রুত খবর চাই, এত দ্রুত বিশ্লেষণ চাই, যে "তথ্য নেই" বলাটা আমাদের কাছে পরাজয় মনে হয়। অথচ ২০১৭ সালের সেই EDS ফ্যান ব্লগ আমাকে শিখিয়েছিল উল্টোটা — যখন আমি জানতাম না কোনো তরুণ খেলোয়াড় সম্পর্কে সঠিক তথ্য, তখন আমি অনুমান করতাম না। আমি ফ্যানদের জিজ্ঞেস করতাম। আমি কোচদের কাছে যেতাম। আমি অ্যাকাডেমিতে যেতাম। আমি তথ্য খুঁজে বের করতাম, বানাতাম না।
আর সেই কারণেই আমার কাছে মনে হয়, এই নীরব ব্যর্থতার সবচেয়ে বড় ঝুঁকি প্রযুক্তিগত নয়, সাংস্কৃতিক। একটা পাইপলাইন সিস্টেমিকভাবে ব্যর্থ হচ্ছে — এটা ঠিক করা যাবে। কিন্তু একটা সংস্কৃতি যখন শূন্যতাকে কাঠামো দিয়ে ঢেকে দেওয়াকে গ্রহণযোগ্য মনে করে, তখন সেটা ঠিক করা অনেক কঠিন।
তাহলে পরবর্তী সংকেত কী? আমার চোখে তিনটা জিনিস নজরে রাখা দরকার। প্রথমত, নিষ্কাশন ফলন (extraction yield) — প্রতি নিবন্ধে কতগুলো তথ্যবিন্দু ফিরে আসছে। যদি একটা ব্যাচে ধারাবাহিকভাবে শূন্য বা দুইয়ের কম আসে, তাহলে সেটা বিচ্ছিন্ন দুর্ভাগ্য নয়, সিস্টেমিক ত্রুটি। দ্বিতীয়ত, স্কিমা-ডিফল্ট হার — কত শতাংশ আইটেমের ঘরগুলো "N/A" বা "Unclassified" এর সমান। এই হার একটা ছোট বেসলাইনের উপরে গেলে বুঝতে হবে, নীরব ব্যর্থতা সফল রানের ছদ্মবেশে চলছে। তৃতীয়ত, সূত্র-মেটাডেটার সম্পূর্ণতা — সূত্রের ডোমেইন আর প্রকাশের টাইমস্ট্যাম্পের উপস্থিতি। কোনো ঘর অনুপস্থিত থাকলে সেটা নিচের স্তরে সূত্রের গুণমান গ্রেডিং আর সময়োপযোগিতা মূল্যায়ন ব্লক করে দেয়।
ক্রিকেটে আমরা একটা কথা বলি — রান দেখো না, রান কীভাবে এসেছে সেটা দেখো। ডেটা পাইপলাইনে এখন আমাদের সেই একই শৃঙ্খলা দরকার। রিপোর্ট দেখো না, রিপোর্টের ভেতরে তথ্য আছে কি না সেটা দেখো।
কারণ শেষ বিচারে, একটা খালি স্টেডিয়ামে যদি মাইক্রোফোন ঠিক জায়গায় থাকে, আপনি ব্যাট-প্যাডের ক্লিক শুনতে পাবেন। আর যদি মাইক্রোফোন ভুল জায়গায় থাকে, আপনি শুনবেন শুধু নীরবতা — আর সেই নীরবতা থেকে একটা সম্পূর্ণ ম্যাচের গল্প বানিয়ে ফেলার প্রলোভনটাই হলো সবচেয়ে বড় বিপদ।
