Bir metin dizesinin dilini tanımlamak için Makine Öğrenimi Kiti'ni kullanabilirsiniz. Şunları yapabilirsiniz: dizenin en olası dilini bulur veya tüm dizelere ilişkin dizenin olası dillerine değineceğiz.
ML Kit, yerel alfabelerinde 103 farklı dildeki metinleri tanır. Ayrıca, Latince yazılmış metinler Arapça, Bulgarca, Çince, Yunanca, Hintçe, Japonca ve Rusça
Başlamadan önce
- Firebase'i uygulamanıza henüz eklemediyseniz başlangıç kılavuzundaki adımlara bakın.
- ML Kit kitaplıklarını Podfile'ınıza ekleyin:
Projenizin kapsüllerini yükledikten veya güncelledikten sonra Xcodepod 'Firebase/MLNaturalLanguage', '6.25.0' pod 'Firebase/MLNLLanguageID', '6.25.0'
.xcworkspace
kullanarak projenize dahil olabilir. - Uygulamanızda Firebase'i içe aktarın:
Swift
import Firebase
Objective-C
@import Firebase;
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.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");
}
}];
Arama başarılı olursa,
BCP-47 dil kodu
metnin dilini belirten tamamlama işleyicisine iletilir. Bkz.
desteklenen dillerin tam listesini inceleyin. 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.naturalLanguage().languageIdentification(options: options)
Objective-C
FIRNaturalLanguage *naturalLanguage = [FIRNaturalLanguage naturalLanguage];
FIRLanguageIdentificationOptions *options =
[[FIRLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4];
FIRLanguageIdentification *languageId =
[naturalLanguage languageIdentificationWithOptions:options];
Bir dizenin olası dillerini alma
Bir dizenin en olası dillerinin güven değerlerini elde etmek için
LanguageIdentification
örneğini seçin ve daha sonra, dizeyi
identifyPossibleLanguages(for:)
yöntemini çağırın.
Örneğin:
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);
}];
Ç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. Bkz.
desteklenen dillerin tam listesini inceleyin. 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.naturalLanguage().languageIdentification(options: options)
Objective-C
FIRNaturalLanguage *naturalLanguage = [FIRNaturalLanguage naturalLanguage];
FIRLanguageIdentificationOptions *options =
[[FIRLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4];
FIRLanguageIdentification *languageId =
[naturalLanguage languageIdentificationWithOptions:options];
Bu eşiği karşılayan dil yoksa listede şu değeri içeren bir öğe bulunur:
und