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

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

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

চেষ্টা কর

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

  1. আপনার পডফাইলে নিম্নলিখিত ML কিট পডগুলি অন্তর্ভুক্ত করুন:
    pod 'GoogleMLKit/LanguageID', '3.2.0'
    
  2. আপনি আপনার প্রোজেক্টের পড ইনস্টল বা আপডেট করার পরে, এটির .xcworkspace ব্যবহার করে আপনার Xcode প্রকল্পটি খুলুন। ML Kit Xcode সংস্করণ 12.4 বা তার বেশিতে সমর্থিত।

একটি স্ট্রিং এর ভাষা সনাক্ত করুন

একটি স্ট্রিংয়ের ভাষা সনাক্ত করতে, LanguageIdentification এর একটি উদাহরণ পান এবং তারপর স্ট্রিংটিকে identifyLanguage(for:) পদ্ধতিতে পাস করুন।

উদাহরণ স্বরূপ:

সুইফট

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")
  }
}

উদ্দেশ্য গ

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 (অনির্ধারিত) পাস করা হয়।

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

সুইফট

let options = LanguageIdentificationOptions(confidenceThreshold: 0.4)
let languageId = NaturalLanguage.languageIdentification(options: options)

উদ্দেশ্য গ

MLKLanguageIdentificationOptions *options =
    [[MLKLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4];
MLKLanguageIdentification *languageId =
    [MLKLanguageIdentification languageIdentificationWithOptions:options];

একটি স্ট্রিং এর সম্ভাব্য ভাষা পান

একটি স্ট্রিংয়ের সবচেয়ে সম্ভাব্য ভাষার আত্মবিশ্বাসের মান পেতে, LanguageIdentification এর একটি উদাহরণ পান এবং তারপর স্ট্রিংটিকে شناخت identifyPossibleLanguages(for:) পদ্ধতিতে পাস করুন।

উদাহরণ স্বরূপ:

সুইফট

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"))
}

উদ্দেশ্য গ

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

সুইফট

let options = LanguageIdentificationOptions(confidenceThreshold: 0.4)
let languageId = NaturalLanguage.languageIdentification(options: options)

উদ্দেশ্য গ

MLKLanguageIdentificationOptions *options =
    [[MLKLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4];
MLKLanguageIdentification *languageId =
    [MLKLanguageIdentification languageIdentificationWithOptions:options];

যদি কোনো ভাষা এই থ্রেশহোল্ড পূরণ না করে, তাহলে তালিকায় একটি আইটেম থাকে, যার মান und