प्राकृतिक भाषा वर्गीकरण को एकीकृत करें

टास्क लाइब्रेरी का NLClassifier एपीआई इनपुट टेक्स्ट को विभिन्न श्रेणियों में वर्गीकृत करता है, और एक बहुमुखी और विन्यास योग्य एपीआई है जो अधिकांश टेक्स्ट वर्गीकरण मॉडल को संभाल सकता है।

NLClassifier API की मुख्य विशेषताएं

  • इनपुट के रूप में एक स्ट्रिंग लेता है, स्ट्रिंग और आउटपुट के साथ वर्गीकरण करता है वर्गीकरण परिणाम के रूप में जोड़े।

  • इनपुट टेक्स्ट के लिए वैकल्पिक रेगेक्स टोकनाइजेशन उपलब्ध है।

  • विभिन्न वर्गीकरण मॉडल को अनुकूलित करने के लिए विन्यास योग्य।

समर्थित NLClassifier मॉडल

निम्नलिखित मॉडलों को NLClassifier API के साथ संगत होने की गारंटी है।

जावा में अनुमान चलाएँ

Android ऐप में NLClassifier का उपयोग कैसे करें, इसके उदाहरण के लिए टेक्स्ट क्लासिफिकेशन रेफरेंस ऐप देखें।

चरण 1: ग्रैडल निर्भरता और अन्य सेटिंग्स आयात करें

एंड्रॉइड मॉड्यूल की संपत्ति निर्देशिका में .tflite मॉडल फ़ाइल की प्रतिलिपि बनाएँ जहां मॉडल चलाया जाएगा। निर्दिष्ट करें कि फ़ाइल को संपीड़ित नहीं किया जाना चाहिए, और TensorFlow Lite लाइब्रेरी को मॉड्यूल की build.gradle फ़ाइल में जोड़ें:

android {
    // Other settings

    // Specify tflite file should not be compressed for the app apk
    aaptOptions {
        noCompress "tflite"
    }

}

dependencies {
    // Other dependencies

    // Import the Task Vision Library dependency (NNAPI is included)
    implementation 'org.tensorflow:tensorflow-lite-task-text:0.4.4'
    // Import the GPU delegate plugin Library for GPU inference
    implementation 'org.tensorflow:tensorflow-lite-gpu-delegate-plugin:0.4.4'
}

चरण 2: API का उपयोग करके अनुमान चलाएँ

// Initialization, use NLClassifierOptions to configure input and output tensors
NLClassifierOptions options =
    NLClassifierOptions.builder()
        .setBaseOptions(BaseOptions.builder().useGpu().build())
        .setInputTensorName(INPUT_TENSOR_NAME)
        .setOutputScoreTensorName(OUTPUT_SCORE_TENSOR_NAME)
        .build();
NLClassifier classifier =
    NLClassifier.createFromFileAndOptions(context, modelFile, options);

// Run inference
List<Category> results = classifier.classify(input);

NLClassifier को कॉन्फ़िगर करने के अधिक विकल्पों के लिए स्रोत कोड देखें।

स्विफ्ट में अनुमान चलाएँ

चरण 1: कोकोपोड्स आयात करें

पॉडफाइल में TensorFlowLiteTaskText पॉड जोड़ें

target 'MySwiftAppWithTaskAPI' do
  use_frameworks!
  pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end

चरण 2: API का उपयोग करके अनुमान चलाएँ

// Initialization
var modelOptions:TFLNLClassifierOptions = TFLNLClassifierOptions()
modelOptions.inputTensorName = inputTensorName
modelOptions.outputScoreTensorName = outputScoreTensorName
let nlClassifier = TFLNLClassifier.nlClassifier(
      modelPath: modelPath,
      options: modelOptions)

// Run inference
let categories = nlClassifier.classify(text: input)

अधिक जानकारी के लिए स्रोत कोड देखें।

सी ++ में अनुमान चलाएं

// Initialization
NLClassifierOptions options;
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
std::unique_ptr<NLClassifier> classifier = NLClassifier::CreateFromOptions(options).value();

