Python के लिए टेक्स्ट क्लासिफ़िकेशन गाइड

MediaPipe Text Classifier टास्क की मदद से, टेक्स्ट को तय की गई कैटगरी में बांटा जा सकता है जैसे, अच्छी या बुरी भावना. कैटगरी, मॉडल के हिसाब से तय की जाती हैं मॉडल को ट्रेनिंग कैसे दी गई थी. ये निर्देश आपको Python के साथ टेक्स्ट क्लासिफ़ायर.

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

कोड का उदाहरण

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

अगर आप Raspberry Pi के लिए टेक्स्ट क्लासिफ़ायर इस्तेमाल कर रहे हैं, तो इन्हें देखें Raspberry Pi का उदाहरण ऐप्लिकेशन है.

सेटअप

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

पैकेज

टेक्स्ट क्लासिफ़ायर, मीडियापाइप पीआईपी पैकेज का इस्तेमाल करता है. आप इंस्टॉल कर सकते हैं के साथ ये डिपेंडेंसी:

$ python -m pip install mediapipe

आयात

टेक्स्ट क्लासिफ़ायर के टास्क फ़ंक्शन ऐक्सेस करने के लिए, इन क्लास को इंपोर्ट करें:

from mediapipe.tasks import python
from mediapipe.tasks.python import text

मॉडल

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

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

model_path = '/absolute/path/to/text_classifier.tflite'

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

base_options = BaseOptions(model_asset_path=model_path)

टास्क बनाएं

MediaPipe Text Classifier टास्क, create_from_options फ़ंक्शन का इस्तेमाल करके टास्क. create_from_options फ़ंक्शन, कॉन्फ़िगरेशन के लिए वैल्यू स्वीकार करता है . यह इस्तेमाल करके भी टास्क शुरू किया जा सकता है create_from_model_path फ़ैक्ट्री फ़ंक्शन का इस्तेमाल कर सकते हैं. create_from_model_path फ़ंक्शन, ट्रेन किए गए मॉडल की फ़ाइल के लिए रिलेटिव या ऐब्सलूट पाथ स्वीकार करता है. कॉन्फ़िगरेशन के विकल्पों के बारे में ज़्यादा जानकारी पाने के लिए, यहां जाएं कॉन्फ़िगरेशन के विकल्प.

नीचे दिया गया कोड इस टास्क को बनाने और कॉन्फ़िगर करने का तरीका बताता है.

base_options = python.BaseOptions(model_asset_path=model_path)
options = text.TextClassifierOptions(base_options=base_options)

with python.text.TextClassifier.create_from_options(options) as classifier:
  classification_result = classifier.classify(text)

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

इस टास्क में Android ऐप्लिकेशन के लिए, नीचे दिए गए कॉन्फ़िगरेशन के विकल्प मौजूद हैं:

विकल्प का नाम ब्यौरा मान की सीमा डिफ़ॉल्ट मान
display_names_locale यह नीति, दिए गए डिसप्ले नेम के लिए लेबल की भाषा सेट करती है अगर उपलब्ध हो, तो टास्क के मॉडल का मेटाडेटा. इसके लिए डिफ़ॉल्ट en है अंग्रेज़ी. आप कस्टम मॉडल के मेटाडेटा में स्थानीय जगह के अनुसार लेबल जोड़ सकते हैं TensorFlow Lite Metadata Writer API का इस्तेमाल करें स्थान-भाषा कोड en
max_results सबसे ज़्यादा स्कोर वाले क्लासिफ़िकेशन नतीजों की वैकल्पिक ज़्यादा से ज़्यादा संख्या को इस पर सेट करता है वापसी. यदि < कोई समस्या नहीं है, तो सभी उपलब्ध नतीजे दिखाए जाएंगे. कोई भी धनात्मक संख्या -1
score_threshold अनुमान के लिए स्कोर का थ्रेशोल्ड सेट करता है, जो इसमें दिए गए स्कोर को ओवरराइड करता है मॉडल मेटाडेटा (अगर कोई है). इस वैल्यू से कम के नतीजे अस्वीकार कर दिए जाते हैं. कोई भी फ़्लोट सेट नहीं है
category_allowlist अनुमति वाली कैटगरी के नामों की वैकल्पिक सूची सेट करता है. अगर खाली नहीं है, ऐसे वर्गीकरण परिणाम होंगे जिनका श्रेणी नाम इस सेट में नहीं है फ़िल्टर करके बाहर किया गया. श्रेणी के डुप्लीकेट या अज्ञात नामों पर ध्यान नहीं दिया जाता. यह विकल्प, category_denylist और इसका इस्तेमाल करने वाले उपयोगकर्ताओं के लिए अलग-अलग है दोनों में गड़बड़ी होती है. कोई भी स्ट्रिंग सेट नहीं है
category_denylist ऐसी कैटगरी के नामों की वैकल्पिक सूची सेट करता है जिनकी अनुमति नहीं है. अगर आपने खाली नहीं है, इसलिए डेटा को अलग-अलग ग्रुप में बांटने के ऐसे नतीजे फ़िल्टर कर दिए जाएंगे जिनकी कैटगरी का नाम इस सेट में होगा बाहर. श्रेणी के डुप्लीकेट या अज्ञात नामों पर ध्यान नहीं दिया जाता. यह विकल्प म्यूचुअली है सिर्फ़ category_allowlist इस्तेमाल करने पर, दोनों नतीजे इस्तेमाल करने में गड़बड़ी होती है. कोई भी स्ट्रिंग सेट नहीं है

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

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

सभी प्री-प्रोसेसिंग को classify फ़ंक्शन में हैंडल किया जाता है. कोई ज़रूरत नहीं है का इस्तेमाल करें.

input_text = 'The input text to be classified.'

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

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

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

with python.text.TextClassifier.create_from_options(options) as classifier:
  classification_result = classifier.classify(text)

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

टेक्स्ट क्लासिफ़ायर एक सूची वाला TextClassifierResult ऑब्जेक्ट दिखाता है की कैटगरी में बांट देता है. कैटगरी इसलिए, अगर आपको अलग-अलग कैटगरी चाहिए, तो कोई दूसरा मॉडल चुनें, या किसी मौजूदा गतिविधि के बारे में फिर से बताएं.

इस टास्क के आउटपुट डेटा का एक उदाहरण नीचे दिया गया है:

TextClassificationResult:
  Classification #0 (single classification head):
    ClassificationEntry #0:
      Category #0:
        category name: "positive"
        score: 0.8904
        index: 0
      Category #1:
        category name: "negative"
        score: 0.1096
        index: 1

यह नतीजा, इनपुट टेक्स्ट पर BERT-क्लासिफ़ायर चलाकर मिला है: "an imperfect but overall entertaining mystery".