टेक्स्ट की एक स्ट्रिंग की भाषा की पहचान करने के लिए आप एमएल किट का उपयोग कर सकते हैं। आप स्ट्रिंग की सबसे संभावित भाषा प्राप्त कर सकते हैं या स्ट्रिंग की सभी संभावित भाषाओं के लिए कॉन्फिडेंस स्कोर प्राप्त कर सकते हैं।
एमएल किट अपनी मूल लिपियों में 103 विभिन्न भाषाओं में पाठ को पहचानता है। इसके अलावा, अरबी, बल्गेरियाई, चीनी, ग्रीक, हिंदी, जापानी और रूसी के लिए रोमनकृत पाठ को पहचाना जा सकता है।
शुरू करने से पहले
- यदि आपने पहले से ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें ।
- अपने मॉड्यूल (ऐप-स्तर) ग्रैडल फ़ाइल (आमतौर पर
app/build.gradle
) में एमएल किट एंड्रॉइड लाइब्रेरी के लिए निर्भरता जोड़ें:apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' dependencies { // ... implementation 'com.google.firebase:firebase-ml-natural-language:22.0.0' implementation 'com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7' }
एक स्ट्रिंग की भाषा की पहचान करें
एक स्ट्रिंग की भाषा की पहचान करने के लिए, FirebaseLanguageIdentification
का एक उदाहरण प्राप्त करें, और फिर स्ट्रिंग को identifyLanguage()
विधि में पास करें।
उदाहरण के लिए:
FirebaseLanguageIdentification languageIdentifier =
FirebaseNaturalLanguage.getInstance().getLanguageIdentification();
languageIdentifier.identifyLanguage(text)
.addOnSuccessListener(
new OnSuccessListener<String>() {
@Override
public void onSuccess(@Nullable String languageCode) {
if (languageCode != "und") {
Log.i(TAG, "Language: " + languageCode);
} else {
Log.i(TAG, "Can't identify language.");
}
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Model couldn’t be loaded or other internal error.
// ...
}
});
यदि कॉल सफल हो जाती है, तो एक BCP-47 भाषा कोड सफलता श्रोता को दिया जाता है, जो पाठ की भाषा को दर्शाता है। समर्थित भाषाओं की पूरी सूची देखें। यदि किसी भी भाषा का आत्मविश्वास से पता नहीं लगाया जा सकता है, तो कोड und
(अनिर्धारित) पास किया जाता है।
डिफ़ॉल्ट रूप से, एमएल किट कम से कम 0.5 के विश्वास मूल्य के साथ भाषा की पहचान करने पर ही und
के अलावा कोई अन्य मान देता है। आप FirebaseLanguageIdentificationOptions
ऑब्जेक्ट को getLanguageIdentification()
पर पास करके इस सीमा को बदल सकते हैं:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyLanguageConfidenceThreshold(0.34f)
.build());
एक स्ट्रिंग की संभावित भाषाएं प्राप्त करें
एक स्ट्रिंग की सबसे संभावित भाषाओं के विश्वास मूल्य प्राप्त करने के लिए, FirebaseLanguageIdentification
का एक उदाहरण प्राप्त करें, और फिर स्ट्रिंग को identifyAllLanguages()
विधि में पास करें।
उदाहरण के लिए:
FirebaseLanguageIdentification languageIdentifier =
FirebaseNaturalLanguage.getInstance().getLanguageIdentification();
languageIdentifier.identifyAllLanguages(text)
.addOnSuccessListener(
new OnSuccessListener<String>() {
@Override
public void onSuccess(List<IdentifiedLanguage> identifiedLanguages) {
for (IdentifiedLanguage identifiedLanguage : identifiedLanguages) {
String language = identifiedLanguage.getLanguageCode();
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 किट कम से कम 0.01 के विश्वास मूल्यों वाली केवल भाषाएँ लौटाता है। आप FirebaseLanguageIdentificationOptions
ऑब्जेक्ट को getLanguageIdentification()
पर पास करके इस सीमा को बदल सकते हैं:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyAllLanguagesConfidenceThreshold(0.5f)
.build());
यदि कोई भाषा इस सीमा को पूरा नहीं करती है, तो सूची में एक आइटम होगा, जिसका मान und
होगा।