وظیفه MediaPipe Language Detector به شما امکان می دهد زبان یک متن را شناسایی کنید. این دستورالعمل ها به شما نشان می دهد که چگونه از زبان شناس برای برنامه های وب و جاوا اسکریپت استفاده کنید. نمونه کد شرح داده شده در این دستورالعمل ها در GitHub موجود است.
با مشاهده دمو می توانید این کار را در عمل مشاهده کنید. برای اطلاعات بیشتر در مورد قابلیتها، مدلها و گزینههای پیکربندی این کار، به نمای کلی مراجعه کنید.
نمونه کد
کد مثال برای زبان ردیاب اجرای کامل این کار را در جاوا اسکریپت برای مرجع شما فراهم می کند. این کد به شما کمک می کند این کار را آزمایش کنید و شروع به ساخت ویژگی آشکارساز زبان خود کنید. فقط با استفاده از مرورگر وب خود می توانید کد نمونه زبان شناساگر را مشاهده، اجرا و ویرایش کنید.
راه اندازی
این بخش مراحل کلیدی را برای راهاندازی محیط توسعه و پروژههای کد مخصوصاً برای استفاده از زبانشناس توضیح میدهد. برای اطلاعات کلی در مورد تنظیم محیط توسعه خود برای استفاده از وظایف MediaPipe، از جمله الزامات نسخه پلت فرم، به راهنمای راه اندازی برای وب مراجعه کنید.
بسته های جاوا اسکریپت
کد تشخیص زبان از طریق بسته @mediapipe/tasks-text
در دسترس است. میتوانید این کتابخانهها را از پیوندهای ارائه شده در راهنمای راهاندازی پلتفرم پیدا و دانلود کنید.
با استفاده از دستور زیر می توانید بسته های مورد نیاز را با کد زیر برای مرحله محلی نصب کنید:
npm install @mediapipe/tasks-text
اگر میخواهید روی یک سرور مستقر شوید، میتوانید از یک سرویس شبکه تحویل محتوا (CDN) مانند jsDelivr برای افزودن کد مستقیماً به صفحه HTML خود به شرح زیر استفاده کنید:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
crossorigin="anonymous"></script>
</head>
مدل
وظیفه MediaPipe Language Detector به یک مدل آموزش دیده نیاز دارد که با این کار سازگار باشد. برای اطلاعات بیشتر در مورد مدل های آموزش دیده موجود برای آشکارساز زبان، به بخش مدل های نمای کلی کار مراجعه کنید.
یک مدل را انتخاب و دانلود کنید و سپس آن را در فهرست پروژه خود ذخیره کنید:
<dev-project-root>/app/shared/models
مسیر مدل را با پارامتر شی baseOptions
modelAssetPath
، مانند شکل زیر مشخص کنید:
baseOptions: {
modelAssetPath: `/app/shared/models/language_detector.tflite`
}
کار را ایجاد کنید
از یکی از توابع LanguageDetector.createFrom...()
Language Detector برای آماده کردن کار برای اجرای استنتاج استفاده کنید. می توانید از تابع createFromModelPath()
با یک مسیر نسبی یا مطلق به فایل مدل آموزش دیده استفاده کنید. مثال کد زیر استفاده از تابع createFromOptions()
نشان می دهد. برای اطلاعات بیشتر در مورد پیکربندی وظایف، گزینه های پیکربندی را ببینید.
کد زیر نحوه ساخت و پیکربندی این وظیفه را نشان می دهد.
async function createDetector() {
const textFiles = await FilesetResolver.forTextTasks(
"https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
languageDetector = await languageDetector.createFromOptions(
textFiles,
{
baseOptions: {
modelAssetPath: `https://storage.googleapis.com/mediapipe-models/language_detector/language_detector/float32/1/language_detector.tflite`
},
}
);
}
createDetector();
گزینه های پیکربندی
این کار دارای گزینه های پیکربندی زیر برای برنامه های وب و جاوا اسکریپت است:
نام گزینه | توضیحات | محدوده ارزش | مقدار پیش فرض |
---|---|---|---|
maxResults | حداکثر تعداد اختیاری پیشبینیهای زبان با امتیاز بالا را برای بازگشت تنظیم میکند. اگر این مقدار کمتر از صفر باشد، تمام نتایج موجود برگردانده می شوند. | هر عدد مثبت | -1 |
scoreThreshold | آستانه امتیاز پیشبینی را تنظیم میکند که بر آستانه ارائهشده در فراداده مدل (در صورت وجود) لغو میشود. نتایج زیر این مقدار رد می شوند. | هر شناور | تنظیم نشده است |
categoryAllowlist | لیست اختیاری کدهای زبان مجاز را تنظیم می کند. اگر خالی نباشد، پیشبینیهای زبانی که کد زبان آنها در این مجموعه نیست فیلتر میشوند. این گزینه با categoryDenylist منحصر به فرد است و از هر دو نتیجه در یک خطا استفاده می کند. | هر رشته | تنظیم نشده است |
categoryDenylist | لیست اختیاری کدهای زبانی را که مجاز نیستند را تنظیم می کند. اگر خالی نباشد، پیشبینیهای زبانی که کد زبان آنها در این مجموعه است فیلتر میشوند. این گزینه با categoryAllowlist منحصر به فرد است و از هر دو نتیجه در خطا استفاده می کند. | هر رشته | تنظیم نشده است |
داده ها را آماده کنید
آشکارساز زبان با داده های متن ( string
) کار می کند. این وظیفه، پیش پردازش ورودی داده، از جمله پیش پردازش توکن و تانسور را انجام می دهد. تمام پیش پردازش ها در تابع detect
انجام می شود. نیازی به پیش پردازش اضافی متن ورودی از قبل نیست.
const inputText = "The input text for the detector.";
وظیفه را اجرا کنید
آشکارساز زبان از تابع detect
برای استنتاج استفاده می کند. برای تشخیص زبان، این به معنای برگرداندن زبان های ممکن برای متن ورودی است.
کد زیر نحوه اجرای پردازش با مدل وظیفه را نشان می دهد:
// Wait to run the function until inner text is set
const detectionResult = languageDetector.detect(inputText);
کنترل و نمایش نتایج
وظیفه آشکارساز زبان یک LanguageDetectorResult
شامل فهرستی از پیشبینیهای زبان به همراه احتمالات آن پیشبینیها را به دست میدهد. شکل زیر نمونه ای از داده های خروجی از این کار را نشان می دهد:
LanguageDetectorResult:
LanguagePrediction #0:
language_code: "fr"
probability: 0.999781
این نتیجه با اجرای مدل بر روی متن ورودی به دست آمده است: "Il ya beaucoup de bouches qui parlent et fort peu de têtes qui pensent."
.
برای مثالی از کد مورد نیاز برای پردازش و تجسم نتایج این کار، به برنامه نمونه وب مراجعه کنید.