إنشاء نموذج تصنيف نص مخصّص وتحديث تطبيقاتك باستخدامه

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 Cloud Storage مع آخر الأخبار حول التداول على الإنترنت. يمكنك تغيير عنوان 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"، وتأكَّد من اختيار Android في أعلى "مستكشف المشاريع".
  2. ابحث عن ملف assets الذي يحتوي على التصنيفات والنموذج والمفردات من الإصدار القديم من ملف النموذج.

91116524e9016ed4.png

  1. انقر بزر الماوس الأيمن على مجلد مواد العرض.
  2. في القائمة، اختَر الخيار لفتح المجلد باستخدام مدير الملفات في نظام التشغيل. (الكشف في الباحث (Reveal in Finder) على جهاز Mac، كما هو موضّح ستظهر لك العرض في المستكشف على نظام التشغيل Windows، والفتح في "الملفات" أو ما شابه ذلك على نظام التشغيل Linux).

25f63f9629657e85.png

  1. يؤدي ذلك إلى فتح الدليل الذي يحتوي على النموذج والمفردات والتصنيفات في مدير الملفات بنظام التشغيل. انسخ القيم الجديدة التي أنشأتها في الخطوة السابقة فوق هذه القيم.

ليس عليك إجراء أي تغييرات على الرمز في تطبيقك، بل عليك تشغيله وتجربته، وستظهر لك نتائج مشابهة للنتائج أعلاه، حيث تم تحسين النموذج لرصد سيناريو النص "التداول عبر الإنترنت".

يتوفّر إصدار نهائي من الرمز في المستودع باسم TextClassificationStep3.

6. تحديث تطبيق iOS

يمكنك الحصول على الرمز البرمجي لهذا التطبيق من خلال استنساخ مستودع هذا وتحميل التطبيق من TextClassificationStep2. يمكنك العثور على هذا المسار في TextClassificationOnMobile->Android.

يتوفّر لك أيضًا الرمز تمت باسم TextClassificationStep3.

إذا كنت قد أتممت الخطوات في الدرس العملي السابق، سيكون لديك إصدار iOS من TextClassificationStep2 يعمل مع النموذج الأساسي. إذا أردت البدء من الإصدار الحالي، ما عليك سوى تنزيله من المستودع. سيعمل مع النموذج الأول الذي تم تدريبه على بيانات التعليقات غير المرغوب فيها، وقد تظهر لك نتائج مثل ما يلي:

553b845565b5b822.png

تحديث التطبيق لاستخدام النموذج الجديد أمر بسيط للغاية. أسهل طريقة هي الانتقال إلى مستكشف الملفات والحصول على الإصدارات الجديدة من model.tflite وvocab وlabels.txt ونسخها إلى دليل مشروعك.

بعد الانتهاء من ذلك، سيعمل تطبيقك مع النموذج الجديد، ويمكنك تجربته. في ما يلي مثال على الجملة نفسها، ولكن باستخدام النموذج الجديد:

9031ec260b1857a3.png

7. تهانينا

هذا كل شيء! ومن خلال إعادة تدريب النموذج باستخدام بيانات جديدة وإضافتها إلى كلّ من تطبيقات Android وiOS، تمكّنت من تعديل وظائفها بدون كتابة أي رمز برمجي جديد.

الخطوات التالية

هذا النموذج هو نموذج تجريبي فقط، تم تدريبه على 1, 000 عنصر من البيانات فقط.

أثناء استكشاف معالجة اللغات الطبيعية، قد تحتاج إلى العمل مع مجموعات بيانات أكبر. يمكنك أيضًا إعداد مسار تدريب مستمر، بحيث عندما تصل بيانات جديدة ويتم الإبلاغ عنها كرسائل غير مرغوب فيها، يمكن إعادة تدريب نموذج تلقائيًا على الخلفية، ثم تفعيل هذا النموذج باستخدام خدمة استضافة النماذج من Firebase.

يحصل المستخدمون على نموذج محدَّث بسلاسة بدون الحاجة إلى نسخه ولصقه كأصل وإعادة تجميعه وإعادة توزيعه. يمكنك أيضًا، على سبيل المثال، استخدام ميزة "الإعداد عن بُعد عبر Firebase" لإدارة قيمة الحدّ الأدنى لإرسال الرسائل غير المرغوب فيها، بدلاً من القيمة 0.8 التي تستخدمها حاليًا.

هناك العديد من الاحتمالات، وسنتعرّف عليها في دروس برمجية مستقبلية في هذه الدورة التدريبية.