Bir metin dizesinin dilini tanımlamak için ML Kit'i kullanabilirsiniz. Dizenin en olası dilini ve dizenin olası tüm dilleri için güven puanlarını alabilirsiniz.
ML Kit 100'den fazla farklı dildeki metinleri ana dillerinde tanır. Ayrıca, Latin alfabesine dayalı metinler Arapça, Bulgarca, Çince, Yunanca, Hintçe, Japonca ve Rusça olarak tanınabilir. Desteklenen dillerin ve komut dosyalarının tam listesini inceleyin.
Deneyin
- Bu API'nin örnek bir kullanımını görmek için örnek uygulamayı inceleyin.
Başlamadan önce
- Aşağıdaki ML Kiti kapsüllerini Podfile'ınıza ekleyin:
pod 'GoogleMLKit/LanguageID', '3.2.0'
- Projenizin Kapsüllerini yükledikten veya güncelledikten sonra Xcode projenizi,
.xcworkspace
ile açın. ML Kit, Xcode 12.4 veya üzeri sürümlerde desteklenir.
Bir dizenin dilini belirleme
Bir dizenin dilini tanımlamak için LanguageIdentification
örneğini alın ve ardından dizeyi identifyLanguage(for:)
yöntemine iletin.
Örneğin:
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"); } }];
Çağrı başarılı olursa tamamlama işleyiciye metnin dilini belirten bir BCP-47 dil kodu iletilir. Hiçbir dil güvenli şekilde algılanamazsa und
kodu (belirsiz) aktarılır.
Varsayılan olarak ML Kit, yalnızca dili en az 0,5 güven değeriyle tanımladığında und
olmayan bir değer döndürür. languageIdentification(options:)
nesnesine bir LanguageIdentificationOptions
nesnesini ileterek bu eşiği değiştirebilirsiniz:
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];
Bir dizenin olası dillerini alma
Bir dizenin en olası dillerinin güven değerlerini almak için LanguageIdentification
örneğini alın ve ardından dizeyi identifyPossibleLanguages(for:)
yöntemine iletin.
Örneğin:
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); }];
Çağrı başarılı olursa devam işleyiciye IdentifiedLanguage
nesne içeren bir liste iletilir. Her nesneden dilin BCP-47 kodunu ve dizenin o dilde olduğundan emin olabilirsiniz. Bu değerlerin, tüm dizenin belirtilen dilde olduğuna dair güveni gösterdiğini unutmayın. ML Kit tek bir dizede birden fazla dili tanımlamaz.
Varsayılan olarak ML Kit yalnızca güven değerleri en az 0, 01 olan dilleri döndürür. languageIdentification(options:)
nesnesine bir LanguageIdentificationOptions
nesnesini ileterek bu eşiği değiştirebilirsiniz:
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];
Hiçbir dil bu eşiği karşılamıyorsa listede und
değerine sahip tek bir öğe bulunur.