একটি কাস্টম পাঠ্য শ্রেণিবিন্যাস মডেল তৈরি করুন এবং এটির সাথে আপনার অ্যাপগুলি আপডেট করুন৷

1. আপনি শুরু করার আগে

এই কোডল্যাবে, আপনি শিখবেন কিভাবে পাঠ্য শ্রেণীবিভাগ মডেল আপডেট করবেন, মূল ব্লগ স্প্যাম মন্তব্য ডেটাসেট থেকে তৈরি করা হয়েছে, কিন্তু আপনার নিজের মন্তব্যের সাথে উন্নত করা হয়েছে, যাতে আপনার ডেটার সাথে কাজ করে এমন একটি মডেল থাকতে পারে।

পূর্বশর্ত

এই কোডল্যাব হল মোবাইল টেক্সট ক্লাসিফিকেশন পাথওয়ে দিয়ে শুরু করুন। এই পথের কোডল্যাবগুলি ক্রমিক। আপনি যে অ্যাপ এবং মডেলটিতে কাজ করবেন সেটি আগে তৈরি করা উচিত ছিল, যখন আপনি প্রথম পথটি অনুসরণ করছেন। আপনি যদি পূর্ববর্তী কার্যক্রমগুলি এখনও সম্পন্ন না করে থাকেন, তাহলে অনুগ্রহ করে থামুন এবং এখনই করুন:

  • একটি মৌলিক মেসেজিং স্টাইল অ্যাপ তৈরি করুন
  • একটি মন্তব্য স্প্যাম মেশিন লার্নিং মডেল তৈরি করুন
  • স্প্যাম ফিল্টারিং মেশিন লার্নিং মডেল ব্যবহার করতে আপনার অ্যাপ আপডেট করুন

আপনি কি শিখবেন

  • মোবাইল টেক্সট ক্লাসিফিকেশন পাথওয়ে দিয়ে শুরু করুন-এ আপনার তৈরি করা টেক্সট ক্লাসিফিকেশন মডেলটি কীভাবে আপডেট করবেন
  • আপনার মডেলটি কীভাবে কাস্টমাইজ করবেন যাতে এটি আপনার অ্যাপে সর্বাধিক প্রচলিত স্প্যাম ব্লক করে

আপনি কি প্রয়োজন হবে

  • মেসেজিং অ্যাপ এবং স্প্যাম ফিল্টারিং মডেল যা আপনি দেখেছেন এবং আগের ক্রিয়াকলাপগুলিতে তৈরি করেছেন৷

2. পাঠ্য শ্রেণিবিন্যাস উন্নত করুন

আপনি এই রেপো ক্লোন করে এবং TextClassificationStep2 থেকে অ্যাপটি লোড করে এর জন্য কোড পেতে পারেন। আপনি এটি TextClassificationOnMobile->Android পাথে খুঁজে পেতে পারেন।

সমাপ্ত কোডটি আপনার জন্য TextClassificationStep3 হিসাবে উপলব্ধ।

আপনি যদি আপনার তৈরি করা মেসেজিং অ্যাপটি খোলে এবং এই বার্তাটি চেষ্টা করে দেখুন, তাহলে এটি একটি খুব কম স্প্যাম স্কোর দেবে:

f111e21903d6fd1f.png

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

এই ল্যাবে, আপনি নতুন ডেটা সহ মডেলটি কীভাবে আপডেট করবেন তা দেখতে পাবেন। আপনার কাজ শেষ হয়ে গেলে, একই বাক্য দিয়ে রান করলে নিচের ফলাফল পাওয়া যাবে, যেখানে এই বার্তাটিকে স্প্যাম হিসেবে চিহ্নিত করা হয়েছে!

c96613a0a4d1fef0.png

3. আপনার CSV ফাইল সম্পাদনা করুন৷

মূল মডেলকে প্রশিক্ষণ দেওয়ার জন্য, CSV ( lmblog_comments.csv ) হিসাবে একটি ডেটাসেট তৈরি করা হয়েছিল যাতে স্প্যাম বা স্প্যাম নয় লেবেলযুক্ত প্রায় এক হাজার মন্তব্য রয়েছে৷ (আপনি যদি এটি পরিদর্শন করতে চান তবে যেকোনো পাঠ্য সম্পাদকে CSV খুলুন।)

CSV-এর মেকআপ হল প্রথম সারিতে কলামগুলি বর্ণনা করা - এখানে সেগুলি commenttext এবং spam লেবেলযুক্ত৷

প্রতিটি পরবর্তী সারি এই বিন্যাস অনুসরণ করে:

64c0128548e1d082.png

ডানদিকের লেবেলটি স্প্যামের জন্য সত্য এবং স্প্যাম না হওয়ার জন্য মিথ্যা৷ এই ক্ষেত্রে লাইন 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 ), এবং আপনি একটি নতুন মডেল প্রশিক্ষণের জন্য এটি ব্যবহার করতে সক্ষম হবেন৷

এই কোডল্যাবের বাকি অংশের জন্য আপনি অনলাইন ট্রেডিং আপডেটের সাথে Google ক্লাউড স্টোরেজে দেওয়া, সম্পাদিত এবং হোস্ট করা উদাহরণ ব্যবহার করবেন। আপনি যদি আপনার নিজস্ব ডেটাসেট ব্যবহার করতে চান তবে আপনি কোডের URL পরিবর্তন করতে পারেন!

4. নতুন ডেটা সহ মডেলটিকে পুনরায় প্রশিক্ষণ দিন

