Mit ML Kit können Sie die Sprache eines Textstrings ermitteln. Sie können die wahrscheinlichste Sprache des Strings sowie Konfidenzwerte für alle möglichen Sprachen des Strings abrufen.
ML Kit erkennt Text in über 100 verschiedenen Sprachen in seinen Muttersprachen. Außerdem kann romanisierter Text für Arabisch, Bulgarisch, Chinesisch, Griechisch, Hindi, Japanisch und Russisch erkannt werden. Hier finden Sie die vollständige Liste der unterstützten Sprachen und Skripts.
Testen
- Probieren Sie die Beispiel-App aus, um sich ein Anwendungsbeispiel dieser API anzusehen.
Hinweis
- Fügen Sie die folgenden ML Kit-Pods in Ihre Podfile ein:
pod 'GoogleMLKit/LanguageID', '3.2.0'
- Nachdem Sie die Pods Ihres Projekts installiert oder aktualisiert haben, öffnen Sie das Xcode-Projekt mit dessen
.xcworkspace
. ML Kit wird ab Xcode Version 12.4 unterstützt.
Sprache eines Strings identifizieren
Wenn Sie die Sprache eines Strings ermitteln möchten, rufen Sie eine Instanz von LanguageIdentification
ab und übergeben Sie den String an die Methode identifyLanguage(for:)
.
Beispiel:
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"); } }];
Wenn der Aufruf erfolgreich ist, wird ein BCP-47-Sprachcode an den Abschluss-Handler übergeben, der die Sprache des Textes angibt. Wenn keine Sprache zuverlässig erkannt werden konnte, wird der Code und
(unbestimmt) übergeben.
Standardmäßig gibt ML Kit einen Wert, der nicht und
ist, nur dann zurück, wenn die Sprache mit einem Konfidenzwert von mindestens 0,5 identifiziert wird. Sie können diesen Grenzwert ändern, indem Sie ein LanguageIdentificationOptions
-Objekt an languageIdentification(options:)
übergeben:
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];
Mögliche Sprachen eines Strings abrufen
Wenn Sie die Konfidenzwerte der wahrscheinlichsten Sprachen eines Strings abrufen möchten, rufen Sie eine Instanz von LanguageIdentification
ab und übergeben Sie den String dann an die Methode identifyPossibleLanguages(for:)
.
Beispiel:
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); }];
Wenn der Aufruf erfolgreich ist, wird eine Liste von IdentifiedLanguage
-Objekten an den Fortsetzungs-Handler übergeben. Für jedes Objekt können Sie den BCP-47-Code der Sprache und den Konfidenzwert des Strings in dieser Sprache abrufen. Diese Werte geben an, wie zuverlässig der gesamte String in der angegebenen Sprache ist. ML Kit identifiziert in einem String nicht mehrere Sprachen.
Standardmäßig gibt ML Kit nur Sprachen mit einem Konfidenzwert von mindestens 0, 01 zurück. Sie können diesen Grenzwert ändern, indem Sie ein LanguageIdentificationOptions
-Objekt an languageIdentification(options:)
übergeben:
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];
Wenn keine Sprache diesen Grenzwert erreicht, enthält die Liste ein Element mit dem Wert und
.