Sie können ML Kit verwenden, um die Sprache eines Textstrings zu 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-Datei ein:
Nachdem Sie die Pods Ihres Projekts installiert oder aktualisiert haben, öffnen Sie unbedingt Ihren Xcode mithilfe derpod 'Firebase/MLNaturalLanguage', '6.25.0' pod 'Firebase/MLNLLanguageID', '6.25.0'
.xcworkspace
zu erstellen. - 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 ein
Der BCP-47-Sprachcode lautet
wird an den Abschluss-Handler übergeben und gibt die Sprache des Textes an. Hier finden Sie eine vollständige Liste der unterstützten Sprachen. Wenn keine Sprache mit Sicherheit erkannt werden konnte, wird der Code und
(nicht bestimmt) übergeben.
Standardmäßig gibt ML Kit nur dann einen Nicht-und
-Wert zurück, wenn das
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.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
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.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. Von 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 Beachten Sie, dass
zeigen diese Werte die Sicherheit an, dass sich der gesamte String in der 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.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