Sie können ML Kit verwenden, um die Sprache eines Textstrings zu ermitteln. Sie können die wahrscheinlichste Sprache der Zeichenfolge sowie Konfidenzwerte für alle der möglichen Sprachen der Zeichenfolge.
ML Kit erkennt Text in über 100 verschiedenen Sprachen in eigenen Skripts. Außerdem ist romanisierter Text für Arabisch, Bulgarisch, Chinesisch, Griechisch, Hindi, Japanisch und Russisch. Weitere Informationen finden Sie in der vollständige Liste der unterstützten Sprachen und Skripts
Jetzt ausprobieren
- Probieren Sie die Beispiel-App aus, um sehen Sie sich ein Anwendungsbeispiel für diese API an.
Hinweis
- Fügen Sie die folgenden ML Kit-Pods in Ihre Podfile-Datei ein:
pod 'GoogleMLKit/LanguageID', '3.2.0'
- Nachdem Sie die Pods Ihres Projekts installiert oder aktualisiert haben, öffnen Sie Ihr Xcode-Projekt mit dem
.xcworkspace
ML Kit wird ab Xcode-Version 12.4 unterstützt.
Sprache eines Strings ermitteln
Um die Sprache eines Strings zu ermitteln, rufen Sie eine Instanz von
LanguageIdentification
und übergeben Sie den String an den
identifyLanguage(for:)
-Methode.
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
Der BCP-47-Sprachcode lautet
wird an den Abschluss-Handler übergeben und gibt die Sprache des Textes an. Falls nein
Sprache sicher erkannt werden konnte, wird der Code und
(unbestimmt) übergeben.
Standardmäßig gibt ML Kit nur dann einen Nicht-und
-Wert zurück, wenn es die
Sprache mit einem Konfidenzwert von mindestens 0,5. Sie können diesen Grenzwert ändern
indem Sie ein LanguageIdentificationOptions
-Objekt an
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];
Mögliche Sprachen eines Strings abrufen
Um die Konfidenzwerte der wahrscheinlichsten Sprachen eines Strings zu erhalten, erhalten Sie einen
Instanz von LanguageIdentification
und übergeben Sie den String dann an den
identifyPossibleLanguages(for:)
-Methode.
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 mit IdentifiedLanguage
-Objekten an den
Continuation-Handler. Aus jedem Objekt können Sie den BCP-47-Code der Sprache abrufen.
und die Wahrscheinlichkeit,
dass der String in dieser Sprache ist. Beachten Sie, dass
zeigen diese Werte die Sicherheit an, dass sich der gesamte String im angegebenen
Sprache; ML Kit erkennt nicht mehrere Sprachen in einem einzelnen String.
Standardmäßig gibt ML Kit nur Sprachen mit Konfidenzwerten von mindestens
0:01. Sie können diesen Grenzwert ändern, indem Sie eine
LanguageIdentificationOptions
-Objekt für 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];
Wenn keine Sprache diesen Grenzwert erreicht, enthält die Liste ein Element mit dem Wert
und