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
- Fügen Sie Ihrem Android-Projekt Firebase hinzu, falls noch nicht geschehen.
- Abhängigkeiten für die ML Kit-Android-Bibliotheken zu Ihrem Modul hinzufügen
Gradle-Datei auf App-Ebene (in der Regel
app/build.gradle
):apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' dependencies { // ... implementation 'com.google.firebase:firebase-ml-natural-language:22.0.0' implementation 'com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7' }
Sprache eines Strings ermitteln
Um die Sprache eines Strings zu ermitteln, rufen Sie eine Instanz von
FirebaseLanguageIdentification
und übergeben Sie den String an den
identifyLanguage()
-Methode.
Beispiel:
FirebaseLanguageIdentification languageIdentifier =
FirebaseNaturalLanguage.getInstance().getLanguageIdentification();
languageIdentifier.identifyLanguage(text)
.addOnSuccessListener(
new OnSuccessListener<String>() {
@Override
public void onSuccess(@Nullable String languageCode) {
if (languageCode != "und") {
Log.i(TAG, "Language: " + languageCode);
} else {
Log.i(TAG, "Can't identify language.");
}
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Model couldn’t be loaded or other internal error.
// ...
}
});
Wenn der Aufruf erfolgreich ist, wird ein
Der BCP-47-Sprachcode lautet
an den Erfolgs-Listener übergeben. Dabei wird die Sprache des Texts angegeben. Weitere Informationen finden Sie in der
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 anderen Wert als und
zurück, wenn die Sprache mit einem Konfidenzwert von mindestens 0,5 identifiziert wird. Sie können dies ändern.
durch Übergabe eines FirebaseLanguageIdentificationOptions
-Objekts an
getLanguageIdentification()
:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyLanguageConfidenceThreshold(0.34f)
.build());
Mögliche Sprachen eines Strings abrufen
Um die Konfidenzwerte der wahrscheinlichsten Sprachen eines Strings zu erhalten, erhalten Sie einen
Instanz von FirebaseLanguageIdentification
und übergeben Sie den String dann an den
identifyAllLanguages()
-Methode.
Beispiel:
FirebaseLanguageIdentification languageIdentifier =
FirebaseNaturalLanguage.getInstance().getLanguageIdentification();
languageIdentifier.identifyAllLanguages(text)
.addOnSuccessListener(
new OnSuccessListener<String>() {
@Override
public void onSuccess(List<IdentifiedLanguage> identifiedLanguages) {
for (IdentifiedLanguage identifiedLanguage : identifiedLanguages) {
String language = identifiedLanguage.getLanguageCode();
float confidence = identifiedLanguage.getConfidence();
Log.i(TAG, language + " (" + confidence + ")");
}
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Model couldn’t be loaded or other internal error.
// ...
}
});
Wenn der Aufruf erfolgreich ist, wird dem Erfolgsempfänger eine Liste von IdentifiedLanguage
-Objekten übergeben. Von jedem Objekt können Sie den BCP-47-Code der Sprache und
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 eine
FirebaseLanguageIdentificationOptions
Objekt für
getLanguageIdentification()
:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyAllLanguagesConfidenceThreshold(0.5f)
.build());
Wenn keine Sprache diesen Grenzwert erreicht, enthält die Liste ein Element mit dem Wert
und