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