یک مدل طبقه‌بندی متن سفارشی با TensorFlow Lite Model Maker ایجاد کنید

1. قبل از شروع

در این لبه کد، می‌آموزید که چگونه مدل طبقه‌بندی متن را که از مجموعه داده‌های اصلی وبلاگ-هرزنامه-کامنت ساخته شده است، به روز کنید، اما با نظرات خودتان بهبود یافته است تا بتوانید مدلی داشته باشید که با داده‌های شما کار می‌کند.

پیش نیازها

این آزمایشگاه کد بخشی از دسته‌بندی متن در مسیر برنامه‌های Flutter است . کدهای این مسیر متوالی هستند. برنامه و مدلی که روی آن کار خواهید کرد باید قبلاً ساخته شده باشند، در حالی که شما همراه با کدها دنبال می‌کردید. اگر هنوز فعالیت های قبلی را انجام نداده اید، لطفاً دست از کار بکشید و همین الان این کار را انجام دهید:

چیزی که یاد خواهید گرفت

آنچه شما نیاز دارید

  • برنامه Flutter و مدل فیلتر هرزنامه که در فعالیت‌های قبلی مشاهده کرده‌اید و ساخته‌اید.

2. طبقه بندی متن را تقویت کنید

  1. می توانید کد این کد را با شبیه سازی این مخزن و بارگیری برنامه از tfserving-flutter/codelab2/finished کنید.
  2. پس از شروع تصویر TensorFlow Serving Docker، در اپلیکیشنی که ساختید، گزینه buy my book to learn online trading وارد کنید و سپس روی gRPC > Classify کلیک کنید.

8f1e1974522f274d.png

این برنامه امتیاز هرزنامه پایینی ایجاد می کند زیرا معاملات آنلاین زیادی در مجموعه داده اصلی وجود ندارد و مدل متوجه نشده است که هرزنامه است. در این کد لبه، شما مدل را با داده های جدید به روز می کنید تا مدل همان جمله را به عنوان اسپم شناسایی کند!

2bd68691a26aa3da.png

3. فایل CSV خود را ویرایش کنید

برای آموزش مدل اصلی، یک مجموعه داده به عنوان یک CSV ( lmblog_comments.csv ) ایجاد شد که حاوی تقریباً هزار نظر با برچسب هرزنامه یا غیر هرزنامه است. (اگر می خواهید CSV را در هر ویرایشگر متنی باز کنید.)

ساختار فایل CSV به این صورت است که ردیف اول ستون‌هایی را که دارای برچسب commenttext و spam هستند، توصیف کند. هر ردیف بعدی از این فرمت پیروی می کند:

62025273971c9a7f.png

به برچسب سمت راست مقدار 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)

هنگامی که تمرین می کنید، باید ببینید که مدل همچنان در سطح بالایی از دقت تمرین می کند:

96a1547ddb6edf5b.png

کل پوشه /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 خود را به روز کنید

  1. فایل 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
  1. فایل lib/main.dart را با ویرایشگر کد مورد علاقه خود باز کنید و سپس بخشی را که متغیرهای inputTensorName و outTensorName را تعریف می کند، پیدا کنید:
const inputTensorName = 'input_3';
const outputTensorName = 'dense_5';
  1. متغیر inputTensorName را به مقدار " input_1' و متغیر outputTensorName را به مقدار 'dense_1' :
const inputTensorName = 'input_1';
const outputTensorName = 'dense_1';
  1. فایل vocab.txt را که دانلود کرده اید در پوشه lib/assets/ کپی کنید تا جایگزین فایل موجود شود.
  2. برنامه Text Classification Flutter را به صورت دستی از شبیه ساز اندروید حذف کنید.
  3. دستور 'flutter run' را در ترمینال خود اجرا کنید تا برنامه راه اندازی شود.
  4. در برنامه، buy my book to learn online trading وارد کنید و سپس روی gRPC > Classify کلیک کنید.

اکنون این مدل برای تشخیص خرید کتاب من به تجارت آنلاین به عنوان هرزنامه بهبود یافته است.

6. تبریک می گویم

شما مدل را با داده های جدید دوباره آموزش دادید، آن را با برنامه Flutter ادغام کردید، و عملکرد را برای شناسایی جملات هرزنامه جدید به روز کردید!

بیشتر بدانید