১. শুরু করার আগে
এই কোডল্যাবে, আপনি শিখবেন কিভাবে টেক্সট ক্লাসিফিকেশন মডেল আপডেট করতে হয়, যা মূল ব্লগ স্প্যাম মন্তব্য ডেটাসেট থেকে তৈরি, কিন্তু আপনার নিজস্ব মন্তব্য দিয়ে উন্নত করা হয়েছে, যাতে আপনার ডেটার সাথে কাজ করে এমন একটি মডেল তৈরি করা যায়।
পূর্বশর্ত
এই কোডল্যাবটি মোবাইল টেক্সট ক্লাসিফিকেশন পাথওয়ের সাথে শুরু করুন এর অংশ। এই পাথওয়ের কোডল্যাবগুলি ধারাবাহিকভাবে তৈরি। আপনি যে অ্যাপ এবং মডেলটিতে কাজ করবেন তা আগে থেকেই তৈরি করা উচিত ছিল, যখন আপনি প্রথম পাথওয়ের সাথে অনুসরণ করছিলেন। যদি আপনি এখনও পূর্ববর্তী ক্রিয়াকলাপগুলি সম্পন্ন না করে থাকেন, তাহলে দয়া করে থামুন এবং এখনই তা করুন:
- একটি মৌলিক মেসেজিং স্টাইল অ্যাপ তৈরি করুন
- একটি মন্তব্য স্প্যাম মেশিন লার্নিং মডেল তৈরি করুন
- স্প্যাম ফিল্টারিং মেশিন লার্নিং মডেল ব্যবহার করতে আপনার অ্যাপ আপডেট করুন
তুমি কি শিখবে
- মোবাইল টেক্সট ক্লাসিফিকেশন পাথওয়েতে আপনার তৈরি টেক্সট ক্লাসিফিকেশন মডেলটি কীভাবে আপডেট করবেন
- আপনার অ্যাপে সর্বাধিক প্রচলিত স্প্যাম ব্লক করার জন্য আপনার মডেলটি কীভাবে কাস্টমাইজ করবেন
তোমার যা লাগবে
- পূর্ববর্তী কার্যকলাপে আপনি যে মেসেজিং অ্যাপ এবং স্প্যাম ফিল্টারিং মডেলটি পর্যবেক্ষণ করেছেন এবং তৈরি করেছেন।
2. টেক্সট শ্রেণীবিভাগ উন্নত করুন
আপনি এই রেপো ক্লোন করে এবং TextClassificationStep2 থেকে অ্যাপটি লোড করে এর জন্য কোড পেতে পারেন। আপনি এটি TextClassificationOnMobile->Android পাথে খুঁজে পেতে পারেন।
সমাপ্ত কোডটি আপনার জন্য TextClassificationStep3 হিসাবেও উপলব্ধ।
আপনি যদি আপনার তৈরি করা মেসেজিং অ্যাপটি খুলে এই বার্তাটি চেষ্টা করেন, তাহলে এটি খুব কম স্প্যাম স্কোর দেবে:

স্প্যাম ফিল্টার এড়াতে এই ধরণের ভুল বানান একটি সাধারণ উপায়। এবং বার্তাটি নির্দোষ হলেও, স্প্যামাররা প্রায়শই ব্যবহারকারী আইডিতে একটি লিঙ্ক যুক্ত করে (বার্তার পরিবর্তে, যেখানে একটি লিঙ্ক থাকা ফিল্টারগুলিকে ট্রিগার করতে পারে)।
এই ল্যাবে, আপনি দেখতে পাবেন কিভাবে নতুন ডেটা দিয়ে মডেলটি আপডেট করতে হয়। কাজ শেষ হয়ে গেলে, একই বাক্যটি দিয়ে রান করলে নিচের ফলাফলটি দেখাবে, যেখানে এই বার্তাটি স্প্যাম হিসেবে চিহ্নিত হবে!

৩. আপনার CSV ফাইল সম্পাদনা করুন
মূল মডেলটি প্রশিক্ষিত করার জন্য, একটি ডেটাসেট তৈরি করা হয়েছিল CSV ( lmblog_comments.csv ) হিসাবে, যেখানে প্রায় এক হাজার মন্তব্য ছিল যা স্প্যাম বা স্প্যাম নয় লেবেলযুক্ত ছিল। (যদি আপনি এটি পরীক্ষা করতে চান তবে যেকোনো টেক্সট এডিটরে CSV খুলুন।)
CSV-এর গঠন হল প্রথম সারিতে কলামগুলি বর্ণনা করা - এখানে সেগুলিকে commenttext এবং spam লেবেল করা হয়েছে।
প্রতিটি পরবর্তী সারি এই বিন্যাস অনুসরণ করে:

