1. قبل از شروع
در این لبه کد، میآموزید که چگونه مدل طبقهبندی متن را که از مجموعه دادههای اصلی وبلاگ-هرزنامه-کامنت ساخته شده است، به روز کنید، اما با نظرات خودتان بهبود یافته است تا بتوانید مدلی داشته باشید که با دادههای شما کار میکند.
پیش نیازها
این آزمایشگاه کد بخشی از دستهبندی متن در مسیر برنامههای Flutter است . کدهای این مسیر متوالی هستند. برنامه و مدلی که روی آن کار خواهید کرد باید قبلاً ساخته شده باشند، در حالی که شما همراه با کدها دنبال میکردید. اگر هنوز فعالیت های قبلی را انجام نداده اید، لطفاً دست از کار بکشید و همین الان این کار را انجام دهید:
- آموزش یک مدل تشخیص هرزنامه نظر با TensorFlow Lite Model Maker
- یک برنامه Flutter برای شناسایی هرزنامه کامنتها ایجاد کنید
چیزی که یاد خواهید گرفت
- نحوه بهروزرسانی مدل طبقهبندی متن که در Train یک مدل تشخیص هرزنامه-نظر با TensorFlow Lite Model Maker ایجاد کردهاید .
- چگونه مدل خود را سفارشی کنید تا شایع ترین هرزنامه ها را در برنامه شما مسدود کند.
آنچه شما نیاز دارید
- برنامه Flutter و مدل فیلتر هرزنامه که در فعالیتهای قبلی مشاهده کردهاید و ساختهاید.
2. طبقه بندی متن را تقویت کنید
- می توانید کد این کد را با شبیه سازی این مخزن و بارگیری برنامه از
tfserving-flutter/codelab2/finished
کنید. - پس از شروع تصویر TensorFlow Serving 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 App خود را به روز کنید
- فایل
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/
کپی کنید تا جایگزین فایل موجود شود. - برنامه Text Classification Flutter را به صورت دستی از شبیه ساز اندروید حذف کنید.
- دستور
'flutter run'
را در ترمینال خود اجرا کنید تا برنامه راه اندازی شود. - در برنامه،
buy my book to learn online trading
وارد کنید و سپس روی gRPC > Classify کلیک کنید.
اکنون این مدل برای تشخیص خرید کتاب من به تجارت آنلاین به عنوان هرزنامه بهبود یافته است.
6. تبریک می گویم
شما مدل را با داده های جدید دوباره آموزش دادید، آن را با برنامه Flutter ادغام کردید، و عملکرد را برای شناسایی جملات هرزنامه جدید به روز کردید!