وظیفه MediaPipe Text Classifier به شما امکان می دهد متن را به مجموعه ای از دسته بندی های تعریف شده، مانند احساسات مثبت یا منفی طبقه بندی کنید. دسته بندی ها مدلی را که استفاده می کنید و نحوه آموزش آن مدل تعیین می کنند. این دستورالعملها به شما نشان میدهند که چگونه از Text Classifier با پایتون استفاده کنید.
می توانید با مشاهده نسخه نمایشی وب، این کار را در عمل مشاهده کنید. برای اطلاعات بیشتر در مورد قابلیتها، مدلها و گزینههای پیکربندی این کار، به نمای کلی مراجعه کنید.
نمونه کد
کد مثال برای Text Classifier اجرای کامل این کار در پایتون را برای مرجع شما فراهم می کند. این کد به شما کمک می کند تا این کار را آزمایش کنید و شروع به ساخت برنامه طبقه بندی متن خود کنید. شما می توانید کد نمونه Text Classifier را فقط با استفاده از مرورگر وب خود مشاهده، اجرا و ویرایش کنید.
اگر در حال پیادهسازی طبقهبندیکننده متن برای Raspberry Pi هستید، به برنامه نمونه Raspberry Pi مراجعه کنید.
راه اندازی
این بخش مراحل کلیدی را برای راه اندازی محیط توسعه و پروژه های کد به طور خاص برای استفاده از Text Classifier توضیح می دهد. برای اطلاعات کلی در مورد تنظیم محیط توسعه خود برای استفاده از MediaPipe Tasks، از جمله الزامات نسخه پلت فرم، به راهنمای راه اندازی برای Python مراجعه کنید.
بسته ها
Text Classifier از بسته mediapipe pip استفاده می کند. شما می توانید این وابستگی ها را با موارد زیر نصب کنید:
$ python -m pip install mediapipe
واردات
برای دسترسی به توابع تکلیف Text Classifier کلاس های زیر را وارد کنید:
from mediapipe.tasks import python
from mediapipe.tasks.python import text
مدل
وظیفه MediaPipe Text Classifier به یک مدل آموزش دیده نیاز دارد که با این کار سازگار باشد. برای اطلاعات بیشتر در مورد مدلهای آموزشدیده موجود برای Text Classifier، بخش مدلهای نمای کلی کار را ببینید.
یک مدل را انتخاب و دانلود کنید و سپس آن را در یک فهرست محلی ذخیره کنید:
model_path = '/absolute/path/to/text_classifier.tflite'
مسیر مدل را با پارامتر شیء BaseOptions
model_asset_path
مانند شکل زیر مشخص کنید:
base_options = BaseOptions(model_asset_path=model_path)
کار را ایجاد کنید
وظیفه MediaPipe Text Classifier از تابع create_from_options
برای تنظیم کار استفاده می کند. تابع create_from_options
مقادیری را برای گزینه های پیکربندی برای تنظیم گزینه های طبقه بندی کننده می پذیرد. همچنین می توانید کار را با استفاده از تابع factory create_from_model_path
مقداردهی اولیه کنید. تابع create_from_model_path
یک مسیر نسبی یا مطلق به فایل مدل آموزش دیده می پذیرد. برای اطلاعات بیشتر در مورد گزینه های پیکربندی، گزینه های پیکربندی را ببینید.
کد زیر نحوه ساخت و پیکربندی این وظیفه را نشان می دهد.
base_options = python.BaseOptions(model_asset_path=model_path)
options = text.TextClassifierOptions(base_options=base_options)
with python.text.TextClassifier.create_from_options(options) as classifier:
classification_result = classifier.classify(text)
گزینه های پیکربندی
این کار دارای گزینه های پیکربندی زیر برای برنامه های Android است:
نام گزینه | توضیحات | محدوده ارزش | مقدار پیش فرض |
---|---|---|---|
display_names_locale | زبان برچسبها را برای استفاده برای نامهای نمایشی ارائه شده در فراداده مدل کار، در صورت وجود، تنظیم میکند. پیش فرض برای انگلیسی en است. با استفاده از TensorFlow Lite Metadata Writer API میتوانید برچسبهای محلی را به ابرداده یک مدل سفارشی اضافه کنید. | کد محلی | en |
max_results | حداکثر تعداد اختیاری نتایج طبقه بندی با امتیاز بالا را برای بازگشت تنظیم می کند. اگر < 0 باشد، تمام نتایج موجود برگردانده خواهند شد. | هر عدد مثبت | -1 |
score_threshold | آستانه امتیاز پیشبینی را تنظیم میکند که بر آستانه ارائهشده در فراداده مدل (در صورت وجود) لغو میشود. نتایج زیر این مقدار رد می شوند. | هر شناور | تنظیم نشده است |
category_allowlist | فهرست اختیاری نامهای دستهبندی مجاز را تنظیم میکند. در صورت خالی نبودن، نتایج طبقهبندی که نام دسته آنها در این مجموعه نیست، فیلتر میشوند. نامهای دستهبندی تکراری یا ناشناخته نادیده گرفته میشوند. این گزینه با category_denylist منحصر به فرد است و از هر دو نتیجه در یک خطا استفاده می کند. | هر رشته | تنظیم نشده است |
category_denylist | فهرست اختیاری نامهای دستههایی را که مجاز نیستند را تنظیم میکند. در صورت خالی نبودن، نتایج طبقه بندی که نام دسته آنها در این مجموعه است فیلتر می شود. نامهای دستهبندی تکراری یا ناشناخته نادیده گرفته میشوند. این گزینه با category_allowlist منحصر به فرد است و از هر دو نتیجه در یک خطا استفاده می کند. | هر رشته | تنظیم نشده است |
داده ها را آماده کنید
Text Classifier با داده های متن ( str
) کار می کند. وظیفه، پیش پردازش ورودی داده، از جمله پیش پردازش توکن و تانسور را انجام می دهد.
تمام پیش پردازش ها در تابع classify
انجام می شود. نیازی به پیش پردازش اضافی متن ورودی از قبل نیست.
input_text = 'The input text to be classified.'
وظیفه را اجرا کنید
Text Classifier از تابع classify
برای استنتاج استفاده می کند. برای طبقهبندی متن، این به معنای برگرداندن دستههای ممکن برای متن ورودی است.
کد زیر نحوه اجرای پردازش با مدل وظیفه را نشان می دهد.
with python.text.TextClassifier.create_from_options(options) as classifier:
classification_result = classifier.classify(text)
کنترل و نمایش نتایج
Text Classifier یک شی TextClassifierResult
حاوی لیستی از دسته بندی های ممکن برای متن ورودی را خروجی می دهد. دستهها با مدلی که استفاده میکنید تعریف میشوند، بنابراین اگر دستههای متفاوتی میخواهید، مدل متفاوتی را انتخاب کنید یا یک مدل موجود را دوباره آموزش دهید.
شکل زیر نمونه ای از داده های خروجی از این کار را نشان می دهد:
TextClassificationResult:
Classification #0 (single classification head):
ClassificationEntry #0:
Category #0:
category name: "positive"
score: 0.8904
index: 0
Category #1:
category name: "negative"
score: 0.1096
index: 1
این نتیجه با اجرای دستهبندی BERT بر روی متن ورودی به دست آمده است: "an imperfect but overall entertaining mystery"
.