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

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، يمكنك بدء تشغيله مباشرةً من هنا، أو الحصول على الرمز من Repo وتشغيله في بيئة ورقة الملاحظات التي تختارها.

إليك الرمز الجديد:

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

راجِع ورقة الملاحظات لتنزيل ملفات model وvocab وlabels. في الخطوة التالية، ستُدمجهما في Android.

5- تحديث تطبيق Android

  1. افتح التطبيق في "استوديو Android" وتأكّد من اختيار Android في أعلى مستكشف المشاريع.
  2. ابحث عن ملف assets الذي يحتوي على التصنيفات والنموذج والمصطلح من الإصدار القديم من ملف النموذج.

91116524e9016ed4.png

  1. انقر بزر الماوس الأيمن على مجلد مواد العرض.
  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 المتاحة لك الآن.

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