মাটি থেকে এটি কাজ করা যাক। শ্রেণিবদ্ধকরণ (শ্রেণীবদ্ধকরণ হিসাবেও পরিচিত) তত্ত্বাবধানে শেখার একটি উদাহরণ । তত্ত্বাবধানে শিক্ষায় আপনার রয়েছে:
- মডেল - এমন কিছু যা আপনার ডেটাতে অভ্যন্তরীণ কাঠামোর সান্নিধ্য তৈরি করে, আপনাকে এটি সম্পর্কে বিতর্ক করতে এবং দরকারী ভবিষ্যদ্বাণী করতে সক্ষম করে (যেমন কোনও কোনও সামগ্রীর পূর্বাভাস বর্গ); সাধারণত মডেলটির এমন প্যারামিটার থাকে যা আপনি "শিখতে" চান
- প্রশিক্ষণ এবং টেস্টিং ডেটাসেটগুলি - আপনি আপনার মডেলকে প্রশিক্ষণের জন্য যে পন্যগুলি ব্যবহার করেন সেগুলির সেট (প্যারামিটারগুলির জন্য ভাল মান খুঁজে পাওয়া) এবং আরও মূল্যায়ণ
- প্রশিক্ষণ এবং শ্রেণিবদ্ধকরণ অ্যালগরিদম - প্রথমে বর্ণনা করে যে কীভাবে প্রশিক্ষণ ডেটাসেট থেকে মডেল শিখতে হবে, দ্বিতীয়টি কীভাবে প্রশিক্ষিত মডেল প্রদত্ত একটি নতুন অবজেক্টের শ্রেণি অর্জন করতে পারে তা দেখায়
এখন স্প্যাম শ্রেণিবিন্যাসের একটি সহজ কেস নেওয়া যাক। আপনার প্রশিক্ষণ ডেটাসেটটি ইমেলগুলির + সম্পর্কিত লেবেলগুলির একটি কর্পাস - "স্প্যাম" বা "স্প্যাম নয়"। টেস্টিং ডেটাসেটের একই কাঠামো রয়েছে তবে কিছু স্বতন্ত্র ইমেল থেকে তৈরি করা হয়েছে (সাধারণত কেউ তার ডেটাসেটকে বিভক্ত করে তোলে এবং বলবে, এর 9-10 ব্যবহার প্রশিক্ষণের জন্য এবং 1-10 - পরীক্ষার জন্য)। ইমেলগুলির মডেল করার একটি উপায় হ'ল প্রতিটি শব্দকে একটি সেট (ব্যাগ) হিসাবে উপস্থাপন করা। যদি আমরা ধরে নিই যে শব্দগুলি একে অপরের থেকে স্বতন্ত্র, আমরা নায়েভ বয়েস শ্রেণিবদ্ধকারীটি ব্যবহার করতে পারি, অর্থাত্ প্রতিটি শব্দ এবং প্রতিটি শ্রেণির জন্য পূর্ব সম্ভাবনাগুলি গণনা করতে পারি (প্রশিক্ষণের অ্যালগরিদম) এবং তারপরে কোনও নতুন নথির উত্তরীয় সম্ভাবনা খুঁজে পাওয়ার জন্য বয়েস উপপাদ্য প্রয়োগ করি নির্দিষ্ট ক্লাস
সুতরাং, মূলত আমাদের রয়েছে:
raw model + training set + training algorithm -> trained model
trained model + classification algorithm + new object -> object label
এখন নোট করুন যে আমরা আমাদের বস্তুগুলি (দস্তাবেজগুলি) শব্দের ব্যাগ হিসাবে উপস্থাপন করেছি। তবে কি একমাত্র উপায়? আসলে, আমরা কাঁচা পাঠ্য থেকে আরও অনেক কিছু বের করতে পারি। উদাহরণস্বরূপ, শব্দের পরিবর্তে আমরা তাদের ডালপালা বা লেমাস ব্যবহার করতে পারি , গোলমাল থামিয়ে দেওয়া শব্দগুলি ফেলে দিতে পারি , শব্দের POS ট্যাগ যুক্ত করতে পারি, নাম দেওয়া সত্তাগুলি বের করতে পারি বা ডকুমেন্টের HTML কাঠামোটিও অন্বেষণ করতে পারি। প্রকৃতপক্ষে, কোনও নথির আরও সাধারণ উপস্থাপনা (এবং সাধারণভাবে যে কোনও বস্তু) একটি বৈশিষ্ট্য ভেক্টর । যেমন পাঠ্যের জন্য:
actor, analogue, bad, burn, ..., NOUN, VERB, ADJ, ..., in_bold, ... | label
0, 0, 1, 1, ..., 5, 7, 2, ..., 2, ... | not spam
0, 1, 0, 0, ..., 3, 12, 10, ..., 0, ... | spam
এখানে প্রথম সারিটি সম্ভাব্য বৈশিষ্ট্যগুলির একটি তালিকা এবং পরবর্তী সারিগুলি ডকুমেন্টে এই বৈশিষ্ট্যটি কতবার ঘটে তা দেখায়। উদাহরণস্বরূপ, প্রথম নথিতে "অভিনেতা" শব্দের কোনও উপস্থিতি নেই, "বার্ন" শব্দের 1 উপস্থিতি, 5 বিশেষ্য, 2 টি বিশেষণ এবং 2 টি টুকরো টুকরো টুকরো শব্দ রয়েছে। সর্বশেষ কলামটি ফলস্বরূপ শ্রেণীর লেবেলের সাথে সম্পর্কিত।
বৈশিষ্ট্য ভেক্টর ব্যবহার করে আপনি আপনার পাঠ্যের কোনও বৈশিষ্ট্য সংযুক্ত করতে পারেন। যদিও বৈশিষ্ট্যগুলির ভাল সেটটি পেতে কিছুটা সময় লাগতে পারে।
এবং মডেল এবং অ্যালগোরিদম সম্পর্কে কি? আমরা কি নাইভ বেয়েসের কাছে আবদ্ধ? একেবারেই না. লজিস্টিক রিগ্রেশন , এসভিএম , সিদ্ধান্ত গাছ - কেবলমাত্র কয়েকটি জনপ্রিয় শ্রেণিবদ্ধ উল্লেখ করতে। (দ্রষ্টব্য, যে আমরা বেশিরভাগ ক্ষেত্রে "শ্রেণিবদ্ধ" বলি যার অর্থ আমরা মডেল + প্রশিক্ষণ এবং শ্রেণিবিন্যাসের জন্য সম্পর্কিত অ্যালগরিদমকে বোঝাই)।
বাস্তবায়নের ক্ষেত্রে, আপনি টাস্কটিকে 2 ভাগে ভাগ করতে পারেন:
- বৈশিষ্ট্য নিষ্কাশন - কাঁচা পাঠ্যগুলিকে বৈশিষ্ট্য ভেক্টরগুলিতে রূপান্তর করা।
- বস্তুর শ্রেণিবদ্ধকরণ - বিল্ডিং এবং মডেল প্রয়োগ করা।
প্রথম পয়েন্টটি অনেক এনএলপি লাইব্রেরিতে ভালভাবে কাজ করা হয় । দ্বিতীয়টি মেশিন লার্নিং সম্পর্কে, সুতরাং আপনার ডেটাসেটের উপর নির্ভর করে আপনি ওয়েকা বা এমএলিব উভয়ই ব্যবহার করতে পারেন ।