পর্ব-৩ঃ সচরাচর গবেষণার ফিল্ডসমূহ
Published:
গত পর্বের পরে অংশ . . .
এনএলপি (Natural Language Processing)
- কি এবং কেন
এনএলপি তথা ন্যাচারাল ল্যাংগুয়েজ প্রসেসিং মূলত আলাদা একটা গবেষনার ফিল্ড হলেও আমি এটা আর্টিফিসিয়াল ইন্টেলিজেন্স ফিল্ডের সাব-ফিল্ড হিসেবেই কনসিডার করছি, কেননা এতদিন এনএলপির কাজকর্ম সব রুল বেজডই বেশি করা হত। কিন্তু বর্তমানে প্রায় সকল কাজই মেশিন লার্নিং, ডিপ লার্নিং অ্যাপ্রোচে সলভ করা হয়ে থাকে।
অর্থাৎ আমাদের কাছে অনেক অনেক ল্যাংগুয়েজ ডেটা থাকে, হতে পারে সেটা টেক্সট, ভয়েস বা লেখা। সেগুলো এনালাইজ করে মেশিনকে মানুষের মত ভাষা-জ্ঞান প্রদান করা হয়। আর এটাই হল এনএলপি বা ন্যাচারাল ল্যাংগুয়েজ প্রসেসিং।
১৯৫২ সালে আমাদের বাংলা ভাষা অর্জিত হলেও, এখন পর্যন্ত কম্পিউটারকে এই ভাষা আমরা শেখাতে পারিনি। যেজন্য কিনা ওয়েবে আমাদের ভাষা খুব একটা সমৃদ্ধ নয়। তাই বলবো বাংলা ভাষা প্রসেসিং তথা বাংলা ভাষা নিয়ে কাজ করার অনেক বড় স্কোপ এখন পর্যন্ত বিদ্যমান।
ভাষার যেমন নিজস্ব রূপ রয়েছে, কিছু নিয়মকানুন মেনে চলে। একইভাবে এনএলপি বা ন্যাচারাল ল্যাংগুয়েজ প্রসেসিং করতে গেলেও ঐসকল নিয়মকানুনের বিকল্প বানাতে হয়। এগুলোকে আমরা এনএলপির টুলস বলতে পারি। এনএলপির বেসিক টুলসগুলোর মধ্যে অন্যতম হল-
- এনএলপির টুলস
- করপাস (Corpus)
- পজ ট্যাগার (Parts of speech tagger)
- ডিজিটাল ডিকশনারী (Dictionary)
- স্টেমার (Stemmer)
- ওয়ার্ডনেট (WordNet)
- টোকেনাইজার (Tokenizer)
এগুলোকে টুলস বলার কারন হল, এগুলো কাজে লাগিয়ে ল্যাঙ্গুয়েজ প্রসেস করা হয়। এগুলো ছাড়া ল্যাংগুয়েজ প্রসেসিং এর কাজ আসলে সম্ভব নয়। আর এসকল টুলসগুলো মূলত ভাষার নিয়মকানুন মোতাবেগই তৈরি করা হয়ে থাকে।
হয়তো কাজ ভেদে বিভিন্ন টুলস বিভিন্ন সময় কাজে লাগবে। তাই কাজ শুরু করার আগে আমার কাজ করতে কি কি টুলস লাগতে পারে সে অনুযায়ী আমাকে টুলসগুলো বানিয়ে নিতে হবে অথবা অন্য কেউ বানিয়ে থাকলে সেগুলো ইউজ করা যেতে পারে।
কিন্তু আমাদের বাংলার জন্য তেমন উন্নত টুলস এভেইলেবল না দেখে বাংলায় এনএলপির কাজ এখনো অনেকটা পিছিয়ে আছে। এই টুলসগুলো বানানোই এখন অনেক বড় চ্যালেন্জ। এই টুলসগুলো বানাতে যেটা লাগবে তা হলো অনেক অনেক ডেটাসেট- হতে পারে সেটা টেক্সট, ভয়েস বা লিখিত ডেটা।
এই টুলসগুলো দিয়ে এনএলপির যেসকল কাজ করা হচ্ছে সেগুলো হল-
- বাস্তব প্রয়োগ
- টেক্সট থেকে স্পিস (TTS)
- হার্ড ডকুমেন্ট থেকে টেক্সট (OCR)
- সেন্টিমেন্ট এনালাইসিস (Sentiment Analysis)
- ইশারা ভাষা থেকে টেক্সট বা স্পিস (Sign Language Recognition)
- ভুয়া নিউজ যাচাই করা (Fake News Detection)
- কম্পিউটারকে দিয়ে সাইনবোর্ড, বিলবোর্ড পড়ানো (OCR)
- প্রোডাক্ট রিভিউ এনালাইসিস করা (Review Analysis)
- অটোমেটিক টেক্সট জেনারেট করা (Text Generator)
- ভার্চুয়াল অ্যাসিসট্যান্ট বানানো (Virtual Assistant)
- চ্যাটবট তৈরি করা (ChatBot)
- টেক্সট সামারাইজিং (Text Summarizer)
- লেখার টাইটেল প্রেডিকশন (Title Prediction)
- ট্রান্সলেটর তৈরি করা (Translator)
এই সব কাজই বর্তমানে মেশিন লার্নিং, ডিপ লার্নিং এলগোরিদম অ্যাপ্লাই করা হয়। তাই কাজের শুরুতে আমাদের উচিৎ হবে এগুলোর ডেটাসেট কালেক্ট করা এবং সেগুলো প্রসেস করা। এরপর সেই ডেটাসমূহ দিয়ে কম্পিউটারকে মানুষের মত ভাষা শেখানো, এটাই এনএলপির মূল কাজ।
- প্রয়োজনীয় টুলস
পাইথন লাইব্রেরী
- NLTK
- Googletrans
- PyAudioAnalysis
- AI এর প্রয়োজনীয় লাইব্রেরী
আইওটি (Internet of Things)
- কি এবং কেন
ইন্টারনেট বলতে কি বুঝায় সেটা তো সবাই জানি, তহলে ইন্টারনেট অব থিংস আবার কি? সোজা কথা, জিনিসপত্রের ইন্টারনেট।
ভাবুন আপনি ৫ টায় অফিস শেষ করে গাড়িতে করে বাড়ি ফিরছেন, বাড়ি পৌছাতে আরও এক-দেড় ঘন্টা সময় বাকী। বাসায় পৌছে আপনার গোসলের জন্য গরম পানি এবং রেডি কফি লাগবে, যা বাসায় পৌছানোর পর করতে অতিরিক্ত আরও আধা ঘন্টা সময় খরচ হবে।
তাই আপনি এমন একটি সিস্টেমের আওতাভুক্ত হলেন যার মাধ্যমে বাসায় পৌছানোর ঠিক আধাঘন্টা আগে গাড়িতে বসে মোবাইল অ্যাপস এর মাধ্যমে আপনার ইলেকট্রিক হিটার এবং কফি মেকারকে বলে দিতে পারলেন সব রেডি করে রাখতে এবং গিয়েই আপনি সেগুলো রেডি অবস্থায় পেয়ে গেলেন।
আবার এমন হতে পারে আপনি মনের ভুলে আপনার লাইট-ফ্যান অফ না করে অফিসে চলে গেলেন, এরপর অফিস গিয়ে মনে পরা মাত্রই তা মোবাইল অ্যাপস দিয়ে দূর থেকে বন্ধ করে দিতে পারলেন। অথবা আপনার ফ্রিজটি হটাৎ নষ্ট হয়ে গিয়েছে, আপনি জানার আগেই আপনার ফ্রিজ নিজেই পার্শ্ববর্তী ইলেকট্রিক মিস্ত্রীকে খবর দিয়ে ডেকে এনে সেটা মেরামত করে নিল।
তাহলে কি? জীবনটা অনেক সহজ হয়ে গেল না? মানুষের জীবনযাত্রা অনেক সহজ করে দিতে, এই যে সিস্টেমের কথা বলেছি- এটাই হল ইন্টারনেট অব থিংস বা যিনিসপত্রের ইন্টারনেট। যা আমরা করতে পারি কিছু মাইক্রো কন্ট্রোলার, কিছু সেন্সর এবং আর্টিফিসিয়াল ইন্টেলিজেন্স থিওরি ব্যাবহার করে।
- কিভাবে করা হয় এই কাজগুলো?
আগেই বলেছি আর্টিফিশিয়াল ইন্টেলিজেন্সের সকল ধারনা এসেছে মানুষের কাছ থেকে। তাহলে মানুষের প্রতিটি প্রত্যঙ্গকে কিছু যন্ত্রাংশের সাথে তুলনা করুন-
মানুষের প্রত্যঙ্গ | যন্ত্রে তার বিকল্প |
---|---|
চোখ | ক্যামেরা সেন্সর |
কান | ভয়েস রিসিভার |
হাত | রোবোটিক হ্যান্ড |
ব্রেইন | মাইক্রোকন্ট্রোলার বা কম্পিউটার |
মুখ | ইলেক্ট্রিক স্পিকার |
তাহলে এমন বিকল্প যদি থেকে থাকে, তাহলে যন্ত্রকে কেন মানুষের মত কাজ করানো যাবে না? আর যন্ত্রের সাথে মানুষের আইপি দিয়ে সর্বক্ষন যোগাযোগ রাখতে ইন্টারনেট তো আছেই। এই দুটি মিলেই এই ফিল্ডকে বলা হয় ইন্টারনেট অব থিংকস।
যেসকল কাজসমূহ এই ফিল্ডের অন্তর্ভূক্ত সেগুলো হল-
- বাস্তব প্রয়োগ
- হোম অটোমেশন
- হোম সার্ভেন্ট রোবট
- ফসলের সেচ নিয়ন্ত্রন করা
- অটোমেটিক মাটির গুণাগুণ যাচাই করা এবং পদক্ষেপ গ্রহণ
- স্মার্ট ক্যামেরা
- চোর ধরার এলার্ম ঘড়ি
- অটোমেটিক অবজেক্ট ট্র্যাকার
- অটোমেটিক ডোর সিস্টেম
- ইন্ডাস্ট্রিয়াল অটোমেশন
- প্রয়োজনীয় টুলস
- মাইক্রোকন্ট্রোলার (আরডুইনো)
- রাসবেরী পাই
- প্রয়োজনীয় সেন্সর
- প্রয়োজনীয় ইলেকট্রিক টুলস
- Python Arduino Library
- Python PyGame Library
- সি ল্যাংগুয়েজ (প্রয়োজনে)
ডেভেলপমেন্ট ওয়ার্ক
ডেভেলপমেন্ট ওয়ার্ক যদিও তেমনভাবে গবেষনা ফিল্ডের অন্তর্ভুক্ত নয়, এটা মূলত কোনো গবেষনার ফলাফলকে রিয়াল লাইফে ইমপ্লিমেন্ট করায় প্রয়োজন পরে।
এরপরও ভালো মানের, ভিন্নধর্মী কোনো প্রোজেক্ট হলে সেটার জন্য গবেষনাপত্র বা জার্নালও লেখা যেতে পারে। কিন্তু সেক্ষেত্রে অন্যান্য কাজ থেকে ডিফরেন্সগুলো ফোকাস করতে হবে বেশি। সেটা হতে পারে-
- ওয়েব প্রোজেক্ট
- ডেস্কটপ অ্যাপস
- মোবাইল অ্যাপ্লিকেশন
- বা এগুলোর কোনো একটা নতুন ফিচার নিয়ে
আমরা গবেষনায় যে কাজটি মূলত করে থাকি সেগুলোর আদলেই আসলে কোনো সিস্টেম ডেভেলপ করা হয়। এমনকি এমনও হতে পারে- একটি ইকমার্স সাইট।
আপনি ই-কমার্স সাইটের এমন একটি নতুন ফিচার তৈরি করেছেন যা আগে কখনো কেউ করেনি বা এটি আগের কোনো ফিচাররের চেয়ে অনেক বেশি এফিসিয়েন্ট। তাহলে আপনি সেটা নিয়ে বিস্তর ঘাটাঘাটি করে এবং এফিসিয়েন্ট একটি সিস্টেম বানিয়ে সেটার গবেষনাপত্র প্রকাশ করতে পারেন।
এছাড়া বর্তমান সময়ে আইওটি, ওয়েব, এ-আই সব মিলিয়ে মিশিয়ে অনেক ভালো মানের এবং প্রফেশনাল কাজকর্ম হচ্ছে। আপনি চাইলেই সবকিছুর সাথে রিলেট করতে পারেন।