Anda dapat menggunakan ML Kit untuk mengidentifikasi bahasa pada suatu string teks. Anda dapat mengetahui bahasa string yang paling mungkin atau skor keyakinan untuk semua bahasa string yang mungkin.
ML Kit mengenali teks dalam 103 bahasa berbeda dalam skrip aslinya. Selain itu, teks berbasis abjad Romawi yang digunakan untuk bahasa Arab, Bulgaria, China, Yunani, Hindi, Jepang, dan Rusia dapat dikenali.
Sebelum memulai
- Jika belum menambahkan Firebase ke aplikasi, lakukan dengan mengikuti langkah-langkah di panduan memulai.
- Sertakan library ML Kit di Podfile Anda:
pod 'Firebase/MLNaturalLanguage', '6.25.0' pod 'Firebase/MLNLLanguageID', '6.25.0'
Setelah menginstal atau mengupdate Pod project, pastikan untuk membuka project Xcode menggunakan.xcworkspace
-nya. - Di aplikasi Anda, impor Firebase:
Swift
import Firebase
Objective-C
@import Firebase;
Mengidentifikasi bahasa string
Untuk mengidentifikasi bahasa string, dapatkan instance
LanguageIdentification
, lalu teruskan string
ke metode identifyLanguage(for:)
.
Contoh:
Swift
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")
}
}
Objective-C
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");
}
}];
Jika panggilan ini berhasil, kode bahasa BCP-47 akan diteruskan ke pengendali penyelesaian, yang menunjukkan bahasa teks. Lihat
daftar lengkap bahasa yang didukung. Jika tidak ada
bahasa yang dapat dideteksi secara meyakinkan, kode und
(tidak ditentukan) akan diteruskan.
Secara default, ML Kit akan menampilkan nilai selain und
hanya jika bahasa yang teridentifikasi memiliki
tingkat 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.naturalLanguage().languageIdentification(options: options)
Objective-C
FIRNaturalLanguage *naturalLanguage = [FIRNaturalLanguage naturalLanguage];
FIRLanguageIdentificationOptions *options =
[[FIRLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4];
FIRLanguageIdentification *languageId =
[naturalLanguage languageIdentificationWithOptions:options];
Mendapatkan bahasa string yang paling mendekati
Guna mendapatkan tingkat keyakinan untuk bahasa string yang paling mungkin, dapatkan instance LanguageIdentification
, lalu teruskan string tersebut ke metode identifyPossibleLanguages(for:)
.
Contoh:
Swift
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"))
}
Objective-C
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);
}];
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. Lihat
daftar lengkap bahasa yang didukung. 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 tingkat 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.naturalLanguage().languageIdentification(options: options)
Objective-C
FIRNaturalLanguage *naturalLanguage = [FIRNaturalLanguage naturalLanguage];
FIRLanguageIdentificationOptions *options =
[[FIRLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4];
FIRLanguageIdentification *languageId =
[naturalLanguage languageIdentificationWithOptions:options];
Jika tidak ada bahasa yang memenuhi ambang batas ini, daftar akan memiliki satu item, dengan nilai
und
.