Anda dapat menggunakan ML Kit untuk mengidentifikasi bahasa pada suatu string teks. Anda dapat mendapatkan bahasa {i>string<i} yang paling mungkin serta skor keyakinan untuk semua kemungkinan bahasa {i>string<i}.
ML Kit mengenali teks di lebih dari 100 bahasa berbeda dalam skrip aslinya. Selain itu, teks berbasis aksara romawi dapat dikenali untuk bahasa Arab, Bulgaria, China, Yunani, Hindi, Jepang, dan Rusia. Lihat daftar lengkap bahasa dan skrip yang didukung.
Paket | Tidak Dipaketkan | |
---|---|---|
Nama library | com.google.mlkit:language-id | com.google.android.gms:play-services-mlkit-language-id |
Penerapan | Model ditautkan secara statis ke aplikasi Anda pada waktu build. | Model didownload secara dinamis melalui Layanan Google Play. |
Dampak ukuran aplikasi | Ukuran meningkat sekitar 900 KB. | Ukuran meningkat sekitar 200 KB. |
Waktu inisialisasi | Model akan segera tersedia. | Mungkin harus menunggu model didownload sebelum digunakan pertama kali. |
Cobalah
- Cobalah aplikasi contoh untuk melihat contoh penggunaan API ini.
Sebelum memulai
Dalam file
build.gradle
level project, pastikan Anda menyertakan ID Repositori Maven di bagianbuildscript
danallprojects
.Tambahkan dependensi untuk library Android ML Kit ke modul Anda gradle level aplikasi, yang biasanya adalah
app/build.gradle
. Pilih salah satu dependensi berikut berdasarkan kebutuhan Anda:Untuk memaketkan model dengan aplikasi Anda:
dependencies { // ... // Use this dependency to bundle the model with your app implementation 'com.google.mlkit:language-id:17.0.6' }
Untuk menggunakan model di Layanan Google Play:
dependencies { // ... // Use this dependency to use the dynamically downloaded model in Google Play Services implementation 'com.google.android.gms:play-services-mlkit-language-id:17.0.0' }
Jika Anda memilih untuk menggunakan model ini di Layanan Google Play, Anda dapat mengonfigurasi aplikasi Anda untuk mengunduh model secara otomatis ke perangkat setelah aplikasi diinstal dari Play Store. Untuk melakukannya, tambahkan deklarasi berikut ke file
AndroidManifest.xml
aplikasi Anda:<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="langid" > <!-- To use multiple models: android:value="langid,model2,model3" --> </application>
Anda juga bisa secara eksplisit memeriksa ketersediaan model dan meminta download melalui ModuleInstallClient API layanan Google Play.
Jika Anda tidak mengaktifkan download model waktu instal atau meminta download eksplisit, model didownload saat pertama kali Anda menjalankan ID. Permintaan yang Anda buat sebelum pengunduhan selesai, tidak akan memberikan hasil.
Mengidentifikasi bahasa string
Untuk mengidentifikasi bahasa string, panggil LanguageIdentification.getClient()
untuk
dapatkan instance LanguageIdentifier
, lalu teruskan string tersebut ke
Metode identifyLanguage()
dari LanguageIdentifier
.
Contoh:
Kotlin
val languageIdentifier = LanguageIdentification.getClient() languageIdentifier.identifyLanguage(text) .addOnSuccessListener { languageCode -> if (languageCode == "und") { Log.i(TAG, "Can't identify language.") } else { Log.i(TAG, "Language: $languageCode") } } .addOnFailureListener { // Model couldn’t be loaded or other internal error. // ... }
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient(); languageIdentifier.identifyLanguage(text) .addOnSuccessListener( new OnSuccessListener<String>() { @Override public void onSuccess(@Nullable String languageCode) { if (languageCode.equals("und")) { Log.i(TAG, "Can't identify language."); } else { Log.i(TAG, "Language: " + languageCode); } } }) .addOnFailureListener( new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { // Model couldn’t be loaded or other internal error. // ... } });
Jika panggilan berhasil,
Kode bahasa BCP-47 adalah
diteruskan ke pemroses peristiwa sukses, yang menunjukkan bahasa teks. Jika tidak
bahasa terdeteksi dengan percaya diri, kode
und
(tidak ditentukan) diteruskan.
Secara default, ML Kit menampilkan nilai selain und
hanya jika ID tersebut teridentifikasi
bahasa dengan tingkat kepercayaan minimal 0,5. Anda dapat mengubahnya
nilai minimum dengan meneruskan objek LanguageIdentificationOptions
ke getClient()
:
Kotlin
val languageIdentifier = LanguageIdentification .getClient(LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.34f) .build())
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient( new LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.34f) .build());
Mendapatkan bahasa string yang mungkin
Untuk mendapatkan nilai keyakinan dari bahasa string yang paling mungkin, dapatkan
instance LanguageIdentifier
, lalu teruskan string ke
Metode identifyPossibleLanguages()
.
Contoh:
Kotlin
val languageIdentifier = LanguageIdentification.getClient() languageIdentifier.identifyPossibleLanguages(text) .addOnSuccessListener { identifiedLanguages -> for (identifiedLanguage in identifiedLanguages) { val language = identifiedLanguage.languageTag val confidence = identifiedLanguage.confidence Log.i(TAG, "$language $confidence") } } .addOnFailureListener { // Model couldn’t be loaded or other internal error. // ... }
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient(); languageIdentifier.identifyPossibleLanguages(text) .addOnSuccessListener(new OnSuccessListener<List<IdentifiedLanguage>>() { @Override public void onSuccess(List<IdentifiedLanguage> identifiedLanguages) { for (IdentifiedLanguage identifiedLanguage : identifiedLanguages) { String language = identifiedLanguage.getLanguageTag(); 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 berhasil, daftar objek IdentifiedLanguage
akan diteruskan ke
pemroses sukses. Dari setiap objek, Anda bisa
mendapatkan kode BCP-47 bahasa dan
keyakinan bahwa {i>string<i} dalam bahasa tersebut. Perlu diketahui bahwa
nilai ini menunjukkan keyakinan bahwa seluruh {i>string<i} dalam tabel yang diberikan
bahasa; 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 ambang batas ini dengan meneruskan
LanguageIdentificationOptions
objek ke
getClient()
:
Kotlin
val languageIdentifier = LanguageIdentification .getClient(LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.5f) .build())
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient( new LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.5f) .build());
Jika tidak ada bahasa yang memenuhi nilai minimum ini, daftar memiliki satu item, dengan nilai
und