1. قبل البدء
في هذا الدرس التطبيقي حول الترميز، ستتعرّف على كيفية تعديل نموذج تصنيف النص الذي تم إنشاؤه من مجموعة البيانات الأصلية المتعلقة بالتعليقات غير المرغوب فيها على المدوّنات، ولكن تم تحسينه من خلال إضافة تعليقات خاصة بك حتى تتمكّن من إنشاء نموذج يتوافق مع بياناتك.
المتطلّبات الأساسية
يشكّل هذا الدرس التطبيقي جزءًا من البدء في تصنيف النص في مسار تطبيقات Flutter. الدروس التطبيقية حول الترميز في هذا المسار متسلسلة. يجب أن يتم إنشاء التطبيق والنموذج الذي ستعمل عليه في السابق، أثناء متابعة الدروس التطبيقية حول الترميز. إذا لم تكن قد أتممت الأنشطة السابقة بعد، يُرجى إيقافها الآن:
- تدريب نموذج رصد التعليقات غير المرغوب فيها باستخدام TensorFlow Lite Lite Maker Maker
- إنشاء تطبيق Flutter لاكتشاف الدرس التطبيقي حول ترميز التعليقات غير المرغوب فيها
ما ستتعرَّف عليه
- كيفية تعديل نموذج تصنيف النص الذي أنشأته في تدريب نموذج اكتشاف التعليقات غير المرغوب فيها باستخدام الترميز البرمجي TensorFlow Lite لمصمم النماذج.
- كيفية تخصيص النموذج بحيث يحجب المحتوى غير المرغوب فيه الأكثر شيوعًا في تطبيقك.
الأشياء التي تحتاج إليها
- تطبيق Flutter ونموذج فلتر الرسائل غير المرغوب فيها الذي لاحظته وأنشأته في الأنشطة السابقة.
2. تحسين تصنيف النص
- يمكنك الحصول على الرمز لهذا الرمز عن طريق نسخ هذا المستودع وتحميل التطبيق من مجلد
tfserving-flutter/codelab2/finished
. - بعد بدء صورة TensorFlow docker، في التطبيق الذي أنشأته، أدخِل
buy my book to learn online trading
، ثم انقر على gRPC > Classify.
يحصل التطبيق على نتيجة منخفضة للمحتوى غير المرغوب فيه بسبب عدم توفّر عدد كبير من مواضع التداول على الإنترنت في مجموعة البيانات الأصلية، ولم يتعرّف النموذج على أنه محتوى غير مرغوب فيه. في هذا الدرس التطبيقي حول الترميز، يمكنك تعديل النموذج ببيانات جديدة بحيث يتعرّف النموذج على الجملة نفسها باعتبارها محتوى غير مرغوب فيه.
3- تعديل ملف CSV
لتدريب النموذج الأصلي، تم إنشاء مجموعة بيانات كملف CSV (lmblog_comments.csv
) تحتوي على ما يقرب من ألف تعليق مصنّف إما كمحتوى غير مرغوب فيه أو ليس غير مرغوب فيه. (افتح ملف CSV في أي مُحرِّر نصوص إذا أردت فحصه.)
ويتألف ملف CSV من الصف الأول الذي يصف العمودين commenttext
وspam
. يتبع كل صف تالٍ التنسيق التالي:
يتم تعيين تصنيف على اليسار لقيمة true
للمحتوى غير المرغوب فيه، وقيمة false
بدلاً من الرسائل غير المرغوب فيها. مثلاً، يُعدّ السطر الثالث غير مرغوب فيه.
إذا أضاف الأشخاص محتوى غير مرغوب فيه إلى موقعك الإلكتروني باستخدام رسائل عن التداول على الإنترنت، يمكنك إضافة أمثلة للتعليقات غير المرغوب فيها في أسفل موقعك الإلكتروني. مثلاً:
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
، حتى تتمكن من استخدامه لتدريب نموذج جديد.
بالنسبة إلى بقية هذا الدرس التطبيقي، يمكنك استخدام المثال الذي تم توفيره وتعديله واستضافته على Cloud Storage مع تعديلات التداول على الإنترنت. إذا أردت استخدام مجموعة البيانات الخاصة بك، يمكنك تغيير عنوان URL في الرمز.
4. إعادة تدريب النموذج باستخدام البيانات الجديدة
لإعادة تدريب النموذج، يمكنك ببساطة إعادة استخدام الرمز من (SpamCommentsModelMaker.ipynb
)، ولكن يمكنك توجيهه إلى مجموعة بيانات CSV الجديدة، والتي تحمل اسم lmblog_comments_extras.csv
. وفي حال أردت الحصول على دفتر الملاحظات الكامل الذي يتضمّن المحتوى المعدَّل، يمكنك العثور عليه بالصيغة SpamCommentsUpdateModelMaker.ipynb.
.
إذا كان بإمكانك الوصول إلى Colaboratory، يمكنك إطلاقه مباشرةً. بخلاف ذلك، يمكنك الحصول على الرمز من المستودع ثم تشغيله في بيئة الكمبيوتر الدفتري التي تختارها.
يبدو الرمز الجديد مقتطف الرمز التالي:
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)
عند التدريب، من المفترض أن تلاحظ أن النموذج يتدرب على مستوى عالٍ من الدقة:
اضغط المجلد بالكامل من /mm_update_spam_savedmodel
وأسفل ملف mm_update_spam_savedmodel.zip
الذي تم إنشاؤه.
# Rename the SavedModel subfolder to a version number
!mv /mm_update_spam_savedmodel/saved_model /mm_update_spam_savedmodel/123
!zip -r mm_update_spam_savedmodel.zip /mm_update_spam_savedmodel/
5. بدء docker وتحديث تطبيق Flutter
- فك ضغط ملف
mm_update_spam_savedmodel.zip
الذي تم تنزيله في مجلد، ثم أوقِف مثيل حاوية docker من الدرس التطبيقي السابق وابدأ تشغيله مرة أخرى، ولكن استبدل العنصر النائبPATH/TO/UPDATE/SAVEDMODEL
بالمسار المطلق للمجلد الذي يستضيف ملفاتك التي تم تنزيلها:
docker run -it --rm -p 8500:8500 -p 8501:8501 -v "PATH/TO/UPDATE/SAVEDMODEL:/models/spam-detection" -e MODEL_NAME=spam-detection tensorflow/serving
- افتح الملف
lib/main.dart
باستخدام محرِّر الرموز المفضّل لديك، ثم ابحث عن الجزء الذي يعرّف المتغيّرَينinputTensorName
وoutTensorName
:
const inputTensorName = 'input_3';
const outputTensorName = 'dense_5';
- أعِد ضبط المتغيّر
inputTensorName
إلى القيمة "input_1'
" والمتغيّرoutputTensorName
إلى القيمة'dense_1'
:
const inputTensorName = 'input_1';
const outputTensorName = 'dense_1';
- انسخ ملف
vocab.txt
الذي نزّلته إلى مجلدlib/assets/
لاستبدال الملف الحالي. - أزِل تطبيق Flutter يدويًا من محاكي Android.
- شغِّل الأمر
'flutter run'
في الوحدة الطرفية لتشغيل التطبيق. - في التطبيق، أدخِل
buy my book to learn online trading
ثم انقر على gRPC > Classify.
والآن، تم تحسين النموذج لاكتشاف شراء الكتاب للبيع عبر الإنترنت.
6- تهانينا
لقد أعدت تدريب النموذج على بيانات جديدة ودمجته مع تطبيق Flutter وعدّلت الوظيفة لاكتشاف جمل جديدة غير مرغوب فيها.