Anda dapat menggunakan ML Kit untuk mengidentifikasi bahasa pada string teks. Anda bisa mengetahui bahasa string yang paling mungkin serta skor keyakinan untuk semua bahasa string yang dimungkinkan.
ML Kit mengenali teks dalam lebih dari 100 bahasa berbeda dalam skrip aslinya. Selain itu, teks berbasis romawi dapat dikenali untuk bahasa Arab, Bulgaria, China, Yunani, Hindi, Jepang, dan Rusia. Lihat daftar lengkap bahasa dan skrip yang didukung.
Cobalah
- Silakan coba aplikasi contoh ini untuk melihat contoh penggunaan API ini.
Sebelum memulai
- Sertakan pod ML Kit berikut di Podfile Anda:
pod 'GoogleMLKit/LanguageID', '3.2.0'
- Setelah menginstal atau mengupdate Pod project, buka project Xcode menggunakan
.xcworkspace
-nya. ML Kit didukung di Xcode versi 12.4 atau yang lebih baru.
Mengidentifikasi bahasa string
Untuk mengidentifikasi bahasa string, dapatkan instance
LanguageIdentification
, lalu teruskan string ke
metode identifyLanguage(for:)
.
Contoh:
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"); } }];
Jika panggilan ini berhasil, kode bahasa BCP-47 akan diteruskan ke pengendali penyelesaian, yang menunjukkan bahasa teks. Jika tidak ada
bahasa yang dapat dideteksi secara meyakinkan, kode und
(tidak ditentukan) akan diteruskan.
Secara default, ML Kit menampilkan nilai non-und
hanya jika bahasa yang teridentifikasi
memiliki nilai keyakinan minimal 0,5. Anda dapat mengubah nilai minimum ini dengan meneruskan objek LanguageIdentificationOptions
ke 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];
Mendapatkan bahasa string yang mungkin
Guna mendapatkan tingkat keyakinan bahasa string yang paling mungkin, dapatkan
instance LanguageIdentification
, lalu teruskan string ke
metode identifyPossibleLanguages(for:)
.
Contoh:
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); }];
Jika panggilan ini berhasil, daftar objek IdentifiedLanguage
akan diteruskan ke pengendali kelanjutan. Dari setiap objek, Anda bisa mendapatkan kode BCP-47 bahasa
dan keyakinan bahwa string ditulis dalam bahasa tersebut. Perhatikan bahwa nilai ini menunjukkan keyakinan bahwa seluruh string ditulis dalam satu bahasa tertentu; ML Kit tidak mengidentifikasi banyak bahasa dalam satu string.
Secara default, ML Kit hanya menampilkan bahasa dengan nilai keyakinan minimal 0,01. Anda dapat mengubah nilai minimum ini dengan meneruskan objek LanguageIdentificationOptions
ke 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];
Jika tidak ada bahasa yang memenuhi nilai minimum ini, daftar memiliki satu item, dengan nilai
und
.