Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

iOS पर ML Kit की मदद से, टेक्स्ट की भाषा की पहचान करना

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

टेक्स्ट की एक स्ट्रिंग की भाषा की पहचान करने के लिए आप एमएल किट का उपयोग कर सकते हैं। आप स्ट्रिंग की सबसे संभावित भाषा प्राप्त कर सकते हैं या स्ट्रिंग की सभी संभावित भाषाओं के लिए कॉन्फिडेंस स्कोर प्राप्त कर सकते हैं।

एमएल किट अपनी मूल लिपियों में 103 विभिन्न भाषाओं में पाठ को पहचानता है। इसके अलावा, अरबी, बल्गेरियाई, चीनी, ग्रीक, हिंदी, जापानी और रूसी के लिए रोमनकृत पाठ को पहचाना जा सकता है।

शुरू करने से पहले

  1. यदि आपने पहले से अपने ऐप में Firebase नहीं जोड़ा है, तो आरंभ करने की मार्गदर्शिका में दिए गए चरणों का पालन करके ऐसा करें।
  2. अपने पॉडफाइल में एमएल किट लाइब्रेरी शामिल करें:
    pod 'Firebase/MLNaturalLanguage', '6.25.0'
    pod 'Firebase/MLNLLanguageID', '6.25.0'
    
    अपने प्रोजेक्ट के पॉड्स को इंस्टॉल या अपडेट करने के बाद, अपने एक्सकोड प्रोजेक्ट को इसके .xcworkspace का उपयोग करके खोलना सुनिश्चित करें।
  3. अपने ऐप्लिकेशन में, 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 होगा।