Mit ML Kit unter Android die Sprache eines Textes ermitteln

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

  1. Fügen Sie Ihrem Android-Projekt Firebase hinzu, falls noch nicht geschehen.
  2. 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