راهنمای جاسازی متن برای وب

وظیفه MediaPipe Text Embedder به شما امکان می دهد یک نمایش عددی از داده های متنی ایجاد کنید تا معنای معنایی آن را دریافت کنید. این دستورالعمل‌ها به شما نشان می‌دهند که چگونه از Text Embedder برای برنامه‌های وب و جاوا اسکریپت استفاده کنید.

برای اطلاعات بیشتر در مورد قابلیت‌ها، مدل‌ها و گزینه‌های پیکربندی این کار، به نمای کلی مراجعه کنید.

نمونه کد

کد مثال برای Text Embedder اجرای کامل این کار را در جاوا اسکریپت برای مرجع شما فراهم می کند. این کد به شما کمک می کند تا این کار را آزمایش کنید و شروع به ساخت برنامه جاسازی متن خود کنید. می‌توانید کد نمونه Text Embedder را فقط با استفاده از مرورگر وب خود مشاهده، اجرا و ویرایش کنید.

برپایی

این بخش مراحل کلیدی را برای راه اندازی محیط توسعه و پروژه های کد به طور خاص برای استفاده از Text Embedder توضیح می دهد. برای اطلاعات کلی در مورد تنظیم محیط توسعه خود برای استفاده از وظایف MediaPipe، از جمله الزامات نسخه پلت فرم، به راهنمای راه اندازی برای وب مراجعه کنید.

بسته های جاوا اسکریپت

کد Text Embedder از طریق بسته @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 Text Embedder به یک مدل آموزش دیده نیاز دارد که با این کار سازگار باشد. برای اطلاعات بیشتر در مورد مدل‌های آموزش‌دیده موجود برای Text Embedder، بخش مدل‌های نمای کلی کار را ببینید.

یک مدل را انتخاب و دانلود کنید و سپس آن را در فهرست پروژه خود ذخیره کنید:

<dev-project-root>/app/shared/models

کار را ایجاد کنید

از یکی از توابع Text Embedder createFrom...() برای آماده کردن کار برای اجرای استنتاج استفاده کنید. می توانید از تابع createFromModelPath() با یک مسیر نسبی یا مطلق به فایل مدل آموزش دیده استفاده کنید. مثال کد زیر استفاده از تابع createFromOptions() نشان می دهد. برای اطلاعات بیشتر در مورد گزینه های پیکربندی موجود، به گزینه های پیکربندی مراجعه کنید.

کد زیر نحوه ساخت و پیکربندی این وظیفه را نشان می دهد:

async function createEmbedder() {
  const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  textEmbedder = await TextEmbedder.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_embedder/universal_sentence_encoder.tflite`
      },
      quantize: true
    }
  );
}
createEmbedder();

گزینه های پیکربندی

این کار دارای گزینه های پیکربندی زیر برای برنامه های وب و جاوا اسکریپت است:

نام گزینه شرح محدوده ارزش مقدار پیش فرض
l2Normalize آیا باید بردار ویژگی بازگشتی را با نرمال L2 عادی سازی کرد. فقط در صورتی از این گزینه استفاده کنید که مدل از قبل دارای یک L2_NORMALIZATION TFLite Op بومی نباشد. در بیشتر موارد، این قبلاً وجود دارد و بنابراین عادی سازی L2 از طریق استنتاج TFLite بدون نیاز به این گزینه حاصل می شود. Boolean False
quantize اینکه آیا تعبیه برگشتی باید از طریق کوانتیزه کردن اسکالر به بایت تبدیل شود یا خیر. تعبیه‌ها به طور ضمنی واحد هنجار فرض می‌شوند و بنابراین هر بعد تضمین می‌شود که مقداری در [-1.0، 1.0] داشته باشد. اگر اینطور نیست از گزینه l2Normalize استفاده کنید. Boolean False

داده ها را آماده کنید

Text Embedder با داده های متن ( string ) کار می کند. این وظیفه، پیش پردازش ورودی داده، از جمله پیش پردازش توکن و تانسور را انجام می دهد. تمام پیش پردازش ها در تابع embed انجام می شود. نیازی به پیش پردازش اضافی متن ورودی از قبل نیست.

const inputText = "The input text to be embedded.";

وظیفه را اجرا کنید

Text Embedder از تابع embed برای استنتاج استفاده می کند. برای جاسازی متن، این به معنای برگرداندن بردارهای جاسازی برای متن ورودی است.

کد زیر نحوه اجرای پردازش با مدل وظیفه را نشان می دهد.

// Wait to run the function until inner text is set
const embeddingResult = textEmbedder.embed(
  inputText
);

کنترل و نمایش نتایج

Text Embedder یک TextEmbedderResult را خروجی می‌دهد که حاوی لیستی از جاسازی‌ها (اعم از ممیز شناور یا اسکالر) برای متن ورودی است.

شکل زیر نمونه ای از داده های خروجی از این کار را نشان می دهد:

TextEmbedderResult:
  Embedding #0 (sole embedding head):
    float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
    head_index: 0

شما می توانید شباهت معنایی دو جاسازی را با استفاده از تابع TextEmbedder.cosineSimilarity مقایسه کنید. برای نمونه کد زیر را ببینید.

// Compute cosine similarity.
const similarity = TextEmbedder.cosineSimilarity(
  embeddingResult.embeddings[0],
  otherEmbeddingResult.embeddings[0]);

کد مثال Text Embedder نحوه نمایش نتایج embedder بازگشتی از کار را نشان می دهد، برای جزئیات به مثال کد مراجعه کنید.