ডানদিকের লেবেলটি স্প্যামের জন্য সত্য এবং স্প্যাম নয় এর জন্য মিথ্যা। এই ক্ষেত্রে লাইন 3 স্প্যাম হিসাবে বিবেচিত হবে।
উদাহরণস্বরূপ, আপনার নিজস্ব মন্তব্য যোগ করার জন্য, যদি অনেক লোক আপনার সাইটে অনলাইন ট্রেডিং সম্পর্কে বার্তা স্প্যাম করে, তাহলে আপনাকে যা করতে হবে তা হল আপনার সাইটের নীচে স্প্যাম মন্তব্যের উদাহরণ যোগ করুন। উদাহরণস্বরূপ:
online trading can be highly highly effective,true online trading can be highly effective,true online trading now,true online trading here,true online trading for the win,true
কাজ শেষ হলে, ফাইলটি একটি নতুন নাম দিয়ে সংরক্ষণ করুন (উদাহরণস্বরূপ lmblog_comments.csv ), এবং আপনি এটি একটি নতুন মডেল প্রশিক্ষণের জন্য ব্যবহার করতে পারবেন।
এই কোডল্যাবের বাকি অংশের জন্য আপনি অনলাইন ট্রেডিং আপডেটের সাথে গুগল ক্লাউড স্টোরেজে প্রদত্ত, সম্পাদিত এবং হোস্ট করা উদাহরণটি ব্যবহার করবেন। আপনি যদি নিজের ডেটাসেট ব্যবহার করতে চান তবে কোডের URL পরিবর্তন করতে পারেন!
৪. নতুন ডেটা দিয়ে মডেলটিকে পুনরায় প্রশিক্ষণ দিন
মডেলটিকে পুনরায় প্রশিক্ষণ দেওয়ার জন্য, আপনি কেবল আগের কোডটি পুনরায় ব্যবহার করতে পারেন ( SpamCommentsModelMaker.ipynb ), তবে এটি নতুন CSV ডেটাসেটের দিকে নির্দেশ করুন, যাকে lmblog_comments_extras.csv বলা হয়। যদি আপনি আপডেট করা বিষয়বস্তু সহ সম্পূর্ণ নোটবুক চান, তাহলে আপনি এটি SpamCommentsUpdateModelMaker.ipynb.
যদি আপনার গুগল কোল্যাব অ্যাক্সেস থাকে, তাহলে আপনি এখান থেকে সরাসরি এটি চালু করতে পারেন, অন্যথায় রেপো থেকে কোডটি পান এবং আপনার পছন্দের নোটবুক পরিবেশে এটি চালান।
এখানে আপডেট করা কোডটি রয়েছে:
training_data = tf.keras.utils.get_file(fname='comments-spam-extras.csv',
origin='https://storage.googleapis.com/laurencemoroney-blog.appspot.com/
lmblog_comments_extras.csv',
extract=False)
যখন আপনি প্রশিক্ষণ দেবেন, তখন আপনার দেখতে হবে যে মডেলটি এখনও উচ্চ স্তরের নির্ভুলতার সাথে প্রশিক্ষণ দেবে:

মডেল , শব্দভাণ্ডার এবং লেবেল ফাইলগুলি ডাউনলোড করতে নোটবুকটি দেখুন। পরবর্তী ধাপে আপনি এগুলি অ্যান্ড্রয়েডে সংহত করবেন।
৫. আপনার অ্যান্ড্রয়েড অ্যাপ আপডেট করুন
- অ্যান্ড্রয়েড স্টুডিওতে অ্যাপটি খুলুন এবং নিশ্চিত করুন যে প্রজেক্ট এক্সপ্লোরারের শীর্ষে অ্যান্ড্রয়েড নির্বাচন করা আছে।
- মডেল ফাইলের পুরোনো সংস্করণ থেকে লেবেল, মডেল এবং শব্দভাণ্ডার সম্বলিত আপনার
assetsফাইলটি খুঁজুন।

- সম্পদ ফোল্ডারে ডান ক্লিক করুন।
- মেনুতে, আপনার অপারেটিং সিস্টেমের ফাইল ম্যানেজার দিয়ে ফোল্ডারটি খোলার বিকল্পটি নির্বাচন করুন। (যেমন দেখানো হয়েছে, ম্যাকের ফাইন্ডারে "রিভিল" । এটি উইন্ডোজের এক্সপ্লোরারে "শো" এবং লিনাক্সের " ফাইলস" বা অনুরূপ "ওপেন" হবে।)