// Run inference with your input, `input_text`.
std::vector<core::Category> categories = classifier->Classify(input_text);

अधिक जानकारी के लिए स्रोत कोड देखें।

पायथन में अनुमान चलाएँ

चरण 1: पाइप पैकेज स्थापित करें

pip install tflite-support

चरण 2: मॉडल का उपयोग करना

# Imports
from tflite_support.task import text

# Initialization
classifier = text.NLClassifier.create_from_file(model_path)

# Run inference
text_classification_result = classifier.classify(text)

NLClassifier को कॉन्फ़िगर करने के अधिक विकल्पों के लिए स्रोत कोड देखें।

उदाहरण परिणाम

मूवी समीक्षा मॉडल के वर्गीकरण परिणामों का एक उदाहरण यहां दिया गया है।

इनपुट: "मेरे समय की बर्बादी क्या है।"

आउटपुट:

category[0]: 'Negative' : '0.81313'
category[1]: 'Positive' : '0.18687'

अपने स्वयं के मॉडल और परीक्षण डेटा के साथ NLClassifier के लिए सरल CLI डेमो टूल आज़माएं

मॉडल संगतता आवश्यकताएँ

उपयोग के मामले के आधार पर, एनएल क्लासिफायर एपीआई NLClassifier मॉडल मेटाडेटा के साथ या बिना टीएफलाइट मॉडल लोड कर सकता है। TensorFlow Lite Metadata Writer API का उपयोग करके प्राकृतिक भाषा क्लासिफायरियर के लिए मेटाडेटा बनाने के उदाहरण देखें।

संगत मॉडल को निम्नलिखित आवश्यकताओं को पूरा करना चाहिए:

  • इनपुट टेंसर: (kTfLiteString/kTfLiteInt32)

    • मॉडल का इनपुट या तो kTfLiteString टेन्सर रॉ इनपुट स्ट्रिंग या kTfLiteInt32 टेंसर होना चाहिए जो रॉ इनपुट स्ट्रिंग के रेगेक्स टोकन इंडेक्स के लिए हो।
    • यदि इनपुट प्रकार kTfLiteString है, तो मॉडल के लिए किसी मेटाडेटा की आवश्यकता नहीं है।
    • यदि इनपुट प्रकार kTfLiteInt32 है, तो इनपुट टेंसर के मेटाडेटा में एक RegexTokenizer को स्थापित करने की आवश्यकता है।
  • आउटपुट स्कोर टेंसर: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)

    • वर्गीकृत प्रत्येक श्रेणी के स्कोर के लिए अनिवार्य आउटपुट टेंसर।

    • यदि प्रकार इंट प्रकारों में से एक है, तो इसे संबंधित प्लेटफॉर्म पर डबल/फ्लोट करने के लिए dequantize

    • श्रेणी लेबल के लिए आउटपुट टेंसर के संबंधित मेटाडेटा में एक वैकल्पिक संबद्ध फ़ाइल हो सकती है, फ़ाइल प्रति पंक्ति एक लेबल के साथ एक सादा पाठ फ़ाइल होनी चाहिए, और लेबल की संख्या मॉडल आउटपुट के रूप में श्रेणियों की संख्या से मेल खाना चाहिए। उदाहरण लेबल फ़ाइल देखें।

  • आउटपुट लेबल टेंसर: (kTfLiteString/kTfLiteInt32)

    • प्रत्येक श्रेणी के लिए लेबल के लिए वैकल्पिक आउटपुट टेंसर, आउटपुट स्कोर टेंसर के समान लंबाई का होना चाहिए। यदि यह टेंसर मौजूद नहीं है, तो एपीआई स्कोर इंडेक्स को क्लासनाम के रूप में उपयोग करता है।

    • यदि संबंधित लेबल फ़ाइल आउटपुट स्कोर टेंसर के मेटाडेटा में मौजूद है, तो उसे नज़रअंदाज़ कर दिया जाएगा।