iOS-এ ML Kit-এর সাহায্যে পাঠ্যের ভাষা শনাক্ত করুন

পাঠ্যের একটি স্ট্রিং এর ভাষা সনাক্ত করতে আপনি এমএল কিট ব্যবহার করতে পারেন। আপনি স্ট্রিংয়ের সম্ভাব্য ভাষা পেতে পারেন বা স্ট্রিংয়ের সম্ভাব্য সমস্ত ভাষার জন্য আত্মবিশ্বাসের স্কোর পেতে পারেন।

ML Kit তাদের নেটিভ স্ক্রিপ্টে 103টি ভিন্ন ভাষায় পাঠ্যকে স্বীকৃতি দেয়। এছাড়াও, রোমানাইজড টেক্সট আরবি, বুলগেরিয়ান, চাইনিজ, গ্রীক, হিন্দি, জাপানিজ এবং রাশিয়ান ভাষার জন্য স্বীকৃত হতে পারে।

তুমি শুরু করার আগে

  1. আপনি যদি ইতিমধ্যে আপনার অ্যাপে Firebase যোগ না করে থাকেন, তাহলে শুরু করার নির্দেশিকাতে দেওয়া ধাপগুলি অনুসরণ করে তা করুন৷
  2. আপনার পডফাইলে ML কিট লাইব্রেরিগুলি অন্তর্ভুক্ত করুন:
    pod 'Firebase/MLNaturalLanguage', '6.25.0'
    pod 'Firebase/MLNLLanguageID', '6.25.0'
    
    আপনি আপনার প্রকল্পের পডগুলি ইনস্টল বা আপডেট করার পরে, এটির .xcworkspace ব্যবহার করে আপনার Xcode প্রকল্পটি খুলতে ভুলবেন না।
  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 (অনির্ধারিত) পাস করা হয়।

ডিফল্টরূপে, এমএল কিট একটি অ- und মান প্রদান করে যখন এটি কমপক্ষে 0.5 এর আত্মবিশ্বাসের মান সহ ভাষা সনাক্ত করে। আপনি languageIdentification(options:) এ একটি LanguageIdentificationOptions অবজেক্ট পাস করে এই থ্রেশহোল্ড পরিবর্তন করতে পারেন :

সুইফট

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 Kit শুধুমাত্র ন্যূনতম 0.01 এর আত্মবিশ্বাসের মান সহ ভাষা প্রদান করে। আপনি languageIdentification(options:) এ একটি LanguageIdentificationOptions অবজেক্ট পাস করে এই থ্রেশহোল্ড পরিবর্তন করতে পারেন :

সুইফট

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 .