टेक्स्ट की एक स्ट्रिंग की भाषा की पहचान करने के लिए आप एमएल किट का उपयोग कर सकते हैं। आप स्ट्रिंग की सबसे संभावित भाषा प्राप्त कर सकते हैं या स्ट्रिंग की सभी संभावित भाषाओं के लिए कॉन्फिडेंस स्कोर प्राप्त कर सकते हैं।
एमएल किट अपनी मूल लिपियों में 103 विभिन्न भाषाओं में पाठ को पहचानता है। इसके अलावा, अरबी, बल्गेरियाई, चीनी, ग्रीक, हिंदी, जापानी और रूसी के लिए रोमनकृत पाठ को पहचाना जा सकता है।
शुरू करने से पहले
- यदि आपने पहले से अपने ऐप में Firebase नहीं जोड़ा है, तो आरंभ करने की मार्गदर्शिका में दिए गए चरणों का पालन करके ऐसा करें।
- अपने पॉडफाइल में एमएल किट लाइब्रेरी शामिल करें:
pod 'Firebase/MLNaturalLanguage', '6.25.0' pod 'Firebase/MLNLLanguageID', '6.25.0'
अपने प्रोजेक्ट के पॉड्स को इंस्टॉल या अपडेट करने के बाद, अपने एक्सकोड प्रोजेक्ट को इसके.xcworkspace
का उपयोग करके खोलना सुनिश्चित करें। - अपने ऐप्लिकेशन में, Firebase आयात करें:
तीव्र
import Firebase
उद्देश्य सी
@import Firebase;
एक स्ट्रिंग की भाषा की पहचान करें
एक स्ट्रिंग की भाषा की पहचान करने के लिए, LanguageIdentification
का एक उदाहरण प्राप्त करें, और फिर स्ट्रिंग को identifyLanguage(for:)
विधि में पास करें।
उदाहरण के लिए:
तीव्र
let languageId = NaturalLanguage.naturalLanguage().languageIdentification()
languageId.identifyLanguage(for: text) { (languageCode, error) in
if let error = error {
print("Failed with error: \(error)")
return
}
if let languageCode = languageCode, languageCode != "und" {
print("Identified Language: \(languageCode)")
} else {
print("No language was identified")
}
}
उद्देश्य सी
FIRNaturalLanguage *naturalLanguage = [FIRNaturalLanguage naturalLanguage];
FIRLanguageIdentification *languageId = [naturalLanguage languageIdentification];
[languageId identifyLanguageForText:text
completion:^(NSString * _Nullable languageCode,
NSError * _Nullable error) {
if (error != nil) {
NSLog(@"Failed with error: %@", error.localizedDescription);
return;
}
if (languageCode != nil
&& ![languageCode isEqualToString:@"und"] ) {
NSLog(@"Identified Language: %@", languageCode);
} else {
NSLog(@"No language was identified");
}
}];
यदि कॉल सफल हो जाती है, तो एक BCP-47 भाषा कोड कंप्लीशन हैंडलर को पास कर दिया जाता है, जो टेक्स्ट की भाषा को दर्शाता है। समर्थित भाषाओं की पूरी सूची देखें। यदि किसी भी भाषा का आत्मविश्वास से पता नहीं लगाया जा सकता है, तो कोड und
(अनिर्धारित) पास किया जाता है।
डिफ़ॉल्ट रूप से, ML किट एक गैर- und
मान केवल तभी लौटाता है जब वह कम से कम 0.5 के विश्वास मान वाली भाषा की पहचान करता है। आप LanguageIdentificationOptions
ऑब्जेक्ट को languageIdentification(options:)
पर पास करके इस सीमा को बदल सकते हैं:
तीव्र
let options = LanguageIdentificationOptions(confidenceThreshold: 0.4)
let languageId = NaturalLanguage.naturalLanguage().languageIdentification(options: options)
उद्देश्य सी
FIRNaturalLanguage *naturalLanguage = [FIRNaturalLanguage naturalLanguage];
FIRLanguageIdentificationOptions *options =
[[FIRLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4];
FIRLanguageIdentification *languageId =
[naturalLanguage languageIdentificationWithOptions:options];
एक स्ट्रिंग की संभावित भाषाएं प्राप्त करें
एक स्ट्रिंग की सबसे संभावित भाषाओं के विश्वास मूल्यों को प्राप्त करने के लिए, LanguageIdentification
का एक उदाहरण प्राप्त करें, और फिर स्ट्रिंग को identifyPossibleLanguages(for:)
विधि में पास करें।
उदाहरण के लिए:
तीव्र
let languageId = NaturalLanguage.naturalLanguage().languageIdentification()
languageId.identifyPossibleLanguages(for: text) { (identifiedLanguages, error) in
if let error = error {
print("Failed with error: \(error)")
return
}
guard let identifiedLanguages = identifiedLanguages,
!identifiedLanguages.isEmpty,
identifiedLanguages[0].languageCode != "und"
else {
print("No language was identified")
return
}
print("Identified Languages:\n" +
identifiedLanguages.map {
String(format: "(%@, %.2f)", $0.languageCode, $0.confidence)
}.joined(separator: "\n"))
}
उद्देश्य सी
FIRNaturalLanguage *naturalLanguage = [FIRNaturalLanguage naturalLanguage];
FIRLanguageIdentification *languageId = [naturalLanguage languageIdentification];
[languageId identifyPossibleLanguagesForText:text
completion:^(NSArray<FIRIdentifiedLanguage *> * _Nonnull identifiedLanguages,
NSError * _Nullable error) {
if (error != nil) {
NSLog(@"Failed with error: %@", error.localizedDescription);
return;
}
if (identifiedLanguages.count == 1
&& [identifiedLanguages[0].languageCode isEqualToString:@"und"] ) {
NSLog(@"No language was identified");
return;
}
NSMutableString *outputText = [NSMutableString stringWithFormat:@"Identified Languages:"];
for (FIRIdentifiedLanguage *language in identifiedLanguages) {
[outputText appendFormat:@"\n(%@, %.2f)", language.languageCode, language.confidence];
}
NSLog(outputText);
}];
यदि कॉल सफल होता है, तो IdentifiedLanguage
ऑब्जेक्ट्स की एक सूची जारी रखने वाले हैंडलर को पास कर दी जाती है। प्रत्येक वस्तु से, आप भाषा का BCP-47 कोड प्राप्त कर सकते हैं और यह विश्वास प्राप्त कर सकते हैं कि स्ट्रिंग उस भाषा में है। समर्थित भाषाओं की पूरी सूची देखें। ध्यान दें कि ये मान इस विश्वास को दर्शाते हैं कि संपूर्ण स्ट्रिंग दी गई भाषा में है; एमएल किट एक ही स्ट्रिंग में कई भाषाओं की पहचान नहीं करता है।
डिफ़ॉल्ट रूप से, ML किट कम से कम 0.01 के विश्वास मूल्यों वाली केवल भाषाएँ लौटाता है। आप LanguageIdentificationOptions
ऑब्जेक्ट को languageIdentification(options:)
पर पास करके इस सीमा को बदल सकते हैं:
तीव्र
let options = LanguageIdentificationOptions(confidenceThreshold: 0.4)
let languageId = NaturalLanguage.naturalLanguage().languageIdentification(options: options)
उद्देश्य सी
FIRNaturalLanguage *naturalLanguage = [FIRNaturalLanguage naturalLanguage];
FIRLanguageIdentificationOptions *options =
[[FIRLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4];
FIRLanguageIdentification *languageId =
[naturalLanguage languageIdentificationWithOptions:options];
यदि कोई भाषा इस सीमा को पूरा नहीं करती है, तो सूची में एक आइटम होगा, जिसका मान und
होगा।