टेक्स्ट की किसी स्ट्रिंग की भाषा की पहचान करने के लिए, एमएल किट का इस्तेमाल किया जा सकता है. स्ट्रिंग की सबसे संभावित भाषा के साथ-साथ, स्ट्रिंग की सभी संभावित भाषाओं के लिए कॉन्फ़िडेंस स्कोर भी पाए जा सकते हैं.
ML Kit की मदद से, 100 से ज़्यादा अलग-अलग भाषाओं में लिखे टेक्स्ट की पहचान की जाती है. इसके अलावा, रोमन भाषा में लिखे टेक्स्ट को ऐरेबिक, बुल्गारियन, चाइनीज़, ग्रीक, हिन्दी, जैपनीज़, और रशियन भाषा के लिए भी पहचाना जा सकता है. इस्तेमाल की जा सकने वाली भाषाओं और स्क्रिप्ट की पूरी सूची देखें.
बंडल किए गए | अनबंडल किए गए | |
---|---|---|
लाइब्रेरी का नाम | com.google.mlkit:language-id | com.google.android.gms:play-services-mlkit-language-id |
लागू करना | बिल्ड के समय मॉडल, आपके ऐप्लिकेशन से स्टैटिक रूप से लिंक होता है. | मॉडल को Google Play Services की मदद से डाइनैमिक तौर पर डाउनलोड किया जाता है. |
ऐप्लिकेशन के साइज़ का असर | साइज़ करीब 900 केबी बढ़ाया जा सकता है. | करीब 200 केबी का साइज़ बढ़ाया जा सकता है. |
प्रोसेस शुरू होने में लगने वाला समय | मॉडल तुरंत उपलब्ध है. | पहली बार इस्तेमाल करने से पहले मॉडल डाउनलोड होने तक इंतज़ार करना पड़ सकता है. |
इसे आज़माएं
- इस एपीआई के इस्तेमाल का उदाहरण देखने के लिए, ऐप्लिकेशन के नमूने पर जाएं.
शुरू करने से पहले
अपनी प्रोजेक्ट-लेवल की
build.gradle
फ़ाइल में, अपनेbuildscript
औरallprojects
, दोनों सेक्शन में Google की Maven का डेटा स्टोर करने की जगह को शामिल करना न भूलें.ML Kit की Android लाइब्रेरी के लिए, अपने मॉड्यूल की ऐप्लिकेशन-लेवल की ग्रेडल फ़ाइल में डिपेंडेंसी जोड़ें. आम तौर पर, यह
app/build.gradle
होती है. अपनी ज़रूरत के हिसाब से इनमें से कोई एक डिपेंडेंसी चुनें:अपने ऐप्लिकेशन के साथ मॉडल को बंडल करने के लिए:
dependencies { // ... // Use this dependency to bundle the model with your app implementation 'com.google.mlkit:language-id:17.0.4' }
Google Play Services में मॉडल का इस्तेमाल करने के लिए:
dependencies { // ... // Use this dependency to use the dynamically downloaded model in Google Play Services implementation 'com.google.android.gms:play-services-mlkit-language-id:17.0.0' }
अगर Google Play services में इस मॉडल का इस्तेमाल किया जाता है, तो ऐप्लिकेशन को इस तरह कॉन्फ़िगर किया जा सकता है कि Play Store से ऐप्लिकेशन इंस्टॉल होने के बाद, मॉडल डिवाइस पर अपने-आप डाउनलोड हो जाए. ऐसा करने के लिए, अपने ऐप्लिकेशन की
AndroidManifest.xml
फ़ाइल में यह एलान जोड़ें:<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="langid" > <!-- To use multiple models: android:value="langid,model2,model3" --> </application>
आपके पास मॉडल की उपलब्धता की जानकारी भी देखने का विकल्प होता है. साथ ही, Google Play services के moduleInstallClient API की मदद से, मॉडल को डाउनलोड करने का अनुरोध किया जा सकता है.
अगर इंस्टॉल के समय मॉडल डाउनलोड करने की सुविधा चालू नहीं की जाती है या अश्लील कॉन्टेंट डाउनलोड करने का अनुरोध नहीं किया जाता है, तो पहली बार आइडेंटिफ़ायर चलाने पर मॉडल को डाउनलोड किया जाता है. डाउनलोड पूरा होने से पहले किए गए अनुरोध का कोई नतीजा नहीं मिलता.
स्ट्रिंग की भाषा की पहचान करना
स्ट्रिंग की भाषा की पहचान करने के लिए, LanguageIdentifier
का इंस्टेंस पाने के लिए LanguageIdentification.getClient()
को कॉल करें. इसके बाद, स्ट्रिंग को LanguageIdentifier
के identifyLanguage()
तरीके को पास करें.
उदाहरण के लिए:
Kotlin
val languageIdentifier = LanguageIdentification.getClient() languageIdentifier.identifyLanguage(text) .addOnSuccessListener { languageCode -> if (languageCode == "und") { Log.i(TAG, "Can't identify language.") } else { Log.i(TAG, "Language: $languageCode") } } .addOnFailureListener { // Model couldn’t be loaded or other internal error. // ... }
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient(); languageIdentifier.identifyLanguage(text) .addOnSuccessListener( new OnSuccessListener<String>() { @Override public void onSuccess(@Nullable String languageCode) { if (languageCode.equals("und")) { Log.i(TAG, "Can't identify language."); } else { Log.i(TAG, "Language: " + languageCode); } } }) .addOnFailureListener( new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { // Model couldn’t be loaded or other internal error. // ... } });
कॉल हो जाने पर, BCP-47 भाषा कोड, कॉल में शामिल होने वाले लिसनर को पास किया जाता है.
यह मैसेज की भाषा के बारे में बताता है. अगर सही से किसी भी भाषा की पहचान नहीं होती है, तो कोड
und
(तय नहीं किया गया) पास किया जाता है.
डिफ़ॉल्ट रूप से, ML Kit und
के बजाय सिर्फ़ तब कोई वैल्यू दिखाता है, जब यह
कम से कम 0.5 के कॉन्फ़िडेंस वैल्यू वाली भाषा की पहचान करता है. इस थ्रेशोल्ड को बदलने के लिए, LanguageIdentificationOptions
ऑब्जेक्ट को getClient()
पर पास किया जा सकता है:
Kotlin
val languageIdentifier = LanguageIdentification .getClient(LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.34f) .build())
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient( new LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.34f) .build());
किसी स्ट्रिंग की संभावित भाषाएं पाना
स्ट्रिंग की सबसे ज़्यादा संभावित भाषाओं की कॉन्फ़िडेंस वैल्यू पाने के लिए,
LanguageIdentifier
का इंस्टेंस पाएं. इसके बाद, स्ट्रिंग को
identifyPossibleLanguages()
तरीके को पास करें.
उदाहरण के लिए:
Kotlin
val languageIdentifier = LanguageIdentification.getClient() languageIdentifier.identifyPossibleLanguages(text) .addOnSuccessListener { identifiedLanguages -> for (identifiedLanguage in identifiedLanguages) { val language = identifiedLanguage.languageTag val confidence = identifiedLanguage.confidence Log.i(TAG, "$language $confidence") } } .addOnFailureListener { // Model couldn’t be loaded or other internal error. // ... }
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient(); languageIdentifier.identifyPossibleLanguages(text) .addOnSuccessListener(new OnSuccessListener<List<IdentifiedLanguage>>() { @Override public void onSuccess(List<IdentifiedLanguage> identifiedLanguages) { for (IdentifiedLanguage identifiedLanguage : identifiedLanguages) { String language = identifiedLanguage.getLanguageTag(); float confidence = identifiedLanguage.getConfidence(); Log.i(TAG, language + " (" + confidence + ")"); } } }) .addOnFailureListener( new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { // Model couldn’t be loaded or other internal error. // ... } });
अगर कॉल हो जाता है, तो IdentifiedLanguage
ऑब्जेक्ट की सूची, सक्सेस लिसनर को भेजी जाती है. हर ऑब्जेक्ट से, भाषा का BCP-47 कोड और
यह भरोसा किया जा सकता है कि स्ट्रिंग उस भाषा में है. ध्यान दें कि
इन वैल्यू से पता चलता है कि पूरी स्ट्रिंग, दी गई भाषा में है. ML किट एक स्ट्रिंग में कई भाषाओं की पहचान नहीं करता.
डिफ़ॉल्ट रूप से, ML किट सिर्फ़ उन भाषाओं को दिखाता है जिनकी कॉन्फ़िडेंस वैल्यू कम से कम
0.01 होती है. इस थ्रेशोल्ड को बदलने के लिए,
LanguageIdentificationOptions
ऑब्जेक्ट को
getClient()
पर पास किया जा सकता है:
Kotlin
val languageIdentifier = LanguageIdentification .getClient(LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.5f) .build())
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient( new LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.5f) .build());
अगर कोई भी भाषा इस थ्रेशोल्ड को पूरा नहीं करती, तो सूची में एक आइटम होगा, जिसकी वैल्यू
und
होगी.