Bir metin dizesinin dilini tanımlamak için Makine Öğrenimi Kiti'ni kullanabilirsiniz. Şunları yapabilirsiniz: tüm dizeler için güven puanlarının yanı sıra dizenin en olası dizenin olası dillerine değineceğiz.
ML Kit, 100'den fazla farklı dildeki metinleri yerel alfabelerinde tanır. Ayrıca, Latince yazılmış metinler Arapça, Bulgarca, Çince, Yunanca, Hintçe, Japonca ve Rusça Bkz. Desteklenen dillerin ve komut dosyalarının tam listesini inceleyin.
Deneyin
- Örnek uygulamayı kullanarak bu API'nin örnek kullanımını inceleyin.
Başlamadan önce
- Aşağıdaki ML Kit kapsüllerini Podfile'ınıza ekleyin:
pod 'GoogleMLKit/LanguageID', '3.2.0'
- Projenizin kapsüllerini yükledikten veya güncelledikten sonra
.xcworkspace
ML Kit, Xcode 12.4 veya sonraki sürümlerde desteklenir.
Dizenin dilini belirleme
Bir dizenin dilini tanımlamak için şunun bir örneğini alın:
LanguageIdentification
ve ardından dizeyi
identifyLanguage(for:)
yöntemini çağırın.
Ö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"); } }];
Arama başarılı olursa,
BCP-47 dil kodu
metnin dilini belirten tamamlama işleyicisine iletilir. Yanıt hayır ise:
dil güvenli bir şekilde algılandığında und
kodu (belirsiz) iletilir.
Varsayılan olarak ML Kit, und
olmayan bir değeri yalnızca
güven değeri en az 0,5’tir. Bu eşiği değiştirebilirsiniz
LanguageIdentificationOptions
nesnesini
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];
Bir dizenin olası dillerini alma
Bir dizenin en olası dillerinin güven değerlerini elde etmek için
LanguageIdentification
örneğini kullanın ve daha sonra, dizeyi
identifyPossibleLanguages(for:)
yöntemini çağırın.
Ö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 IdentifiedLanguage
nesnelerinden oluşan bir liste
devamlılık işleyici. Her nesneden dilin BCP-47 kodunu alabilirsiniz
ve dizenin o dilde olduğundan emin olun. Lütfen
bu değerler, tüm dizenin belirtilen
dil; Makine Öğrenimi Kiti, tek bir dizede birden fazla dili tanımlamaz.
ML Kit varsayılan olarak yalnızca en az şu güven değerine sahip dilleri döndürür:
0,01. Bu eşiği, Müşteri Eşleştirme için
languageIdentification(options:)
öğesine LanguageIdentificationOptions
nesne eklendi:
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 bir öğe bulunur ve bu öğe için değeri
und