ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

حدد لغة النص باستخدام ML Kit على iOS

{٪ setvar new_api_link٪} تحديد لغة النص باستخدام ML Kit على iOS {٪ endsetvar٪}

يمكنك استخدام ML Kit لتحديد لغة سلسلة نصية. يمكنك الحصول على اللغة الأكثر احتمالية للسلسلة أو الحصول على درجات الثقة لجميع لغات السلسلة المحتملة.

تتعرف ML Kit على النص بـ 103 لغة مختلفة في نصوصها الأصلية. بالإضافة إلى ذلك ، يمكن التعرف على النص الروماني للعربية والبلغارية والصينية واليونانية والهندية واليابانية والروسية.

قبل ان تبدأ

  1. إذا لم تكن قد أضفت Firebase بالفعل إلى تطبيقك ، فقم بذلك باتباع الخطوات الواردة في دليل الخطوات الأولى .
  2. قم بتضمين مكتبات ML Kit في Podfile:
    pod 'Firebase/MLNaturalLanguage', '6.25.0'
    pod 'Firebase/MLNLLanguageID', '6.25.0'
    
    بعد تثبيت أو تحديث .xcworkspace ، تأكد من فتح مشروع Xcode باستخدام .xcworkspace الخاص .xcworkspace .
  3. في تطبيقك ، استورد Firebase:

    سويفت

    import Firebase

    ج موضوعية

    @import Firebase;

حدد لغة السلسلة

لتعريف لغة السلسلة ، احصل على مثيل من LanguageIdentification ، ثم قم بتمرير السلسلة إلى identifyLanguage(for:) للأسلوب 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 Kit بإرجاع قيمة غير- 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:) لطريقة 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 لغات متعددة في سلسلة واحدة.

بشكل افتراضي ، تقوم ML Kit بإرجاع اللغات التي تحتوي على قيم ثقة لا تقل عن 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 .