MediaPipe Text Classifier टास्क की मदद से टेक्स्ट को तय की गई कैटगरी के सेट में बांटा जा सकता है, जैसे कि सकारात्मक या नकारात्मक भावनाएं. कैटगरी, मॉडल की ट्रेनिंग के दौरान तय की जाती हैं. यह टास्क, स्टैटिक डेटा के रूप में मशीन लर्निंग (एमएल) मॉडल वाले टेक्स्ट डेटा पर काम करता है. यह कैटगरी की सूची और उनके संभावित स्कोर देता है.
शुरू करें
आप जिस प्लैटफ़ॉर्म पर काम कर रहे हैं उसके लिए, इनमें से कोई एक गाइड फ़ॉलो करके इस टास्क का इस्तेमाल शुरू करें:
- Android - कोड का उदाहरण - गाइड
- Python - कोड का उदाहरण - गाइड
- वेब - कोड का उदाहरण - गाइड
- iOS - कोड का उदाहरण - गाइड
इन प्लैटफ़ॉर्म की गाइड से इस काम को लागू करने के बुनियादी तरीके की जानकारी मिलती है. इसमें एक सुझाया गया मॉडल और सुझाए गए कॉन्फ़िगरेशन विकल्पों के साथ कोड के उदाहरण भी शामिल हैं.
टास्क की जानकारी
इस सेक्शन में इस टास्क की क्षमताओं, इनपुट, आउटपुट, और कॉन्फ़िगरेशन के विकल्पों के बारे में बताया गया है.
सुविधाएं
- इनपुट टेक्स्ट प्रोसेसिंग - बिना इन-ग्राफ़ टोकन वाले मॉडल के लिए, आउट-ऑफ़-ग्राफ़ टोकनाइज़ेशन की सुविधा दें
- एक से ज़्यादा क्लासिफ़िकेशन हेड - हर हेड अपने खुद के कैटगरी सेट का इस्तेमाल कर सकता है
- लेबल मैप की स्थान-भाषा - डिसप्ले नेम के लिए इस्तेमाल की गई भाषा सेट करें
- स्कोर थ्रेशोल्ड - अनुमान के स्कोर के आधार पर नतीजों को फ़िल्टर करें
- टॉप-k क्लासिफ़िकेशन नतीजे - पहचान के नतीजों की संख्या फ़िल्टर करें
- लेबल की अनुमति वाली सूची और ब्लॉकलिस्ट - उन कैटगरी की जानकारी दें जिन पर गौर किया गया है
टास्क के इनपुट | टास्क के आउटपुट |
---|---|
टेक्स्ट क्लासिफ़ायर यह इनपुट डेटा टाइप स्वीकार करता है:
|
टेक्स्ट की कैटगरी तय करने वाला एल्गोरिदम, ऐसी कैटगरी की सूची दिखाता है जिनमें ये शामिल हैं:
|
कॉन्फ़िगरेशन विकल्प
इस टास्क में कॉन्फ़िगरेशन के ये विकल्प हैं:
विकल्प का नाम | ब्यौरा | वैल्यू रेंज | डिफ़ॉल्ट मान |
---|---|---|---|
displayNamesLocale |
अगर यह उपलब्ध हो, तो टास्क के मॉडल के मेटाडेटा में दिए गए डिसप्ले नेम के लिए, लेबल की भाषा सेट करता है. अंग्रेज़ी के लिए डिफ़ॉल्ट रूप से en
है. TensorFlow Lite Metadata Writer API का इस्तेमाल करके, कस्टम मॉडल के मेटाडेटा में
स्थानीय भाषा के हिसाब से लेबल जोड़े जा सकते हैं
| स्थान-भाषा का कोड | en |
maxResults |
यह विकल्प, टॉप-स्कोर किए गए क्लासिफ़िकेशन के नतीजों की ज़्यादा से ज़्यादा संख्या को सेट करता है, ताकि नतीजे दिखाए जा सकें. अगर < 0 है, तो सभी उपलब्ध नतीजे दिखाए जाएंगे. | कोई भी पॉज़िटिव नंबर | -1 |
scoreThreshold |
अनुमान के स्कोर का थ्रेशोल्ड सेट करता है, जो मॉडल मेटाडेटा (अगर कोई है) में दिए गए स्कोर को बदलता है. इस वैल्यू से कम के नतीजे अस्वीकार कर दिए गए हैं. | कोई भी फ़्लोट | सेट नहीं किया गया है |
categoryAllowlist |
अनुमति वाली कैटगरी के नामों की वैकल्पिक सूची सेट करता है. अगर यह खाली नहीं है, तो कैटगरी के जिन नतीजों की कैटगरी का नाम इस सेट में नहीं होगा उन्हें फ़िल्टर कर दिया जाएगा. श्रेणी के डुप्लीकेट या अज्ञात नामों पर ध्यान नहीं दिया जाता है.
यह विकल्प categoryDenylist के साथ म्यूचुअली एक्सक्लूसिव है और दोनों नतीजों का इस्तेमाल करने में गड़बड़ी है. |
कोई भी स्ट्रिंग | सेट नहीं किया गया है |
categoryDenylist |
उन कैटगरी के नामों की वैकल्पिक सूची सेट करता है जिनकी अनुमति नहीं है. अगर
यह फ़ील्ड खाली नहीं है, तो कैटगरी के जिन नतीजों की कैटगरी का नाम इस सेट में होगा उन्हें फ़िल्टर करके
बाहर कर दिया जाएगा. श्रेणी के डुप्लीकेट या अज्ञात नामों पर ध्यान नहीं दिया जाता है. यह विकल्प categoryAllowlist के साथ म्यूचुअली एक्सक्लूसिव है और इसका इस्तेमाल करने पर दोनों में गड़बड़ी होगी. |
कोई भी स्ट्रिंग | सेट नहीं किया गया है |
मॉडल
टेक्स्ट की कैटगरी तय करने वाली सुविधा का इस्तेमाल, एक से ज़्यादा एमएल मॉडल के साथ किया जा सकता है. इस टास्क के साथ डेवलप करना शुरू करने पर, अपने टारगेट प्लैटफ़ॉर्म के लिए सुझाए गए डिफ़ॉल्ट मॉडल से शुरुआत करें. आम तौर पर, अन्य उपलब्ध मॉडल में परफ़ॉर्मेंस, सटीक होने, रिज़ॉल्यूशन, और संसाधन की ज़रूरी शर्तों के बीच ट्रेड-ऑफ़ होता है. कुछ मामलों में, अतिरिक्त सुविधाएं शामिल होती हैं.
पहले से ट्रेनिंग दिए गए मॉडल को भावनाओं का विश्लेषण करने के लिए ट्रेनिंग दी जाती है. साथ ही, ये अनुमान लगाते हैं कि इनपुट टेक्स्ट की भावना सकारात्मक है या नकारात्मक. इन मॉडल को SST-2 (स्टैनफ़ोर्ड सेंटिमेंट ट्रीबैंक) डेटासेट पर ट्रेनिंग दी गई, जिसमें फ़िल्मों की समीक्षाएं पॉज़िटिव या नेगेटिव लेबल की गई होती हैं. ध्यान दें कि ये मॉडल सिर्फ़ अंग्रेज़ी में काम करते हैं. उन्हें फ़िल्म की समीक्षाओं के डेटासेट के बारे में ट्रेनिंग दी गई थी. इसलिए, हो सकता है कि दूसरे विषयों के बारे में जानकारी देने वाले टेक्स्ट की क्वालिटी कम दिखे.
BERT-क्लासिफ़ायर मॉडल (सुझाया गया)
यह मॉडल, BERT-आधारित आर्किटेक्चर (खास तौर पर, MobileBERT मॉडल) का इस्तेमाल करता है. बहुत सटीक होने की वजह से, इसका सुझाव दिया जाता है. इसमें ऐसा मेटाडेटा होता है जो टास्क को, ग्राफ़ से बाहर के BERT टोकनाइज़ेशन की अनुमति देता है.
मॉडल का नाम | इनपुट का आकार | क्वांटाइज़ेशन का टाइप | वर्शन |
---|---|---|---|
BERT-क्लासिफ़ायर | [1x128],[1x128],[1x128] | डाइनैमिक रेंज | नए |
शब्द एम्बेड करने का औसत मॉडल
यह मॉडल औसत शब्द एम्बेड करने वाले आर्किटेक्चर का इस्तेमाल करता है. BERT-क्लासिफ़ायर के मुकाबले, इस मॉडल में छोटा मॉडल साइज़ और इंतज़ार का समय कम होता है. हालांकि, यह अनुमान सटीक नहीं होता है. इस मॉडल को अतिरिक्त ट्रेनिंग के ज़रिए पसंद के मुताबिक बनाना, BERT-आधारित क्लासिफ़ायर की ट्रेनिंग से भी ज़्यादा तेज़ है. इस मॉडल में ऐसा मेटाडेटा होता है जिसकी मदद से टास्क, ग्राफ़ से बाहर के रेगुलर एक्सप्रेशन टोकन को इकट्ठा कर पाता है.
मॉडल का नाम | इनपुट का आकार | क्वांटाइज़ेशन का टाइप | वर्शन |
---|---|---|---|
शब्द एम्बेड करने की औसत संख्या | 1 x 256 | कोई नहीं (फ़्लोट32) | नए |
टास्क के मानदंड
यहां पहले से ट्रेन किए गए मॉडल पर आधारित पूरी पाइपलाइन के लिए टास्क के मानदंड दिए गए हैं. इंतज़ार के समय का नतीजा यह पता चलता है कि Pixel 6 को सीपीयू / जीपीयू का इस्तेमाल करके औसतन इंतज़ार किया जा सकता है.
मॉडल का नाम | सीपीयू (CPU) के इस्तेमाल में होने वाला समय | जीपीयू इंतज़ार का समय |
---|---|---|
औसत शब्द एम्बेड करना | 0.14 मि॰से॰ | - |
BERT-क्लासिफ़ायर | 57.68 मि॰से॰ | - |
कस्टम मॉडल
अगर आपको उपलब्ध मॉडल की क्षमताओं को बेहतर बनाना है या उनमें बदलाव करना है, तो इस टास्क के साथ, पसंद के मुताबिक बनाए गए एमएल मॉडल का इस्तेमाल किया जा सकता है. मॉडल मेकर का इस्तेमाल करके, मौजूदा मॉडल में बदलाव किया जा सकता है. इसके अलावा, TensorFlow जैसे टूल का इस्तेमाल करके भी मॉडल बनाया जा सकता है. MediaPipe के साथ इस्तेमाल किए जाने वाले कस्टम मॉडल TensorFlow Lite फ़ॉर्मैट में होने चाहिए और उनमें मॉडल के ऑपरेटिंग पैरामीटर की जानकारी देने वाला खास मेटाडेटा शामिल होना चाहिए. इस कार्य के लिए दिए गए मॉडल को संशोधित करने के लिए आपको अपना मॉडल बनाने से पहले Model Maker का उपयोग करना चाहिए.