टेक्स्ट की किसी स्ट्रिंग की भाषा की पहचान करने के लिए, ML किट का इस्तेमाल किया जा सकता है. स्ट्रिंग की सबसे ज़्यादा इस्तेमाल की जाने वाली भाषा के साथ-साथ यह भी देखा जा सकता है कि स्ट्रिंग की सभी संभावित भाषाओं के लिए, स्कोर स्कोर कितना है.
ML किट अपनी मूल स्क्रिप्ट में 100 से ज़्यादा अलग-अलग भाषाओं में टेक्स्ट की पहचान करता है. इसके अलावा, रोमन भाषा में लिखे गए टेक्स्ट की पहचान अरेबिक, बल्गेरियन, चाइनीज़, ग्रीक, हिन्दी, जैपनीज़, और रशियन के लिए की जा सकती है. इसके साथ काम करने वाली भाषाओं और स्क्रिप्ट की पूरी सूची देखें.
इसे आज़माएं
- इस एपीआई के इस्तेमाल का उदाहरण देखने के लिए, ऐप्लिकेशन के नमूने का इस्तेमाल करें.
शुरू करने से पहले
- अपनी Podfile में ये ML किट पॉड शामिल करें:
pod 'GoogleMLKit/LanguageID', '3.2.0'
- अपने प्रोजेक्ट के पॉड इंस्टॉल करने या अपडेट करने के बाद, अपने
.xcworkspace
कोड का इस्तेमाल करके Xcode प्रोजेक्ट खोलें. ML किट, Xcode के 12.4 या इसके बाद के वर्शन पर काम करती है.
स्ट्रिंग की भाषा की पहचान करना
किसी स्ट्रिंग की भाषा की पहचान करने के लिए, LanguageIdentification
का
इंस्टेंस पाएं और फिर स्ट्रिंग को
identifyLanguage(for:)
तरीके से पास करें.
उदाहरण के लिए :
Swift
let languageId = 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") } }
Objective-C
MLKLanguageIdentification *languageId = [MLKLanguageIdentification languageIdentification]; [languageId identifyLanguageForText:text completion:^(NSString * _Nullable languageCode, NSError * _Nullable error) { if (error != nil) { NSLog(@"Failed with error: %@", error.localizedDescription); return; } if (![languageCode isEqualToString:@"und"] ) { NSLog(@"Identified Language: %@", languageCode); } else { NSLog(@"No language was identified"); } }];
अगर कॉल पूरा हो जाता है, तो
BCP-47 वाला भाषा कोड
पूरा होने के हैंडलर को पास कर दिया जाता है. इस कोड से मैसेज की भाषा का पता चलता है. अगर किसी भी भाषा का पक्के तौर पर पता नहीं लगाया जा सकता, तो कोड und
(तय नहीं है) पास हो जाता है.
डिफ़ॉल्ट रूप से, ML किट एक गैर-und
मान तब ही दिखाता है, जब वह कम से कम 0.5 कॉन्फ़िडेंस वैल्यू वाली भाषा की पहचान करता है. LanguageIdentificationOptions
ऑब्जेक्ट को languageIdentification(options:)
में पास करके, इस थ्रेशोल्ड को बदला जा सकता है:
Swift
let options = LanguageIdentificationOptions(confidenceThreshold: 0.4) let languageId = NaturalLanguage.languageIdentification(options: options)
Objective-C
MLKLanguageIdentificationOptions *options = [[MLKLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4]; MLKLanguageIdentification *languageId = [MLKLanguageIdentification languageIdentificationWithOptions:options];
किसी स्ट्रिंग की संभावित भाषाएं पाना
किसी स्ट्रिंग की सबसे ज़्यादा संभावना वाली भाषाओं की कॉन्फ़िडेंस वैल्यू पाने के लिए, LanguageIdentification
का कोई इंस्टेंस पाएं. इसके बाद, स्ट्रिंग को
identifyPossibleLanguages(for:)
तरीके से पास करें.
उदाहरण के लिए :
Swift
let languageId = 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")) }
Objective-C
MLKLanguageIdentification *languageId = [MLKLanguageIdentification languageIdentification]; [languageId identifyPossibleLanguagesForText:text completion:^(NSArray* _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 (MLKIdentifiedLanguage *language in identifiedLanguages) { [outputText appendFormat:@"\n(%@, %.2f)", language.languageCode, language.confidence]; } NSLog(outputText); }];
अगर कॉल पूरा होता है, तो IdentifiedLanguage
ऑब्जेक्ट की सूची
जारी रखने वाले हैंडलर को पास कर दी जाती है. हर ऑब्जेक्ट से, आपको भाषा का BCP-47 कोड
मिलता है और यह भरोसा मिलता है कि स्ट्रिंग उस भाषा में है. ध्यान दें कि ये वैल्यू इस बात पर भरोसा करती हैं कि पूरी स्ट्रिंग दी गई भाषा में है; ML किट एक ही स्ट्रिंग में कई भाषाओं की पहचान नहीं करती.
डिफ़ॉल्ट रूप से, ML किट सिर्फ़ कम से कम 0.01 कॉन्फ़िडेंस वैल्यू वाली भाषाएं दिखाता है. इस ऑब्जेक्ट को languageIdentification(options:)
में
LanguageIdentificationOptions
ऑब्जेक्ट पास करके, इस थ्रेशोल्ड को बदला जा सकता है:
Swift
let options = LanguageIdentificationOptions(confidenceThreshold: 0.4) let languageId = NaturalLanguage.languageIdentification(options: options)
Objective-C
MLKLanguageIdentificationOptions *options = [[MLKLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4]; MLKLanguageIdentification *languageId = [MLKLanguageIdentification languageIdentificationWithOptions:options];
अगर कोई भी भाषा इस सीमा तक नहीं पहुंचती है, तो सूची में एक आइटम के साथ und
वैल्यू होगी.