टेक्स्ट की स्ट्रिंग की भाषा की पहचान करने के लिए एमएल किट का इस्तेमाल किया जा सकता है. आप स्ट्रिंग में सबसे सही भाषा के साथ-साथ कॉन्फ़िडेंस स्कोर भी पाएं की संभावित भाषाएं हैं.
ML Kit, अपनी स्थानीय स्क्रिप्ट में 100 से ज़्यादा अलग-अलग भाषाओं में मौजूद टेक्स्ट की पहचान करता है. इसके अलावा, अरबी, बुल्गारियाई, चीनी, ग्रीक, हिन्दी, जैपनीज़, और रशियन. ज़्यादा जानकारी के लिए, इस्तेमाल की जा सकने वाली भाषाओं और स्क्रिप्ट की पूरी सूची.
बंडल किए गए | अनबंडल किए गए | |
---|---|---|
लाइब्रेरी का नाम | com.google.mlkit:language-id | com.google.android.gms:play-services-mlkit-language-id |
लागू करना | बिल्ड के दौरान, मॉडल आपके ऐप्लिकेशन से स्टैटिक रूप से लिंक होता है. | मॉडल को Google Play services की मदद से, डाइनैमिक रूप से डाउनलोड किया जाता है. |
ऐप्लिकेशन के साइज़ का असर | साइज़ करीब 900 केबी बढ़ जाता है. | साइज़ करीब 200 केबी बढ़ जाता है. |
प्रोसेस शुरू होने में लगने वाला समय | मॉडल तुरंत उपलब्ध हो जाता है. | पहली बार इस्तेमाल करने से पहले, मॉडल के डाउनलोड होने तक इंतज़ार करना पड़ सकता है. |
इसे आज़माएं
- सैंपल वाले ऐप्लिकेशन को इस्तेमाल करके देखें, इस एपीआई के इस्तेमाल का एक उदाहरण देखें.
शुरू करने से पहले
अपनी प्रोजेक्ट-लेवल
build.gradle
फ़ाइल में, Google कीbuildscript
औरallprojects
, दोनों सेक्शन में Maven रिपॉज़िटरी.अपने मॉड्यूल में ML Kit Android लाइब्रेरी के लिए डिपेंडेंसी जोड़ें ऐप्लिकेशन-लेवल की Gradle फ़ाइल होती है, जो आम तौर पर
app/build.gradle
होती है. कोई एक विकल्प चुनें आपकी ज़रूरतों के हिसाब से नीचे दी गई डिपेंडेंसी:अपने ऐप्लिकेशन के साथ मॉडल को बंडल करने के लिए:
dependencies { // ... // Use this dependency to bundle the model with your app implementation 'com.google.mlkit:language-id:17.0.6' }
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.
अगर आपने इंस्टॉल के समय मॉडल डाउनलोड करने की सुविधा चालू नहीं की है या अश्लील फ़ाइल डाउनलोड करने का अनुरोध नहीं किया है, तो पहली बार आइडेंटिफ़ायर चलाने पर, मॉडल डाउनलोड हो जाता है. आपके अनुरोध डाउनलोड पूरा होने से पहले ही कोई नतीजा न मिले.
स्ट्रिंग की भाषा की पहचान करना
किसी स्ट्रिंग की भाषा पहचानने के लिए, LanguageIdentification.getClient()
को कॉल करें
LanguageIdentifier
का एक इंस्टेंस पाएं और फिर स्ट्रिंग को
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 Kit किसी एक स्ट्रिंग में कई भाषाओं की पहचान नहीं करता.
डिफ़ॉल्ट रूप से, एमएल किट सिर्फ़ ऐसी भाषाएं दिखाता है जो कम से कम कॉन्फ़िडेंस वैल्यू पर सेट होती हैं
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
.