Mengidentifikasi bahasa teks dengan ML Kit di Android

Anda dapat menggunakan ML Kit untuk mengidentifikasi bahasa pada suatu string teks. Anda dapat mengetahui bahasa string yang paling mungkin atau skor keyakinan untuk semua bahasa string yang mungkin.

ML Kit mengenali teks dalam 103 bahasa berbeda dalam skrip aslinya. Selain itu, teks berbasis abjad Romawi yang digunakan untuk bahasa Arab, Bulgaria, China, Yunani, Hindi, Jepang, dan Rusia dapat dikenali.

Sebelum memulai

  1. Tambahkan Firebase ke project Android jika Anda belum melakukannya.
  2. Tambahkan dependensi untuk library Android ML Kit ke file Gradle modul (level aplikasi), biasanya 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'
    }
    

Mengidentifikasi bahasa string

Untuk mengidentifikasi bahasa string, dapatkan instance FirebaseLanguageIdentification, lalu teruskan string ke metode identifyLanguage().

Contoh:

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.
              // ...
            }
          });

Jika panggilan ini berhasil, kode bahasa BCP-47 akan diteruskan ke pemroses yang berhasil, yang menunjukkan bahasa teks. Lihat daftar lengkap bahasa yang didukung. Jika tidak ada bahasa yang dapat dideteksi secara meyakinkan, kode und (tidak ditentukan) akan diteruskan.

Secara default, ML Kit akan menampilkan nilai selain und hanya jika bahasa yang teridentifikasi memiliki tingkat keyakinan minimal 0,5. Anda dapat mengubah nilai minimum ini dengan meneruskan objek FirebaseLanguageIdentificationOptions ke getLanguageIdentification():

FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
        .getInstance()
        .getLanguageIdentification(
                new FirebaseLanguageIdentificationOptions.Builder()
                        .setIdentifyLanguageConfidenceThreshold(0.34f)
                        .build());

Mendapatkan bahasa string yang paling mendekati

Guna mendapatkan tingkat keyakinan untuk bahasa string yang paling mungkin, dapatkan instance FirebaseLanguageIdentification, lalu teruskan string tersebut ke metode identifyAllLanguages().

Contoh:

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.
              // ...
            }
          });

Jika panggilan ini berhasil, daftar objek IdentifiedLanguage akan diteruskan ke pemroses yang berhasil. Dari setiap objek, Anda bisa mendapatkan kode BCP-47 bahasa dan keyakinan bahwa string ditulis dalam bahasa tersebut. Lihat daftar lengkap bahasa yang didukung. Perhatikan bahwa nilai ini menunjukkan keyakinan bahwa seluruh string ditulis dalam satu bahasa tertentu; ML Kit tidak mengidentifikasi banyak bahasa dalam satu string.

Secara default, ML Kit hanya menampilkan bahasa dengan tingkat keyakinan minimal 0,01. Anda dapat mengubah nilai minimum ini dengan meneruskan objek FirebaseLanguageIdentificationOptions ke getLanguageIdentification():

FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
        .getInstance()
        .getLanguageIdentification(
                new FirebaseLanguageIdentificationOptions.Builder()
                        .setIdentifyAllLanguagesConfidenceThreshold(0.5f)
                        .build());

Jika tidak ada bahasa yang memenuhi ambang batas ini, daftar akan memiliki satu item, dengan nilai und.