आप टेक्स्ट की एक स्ट्रिंग की भाषा की पहचान करने के लिए एमएल किट का उपयोग कर सकते हैं। आप स्ट्रिंग की सबसे संभावित भाषा प्राप्त कर सकते हैं या स्ट्रिंग की सभी संभावित भाषाओं के लिए आत्मविश्वास स्कोर प्राप्त कर सकते हैं।
एमएल किट 103 विभिन्न भाषाओं के पाठ को उनकी मूल लिपियों में पहचानता है। इसके अलावा, रोमनकृत पाठ को अरबी, बल्गेरियाई, चीनी, ग्रीक, हिंदी, जापानी और रूसी के लिए पहचाना जा सकता है।
शुरू करने से पहले
- यदि आपने पहले से नहीं किया है, तो अपने एंड्रॉइड प्रोजेक्ट में फायरबेस जोड़ें ।
- अपने मॉड्यूल (ऐप-स्तर) ग्रैडल फ़ाइल (आमतौर पर
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
(अनिर्धारित) पारित हो जाता है।
डिफ़ॉल्ट रूप से, एमएल किट und
के अलावा कोई अन्य मान तभी लौटाता है जब वह कम से कम 0.5 के आत्मविश्वास मान वाली भाषा की पहचान करता है। आप 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 कोड और यह विश्वास प्राप्त कर सकते हैं कि स्ट्रिंग उस भाषा में है। समर्थित भाषाओं की पूरी सूची देखें. ध्यान दें कि ये मान इस विश्वास को दर्शाते हैं कि संपूर्ण स्ट्रिंग दी गई भाषा में है; एमएल किट एक ही स्ट्रिंग में एकाधिक भाषाओं की पहचान नहीं करता है।
डिफ़ॉल्ट रूप से, एमएल किट केवल कम से कम 0.01 के आत्मविश्वास मान वाली भाषाएँ लौटाता है। आप FirebaseLanguageIdentificationOptions
ऑब्जेक्ट को getLanguageIdentification()
में पास करके इस सीमा को बदल सकते हैं:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyAllLanguagesConfidenceThreshold(0.5f)
.build());
यदि कोई भाषा इस सीमा को पूरा नहीं करती है, तो सूची में एक आइटम होगा, जिसका मान und
होगा।