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 ادغام کردید، و عملکرد را برای شناسایی جملات هرزنامه جدید به روز کردید!