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

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

91116524e9016ed4.png

  1. انقروا بزر الماوس الأيمن على مجلد assets.
  2. في القائمة، اختاروا خيار فتح المجلد باستخدام مدير الملفات في نظام التشغيل. (عرض في Finder على أجهزة Mac، كما هو موضّح. سيكون الخيار العرض في Explorer على أجهزة 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، تمكّنتم من تعديل وظائفهما بدون كتابة أي رمز برمجي جديد.

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

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

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

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

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