يمكنك استخدام حزمة تعلّم الآلة لتحديد لغة سلسلة من النصوص. يمكنك الحصول على لغة السلسلة الأكثر احتمالاً بالإضافة إلى درجات الثقة لجميع اللغات المحتملة للسلسلة.
تتعرّف مجموعة أدوات تعلّم الآلة على النص في أكثر من 100 لغة مختلفة في نصوصها الأصلية. بالإضافة إلى ذلك، يمكن التعرف على النص بالأحرف اللاتينية بالنسبة إلى العربية والبلغارية والصينية اليونانية والهندية واليابانية والروسية. يمكنك الاطّلاع على قائمة كاملة باللغات والنصوص البرمجية المتوافقة.
جرّبه الآن
- يمكنك تجربة نموذج التطبيق من أجل يمكنك الاطّلاع على مثال حول استخدام واجهة برمجة التطبيقات هذه.
قبل البدء
- تضمين مجموعات ML Kit التالية في Podfile:
pod 'GoogleMLKit/LanguageID', '3.2.0'
- بعد تثبيت لوحات مشروعك أو تحديثها، افتح مشروع Xcode باستخدام
.xcworkspace
تتوفّر حزمة تعلّم الآلة في الإصدار 12.4 من Xcode أو الإصدارات الأحدث.
تحديد لغة السلسلة
لتحديد لغة سلسلة ما، احصل على مثيل
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 Kit تلقائيًا قيمة غير تابعة إلى 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 Kit تلقائيًا اللغات التي تتضمن قيم ثقة لا تقل عن
0.01. يمكنك تغيير هذا الحد من خلال اجتياز
كائن 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];
وإذا لم تستوفِ أي لغة هذا الحدّ، ستتضمّن القائمة عنصرًا واحدًا، وتكون القيمة
und