Mit ML Kit können Sie die Sprache eines Textstrings ermitteln. Sie können die wahrscheinlichste Sprache des Strings oder Konfidenzwerte für alle der möglichen Sprachen der Zeichenfolge.
ML Kit erkennt Text in 103 verschiedenen Sprachen in seinen nativen Skripts. Außerdem ist romanisierter Text für Arabisch, Bulgarisch, Chinesisch, Griechisch, Hindi, Japanisch und Russisch.
Hinweis
- Wenn Sie Ihrer App noch nicht Firebase hinzugefügt haben, folgen Sie der im Startleitfaden.
- Fügen Sie die ML Kit-Bibliotheken in Ihre Podfile ein:
pod 'Firebase/MLNaturalLanguage', '6.25.0' pod 'Firebase/MLNLLanguageID', '6.25.0'
Nachdem Sie die Pods Ihres Projekts installiert oder aktualisiert haben, öffnen Sie Ihr Xcode-Projekt mit der.xcworkspace
. - Importieren Sie Firebase in Ihre App:
Swift
import Firebase
Objective-C
@import Firebase;
Sprache eines Strings ermitteln
Wenn Sie die Sprache eines Strings ermitteln möchten, rufen Sie eine Instanz von LanguageIdentification
ab und übergeben Sie den String dann an die Methode identifyLanguage(for:)
.
Beispiel:
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");
}
}];
Wenn der Aufruf erfolgreich ist, wird dem Completion-Handler ein BCP-47-Sprachcode übergeben, der die Sprache des Textes angibt. Hier finden Sie eine vollständige Liste der unterstützten Sprachen. Falls nein
Sprache sicher erkannt werden konnte, wird der Code und
(unbestimmt) übergeben.
Standardmäßig gibt ML Kit nur dann einen anderen Wert als und
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.naturalLanguage().languageIdentification(options: options)
Objective-C
FIRNaturalLanguage *naturalLanguage = [FIRNaturalLanguage naturalLanguage];
FIRLanguageIdentificationOptions *options =
[[FIRLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4];
FIRLanguageIdentification *languageId =
[naturalLanguage 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.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);
}];
Wenn der Aufruf erfolgreich ist, wird eine Liste von IdentifiedLanguage
-Objekten an den Fortsetzungs-Handler übergeben. Aus jedem Objekt können Sie den BCP-47-Code der Sprache abrufen.
und die Wahrscheinlichkeit,
dass der String in dieser Sprache ist. Weitere Informationen finden Sie in der
Vollständige Liste der unterstützten Sprachen Diese Werte geben die Wahrscheinlichkeit an, dass der gesamte String in der angegebenen Sprache ist. ML Kit erkennt keine mehreren Sprachen in einem einzelnen String.
Standardmäßig gibt ML Kit nur Sprachen mit Konfidenzwerten 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.naturalLanguage().languageIdentification(options: options)
Objective-C
FIRNaturalLanguage *naturalLanguage = [FIRNaturalLanguage naturalLanguage];
FIRLanguageIdentificationOptions *options =
[[FIRLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4];
FIRLanguageIdentification *languageId =
[naturalLanguage languageIdentificationWithOptions:options];
Wenn keine Sprache diesen Grenzwert erreicht, enthält die Liste ein Element mit dem Wert
und