মডেলটিকে পুনরায় প্রশিক্ষণ দেওয়ার জন্য, আপনি কেবল আগের থেকে কোডটি পুনরায় ব্যবহার করতে পারেন ( SpamCommentsModelMaker.ipynb ), তবে এটিকে নতুন CSV ডেটাসেটে নির্দেশ করুন, যাকে বলা হয় lmblog_comments_extras.csv । আপনি যদি আপডেট করা বিষয়বস্তু সহ সম্পূর্ণ নোটবুক চান তবে আপনি এটিকে SpamCommentsUpdateModelMaker.ipynb.

আপনার যদি Google Colab-এ অ্যাক্সেস থাকে, তাহলে আপনি এটি সরাসরি এখান থেকে লঞ্চ করতে পারেন, অন্যথায় রেপো থেকে কোডটি পান এবং আপনার পছন্দের নোটবুকের পরিবেশে চালান।

এখানে আপডেট করা কোড:

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)

আপনি যখন প্রশিক্ষণ দেন, তখন আপনার দেখতে হবে যে মডেলটি এখনও উচ্চ স্তরের নির্ভুলতায় প্রশিক্ষণ দেবে:

8886033d1f8161c.png

মডেল , ভোকাব এবং লেবেল ফাইল ডাউনলোড করতে নোটবুকের মাধ্যমে যান। পরবর্তী ধাপে আপনি এগুলিকে Android-এ একীভূত করবেন৷

5. আপনার Android অ্যাপ আপডেট করুন

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

91116524e9016ed4.png

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

25f63f9629657e85.png

  1. এটি আপনার অপারেটিং সিস্টেমের ফাইল ম্যানেজারে মডেল, ভোকাব এবং লেবেল ধারণকারী ডিরেক্টরি খোলে। এইগুলির উপর আগের ধাপে আপনি যে নতুনগুলি তৈরি করেছেন তা কপি করুন।

আপনার অ্যাপে কোডে কোনো পরিবর্তন করতে হবে না। এটি চালান এবং এটি একটি পরীক্ষা দিন, এবং আপনি উপরেরগুলির মতো ফলাফল দেখতে পাবেন, যেখানে মডেলটি "অনলাইন ট্রেডিং" পাঠ্য পরিস্থিতি সনাক্ত করতে উন্নত হয়েছে৷

কোডের একটি সমাপ্ত সংস্করণ রেপোতে TextClassificationStep3 হিসাবে উপলব্ধ।

6. আপনার iOS অ্যাপ আপডেট করুন

আপনি এই রেপো ক্লোন করে এবং TextClassificationStep2 থেকে অ্যাপটি লোড করে এর জন্য কোড পেতে পারেন। আপনি এটি TextClassificationOnMobile->Android পাথে খুঁজে পেতে পারেন।

সমাপ্ত কোডটি আপনার জন্য TextClassificationStep3 হিসাবে উপলব্ধ।

আপনি যদি পূর্ববর্তী কোডল্যাবের মাধ্যমে কাজ করেন তবে আপনার কাছে TextClassificationStep2 এর একটি iOS সংস্করণ থাকবে যা বেস মডেলের সাথে কাজ করে। আপনি যদি আমাদের বিদ্যমান সংস্করণ থেকে শুরু করতে চান তবে রেপো থেকে এটি নিন। এটি প্রথম মডেলের সাথে কাজ করবে যা মন্তব্য স্প্যাম ডেটাতে প্রশিক্ষিত ছিল এবং আপনি এইরকম ফলাফল দেখতে পারেন:

553b845565b5b822.png

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

একবার আপনি এটি সম্পন্ন করলে, আপনার অ্যাপটি নতুন মডেলের সাথে কাজ করবে এবং আপনি এটি ব্যবহার করে দেখতে পারেন। এখানে একই বাক্যের একটি উদাহরণ, কিন্তু নতুন মডেল ব্যবহার করে:

9031ec260b1857a3.png

7. অভিনন্দন

এটাই! নতুন ডেটা সহ মডেলটিকে পুনরায় প্রশিক্ষণ দিয়ে এবং আপনার অ্যান্ড্রয়েড এবং আইওএস উভয় অ্যাপে এটি যুক্ত করে, আপনি কোনও নতুন কোড না লিখেই তাদের কার্যকারিতা আপডেট করতে সক্ষম হয়েছেন!

পরবর্তী পদক্ষেপ

এই মডেলটি শুধুমাত্র একটি খেলনা, শুধুমাত্র 1000টি ডেটাতে প্রশিক্ষিত।

আপনি প্রাকৃতিক ভাষা প্রক্রিয়াকরণ অন্বেষণ হিসাবে, আপনি বড় ডেটাসেটগুলির সাথে কাজ করতে চাইতে পারেন। আপনি একটি ক্রমাগত প্রশিক্ষণ পাইপলাইন সেট আপ করতে পারেন, তাই যখন নতুন ডেটা আসে এবং স্প্যাম হিসাবে ফ্ল্যাগ করা হয়, তখন এটি স্বয়ংক্রিয়ভাবে একটি ব্যাকএন্ডে একটি মডেলকে পুনরায় প্রশিক্ষণ দিতে পারে এবং তারপরে Firebase মডেল হোস্টিং ব্যবহার করে সেই মডেলটিকে স্থাপন করতে পারে।

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

অনেক সম্ভাবনা আছে, এবং আমরা এই কোর্সে ভবিষ্যতে কোডল্যাবগুলিতে সেগুলি অন্বেষণ করব!