راهنمای تشخیص زبان برای وب

وظیفه 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." .

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