वेब के लिए टेक्स्ट एम्बेड करने की गाइड

MediaPipe Text Embedder टास्क की मदद से, टेक्स्ट डेटा को संख्या के तौर पर निरूपित किया जा सकता है उनके मतलब को कैप्चर करें. ये निर्देश आपको वेब ब्राउज़र पर वेब और JavaScript ऐप्लिकेशन के लिए टेक्स्ट एम्बेडर.

क्षमताओं, मॉडल, और कॉन्फ़िगरेशन के विकल्पों के बारे में ज़्यादा जानकारी पाने के लिए इस टास्क की खास जानकारी देखें.

कोड का उदाहरण

टेक्स्ट एम्बेडर के लिए उदाहरण के तौर पर दिया गया कोड, इसे पूरी तरह लागू करने की सुविधा देता है आपके संदर्भ के लिए JavaScript में टास्क. यह कोड इस टास्क को टेस्ट करने में आपकी मदद करता है और अपना खुद का टेक्स्ट एम्बेड करने वाला ऐप्लिकेशन बनाना शुरू करें. इस दौरान आपके पास यह देखने का विकल्प होता है कि और इसमें बदलाव करें टेक्स्ट एम्बेडर का उदाहरण कोड बस अपने वेब ब्राउज़र का इस्तेमाल करके.

सेटअप

इस सेक्शन में, आपके डेवलपमेंट एनवायरमेंट को सेट अप करने और खास तौर पर टेक्स्ट एम्बेडर का इस्तेमाल करने के लिए कोड प्रोजेक्ट. इस पर सामान्य जानकारी के लिए MediaPipe के टास्क इस्तेमाल करने के लिए डेवलपमेंट एनवायरमेंट सेट अप करना. इसमें ये भी शामिल हैं प्लैटफ़ॉर्म वर्शन की ज़रूरी शर्तें पूरी करते हैं. इसके बारे में ज़्यादा जानने के लिए, वेब के लिए सेटअप गाइड.

JavaScript पैकेज

टेक्स्ट एम्बेडर कोड @mediapipe/tasks-text पैकेज. आप इन लाइब्रेरी को यहां दिए गए लिंक से ढूंढकर डाउनलोड कर सकते हैं: प्लैटफ़ॉर्म सेटअप गाइड.

लोकल स्टेजिंग के लिए, नीचे दिए गए कोड के साथ ज़रूरी पैकेज इंस्टॉल किए जा सकते हैं ऐसा करने के लिए:

npm install @mediapipe/tasks-text

अगर आपको इन्हें सर्वर पर डिप्लॉय करना है, तो कॉन्टेंट डिलीवरी का इस्तेमाल करें नेटवर्क (सीडीएन) सेवा, जैसे कि jsDelivr, सीधे अपने HTML पेज पर कोड जोड़ने का तरीका यहां दिया गया है:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
    crossorigin="anonymous"></script>
</head>

मॉडल

MediaPipe Text Embedder टास्क के लिए एक प्रशिक्षित मॉडल की ज़रूरत होती है, जो इसके साथ काम कर सके टास्क. टेक्स्ट एम्बेडर के लिए तैयार किए गए उपलब्ध मॉडल के बारे में ज़्यादा जानकारी के लिए, देखें टास्क की खास जानकारी मॉडल सेक्शन.

कोई मॉडल चुनें और डाउनलोड करें, और फिर उसे अपनी प्रोजेक्ट डायरेक्ट्री में सेव करें:

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

टास्क बनाएं

इन कामों के लिए, टेक्स्ट एम्बेडर 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();

कॉन्फ़िगरेशन विकल्प

इस टास्क में वेब और JavaScript के लिए ये कॉन्फ़िगरेशन विकल्प मौजूद हैं ऐप्लिकेशन:

विकल्प का नाम ब्यौरा मान की सीमा डिफ़ॉल्ट मान
l2Normalize क्या लौटाए गए फ़ीचर वेक्टर को L2 मानदंड के साथ नॉर्मलाइज़ करना है. इस विकल्प का उपयोग केवल तभी करें, जब मॉडल में पहले से कोई नेटिव नेटिव न हो L2_NORMALIZATION TFLite Op. ज़्यादातर मामलों में, पहले से ही ऐसा होता है और इसलिए, L2 नॉर्मलाइज़ेशन को TFLite अनुमान की मदद से बिना किसी ज़रूरत के पूरा किया जाता है इस विकल्प के लिए. Boolean False
quantize क्या लौटाए गए एम्बेड की संख्या को स्केलर क्वांटाइज़ेशन. एम्बेडिंग को अस्पष्ट रूप से इकाई-नॉर्म और इसलिए, किसी भी डाइमेंशन की वैल्यू [-1.0, 1.0] होने की गारंटी होती है. इस्तेमाल की जाने वाली चीज़ें अगर ऐसा नहीं है, तो l2normalize विकल्प चुनें. Boolean False

डेटा तैयार करें

टेक्स्ट एम्बेडर, टेक्स्ट (string) डेटा के साथ काम करता है. यह टास्क डेटा इनपुट प्री-प्रोसेसिंग, जिसमें टोकनाइज़ेशन और टेंसर प्री-प्रोसेसिंग शामिल है. सभी प्री-प्रोसेसिंग को embed फ़ंक्शन में हैंडल किया जाता है. कोई ज़रूरत नहीं है का इस्तेमाल करें.

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

टास्क को पूरा करें

टेक्स्ट एम्बेडर, अनुमानों को ट्रिगर करने के लिए embed फ़ंक्शन का इस्तेमाल करता है. टेक्स्ट के लिए एम्बेड करना, इसका मतलब इनपुट टेक्स्ट के लिए एम्बेडिंग वेक्टर दिखाना है.

नीचे दिया गया कोड बताता है कि टास्क मॉडल की मदद से प्रोसेसिंग कैसे लागू की जाती है.

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

नतीजों को हैंडल करना और दिखाना

टेक्स्ट एम्बेडर एक 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]);

टेक्स्ट एम्बेडर के उदाहरण वाले कोड से पता चलता है कि एम्बेडर को कैसे दिखाया जाए टास्क के नतीजे वापस मिले हैं, तो कोड का उदाहरण देखें.