वेब के लिए भाषा का पता लगाने की गाइड

MediaPipe भाषा डिटेक्टर टास्क से, आपको टेक्स्ट के किसी हिस्से की भाषा की पहचान करने में मदद मिलती है. इन निर्देशों से आपको पता चलता है कि वेब और JavaScript ऐप्लिकेशन के लिए, भाषा का पता लगाने वाले टूल का इस्तेमाल कैसे किया जाता है. इन निर्देशों में दिया गया कोड सैंपल, GitHub पर उपलब्ध है.

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

कोड का उदाहरण

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

सेटअप

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

JavaScript पैकेज

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

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

npm install @mediapipe/tasks-text

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

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

मॉडल

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

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

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

baseOptions ऑब्जेक्ट modelAssetPath पैरामीटर का इस्तेमाल करके, मॉडल के पाथ की जानकारी दें, जैसा कि यहां दिखाया गया है:

baseOptions: {
        modelAssetPath: `/app/shared/models/language_detector.tflite`
      }

टास्क बनाएं

अनुमान लगाने के लिए टास्क तैयार करने के लिए, भाषा का पता लगाने वाले LanguageDetector.createFrom...() फ़ंक्शन में से किसी एक का इस्तेमाल करें. ट्रेन की गई मॉडल फ़ाइल के रिलेटिव या ऐब्सलूट पाथ के साथ, 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();

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

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

विकल्प का नाम ब्यौरा वैल्यू रेंज डिफ़ॉल्ट मान
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 y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent.".

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