- এটি আপনার অপারেটিং সিস্টেমের ফাইল ম্যানেজারে মডেল, শব্দভাণ্ডার এবং লেবেল সম্বলিত ডিরেক্টরিটি খুলবে। পূর্ববর্তী ধাপে তৈরি করা নতুন ডিরেক্টরিগুলি এগুলির উপর দিয়ে অনুলিপি করুন।
আপনার অ্যাপের কোডে কোনও পরিবর্তন করার দরকার নেই। এটি চালান এবং এটি পরীক্ষা করুন, এবং আপনি উপরের ফলাফলগুলির মতো ফলাফল দেখতে পাবেন, যেখানে মডেলটি "অনলাইন ট্রেডিং" টেক্সট দৃশ্যকল্প সনাক্ত করার জন্য উন্নত হয়েছে।
কোডটির একটি সমাপ্ত সংস্করণ রেপোতে TextClassificationStep3 নামে পাওয়া যাচ্ছে।
৬. আপনার iOS অ্যাপ আপডেট করুন
আপনি এই রেপো ক্লোন করে এবং TextClassificationStep2 থেকে অ্যাপটি লোড করে এর জন্য কোড পেতে পারেন। আপনি এটি TextClassificationOnMobile->Android পাথে খুঁজে পেতে পারেন।
সমাপ্ত কোডটি আপনার জন্য TextClassificationStep3 হিসাবেও উপলব্ধ।
যদি আপনি পূর্ববর্তী কোডল্যাবটি ব্যবহার করে থাকেন, তাহলে আপনার কাছে TextClassificationStep2 এর একটি iOS সংস্করণ থাকবে যা বেস মডেলের সাথে কাজ করে। আপনি যদি আমাদের বিদ্যমান সংস্করণ থেকে শুরু করতে চান, তাহলে কেবল রেপো থেকে এটি নিন। এটি প্রথম মডেলের সাথে কাজ করবে যা মন্তব্য স্প্যাম ডেটার উপর প্রশিক্ষিত ছিল, এবং আপনি এইরকম ফলাফল দেখতে পারেন:

আপনার নতুন মডেল ব্যবহার করার জন্য অ্যাপটি আপডেট করা সত্যিই সহজ। সবচেয়ে সহজ উপায় হল আপনার ফাইল এক্সপ্লোরারে যান, model.tflite , vocab এবং labels.txt এর নতুন সংস্করণগুলি পান এবং সেগুলি আপনার প্রোজেক্ট ডিরেক্টরিতে অনুলিপি করুন।
একবার আপনি এটি করার পরে, আপনার অ্যাপটি নতুন মডেলের সাথে কাজ করবে এবং আপনি এটি চেষ্টা করে দেখতে পারেন। এখানে একই বাক্যের একটি উদাহরণ দেওয়া হল, কিন্তু নতুন মডেল ব্যবহার করে:

৭. অভিনন্দন
এই তো! নতুন ডেটা দিয়ে মডেলটিকে পুনরায় প্রশিক্ষণ দিয়ে এবং আপনার অ্যান্ড্রয়েড এবং iOS উভয় অ্যাপেই এটি যুক্ত করে, আপনি কোনও নতুন কোড না লিখেই তাদের কার্যকারিতা আপডেট করতে সক্ষম হয়েছেন!
পরবর্তী পদক্ষেপ
এই মডেলটি কেবল একটি খেলনা, মাত্র ১০০০টি তথ্যের উপর প্রশিক্ষিত।
প্রাকৃতিক ভাষা প্রক্রিয়াকরণ অন্বেষণ করার সময়, আপনি বৃহত্তর ডেটাসেটগুলির সাথে কাজ করতে চাইতে পারেন। আপনি একটি ক্রমাগত প্রশিক্ষণ পাইপলাইনও সেট আপ করতে পারেন, যাতে যখন নতুন ডেটা আসে এবং স্প্যাম হিসাবে চিহ্নিত করা হয়, তখন এটি স্বয়ংক্রিয়ভাবে একটি ব্যাকএন্ডে একটি মডেলকে পুনরায় প্রশিক্ষণ দিতে পারে এবং তারপর Firebase মডেল হোস্টিং ব্যবহার করে সেই মডেলটি স্থাপন করতে পারে।
আপনার ব্যবহারকারীরা সহজেই একটি আপডেটেড মডেল পাবেন, আপনাকে এটিকে একটি সম্পদ হিসেবে কপি এবং পেস্ট, পুনরায় কম্পাইল এবং পুনরায় বিতরণ করার প্রয়োজন ছাড়াই। উদাহরণস্বরূপ, আপনি স্প্যাম পাঠানোর জন্য থ্রেশহোল্ড মান পরিচালনা করতে Firebase Remote Config ব্যবহার করতে পারেন, বর্তমানে আপনার কাছে যে 0.8 আছে তার পরিবর্তে।
অনেক সম্ভাবনা আছে, এবং আমরা এই কোর্সে ভবিষ্যতের কোডল্যাবগুলিতে এগুলি অন্বেষণ করব!