Bir metin dizesinin dilini tanımlamak için Makine Öğrenimi Kiti'ni kullanabilirsiniz. Şunları yapabilirsiniz: tüm dizeler için güven puanlarının yanı sıra dizenin en olası dizenin olası dillerine değineceğiz.
ML Kit, 100'den fazla farklı dildeki metinleri yerel alfabelerinde tanır. Ayrıca, Latince yazılmış metinler Arapça, Bulgarca, Çince, Yunanca, Hintçe, Japonca ve Rusça Bkz. Desteklenen dillerin ve komut dosyalarının tam listesini inceleyin.
Gruplandırılanlar | Gruplandırılmamış | |
---|---|---|
Kitaplık adı | com.google.mlkit:language-id | com.google.android.gms:play-services-mlkit-language-id |
Uygulama | Model, derleme sırasında statik olarak uygulamanıza bağlıdır. | Model, Google Play Hizmetleri aracılığıyla dinamik olarak indirilir. |
Uygulama boyutunun etkisi | Yaklaşık 900 KB boyut artışı. | Yaklaşık 200 KB boyut artışı. |
Başlatma süresi | Model hemen kullanılabilir. | İlk kullanımdan önce modelin indirilmesini beklemeniz gerekebilir. |
Deneyin
- Örnek uygulamayı kullanarak bu API'nin örnek kullanımını inceleyin.
Başlamadan önce
Proje düzeyindeki
build.gradle
dosyanıza Google'ın Hembuildscript
hem deallprojects
bölümlerinizde Maven deposu.ML Kit Android kitaplıklarının bağımlılıklarını modülünüze uygulama düzeyinde gradle dosyasıdır. Bu dosya genellikle
app/build.gradle
boyutundadır. Şunlardan birini seçin: bağımlılıkları belirlemenize yardımcı olur:Modeli uygulamanızla gruplandırmak için:
dependencies { // ... // Use this dependency to bundle the model with your app implementation 'com.google.mlkit:language-id:17.0.6' }
Modeli Google Play Hizmetleri'nde kullanmak için:
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' }
Modeli Google Play Hizmetleri'nde kullanmayı seçerseniz yapılandırabilirsiniz. uygulamanız sonrasında modeli cihaza otomatik olarak indirecek Google Play Store'dan yüklenir. Bunu yapmak için aşağıdaki beyanı Uygulamanızın
AndroidManifest.xml
dosyası:<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="langid" > <!-- To use multiple models: android:value="langid,model2,model3" --> </application>
Ayrıca model kullanılabilirliğini açıkça kontrol edebilir ve Google Play Hizmetleri ModuleLoadClient API'si
Yükleme zamanı modelinin indirilmesini etkinleştirmezseniz veya açıkça indirme isteğinde bulunmazsanız model, tanımlayıcıyı ilk çalıştırdığınızda indirilir. Yaptığınız istekler hiçbir sonuç döndürmez.
Dizenin dilini belirleme
Bir dizenin dilini belirlemek için LanguageIdentification.getClient()
işlevini çağırarak
bir LanguageIdentifier
örneğini alır ve ardından, dizeyi
LanguageIdentifier
identifyLanguage()
yöntemi.
Örneğin:
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. // ... } });
Arama başarılı olursa,
BCP-47 dil kodu
başarı dinleyicisine iletilmelidir. Yanıt hayır ise:
algılandığında, kod
und
(belirsiz) geçirildi.
ML Kit, varsayılan olarak yalnızca und
dışında bir değer döndürdüğünde
güven değeri en az 0,5’tir. Bu ayarı değiştirebilirsiniz.
getClient()
öğesine bir LanguageIdentificationOptions
nesnesi ileterek eşik:
Kotlin
val languageIdentifier = LanguageIdentification .getClient(LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.34f) .build())
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient( new LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.34f) .build());
Bir dizenin olası dillerini alma
Bir dizenin en olası dillerinin güven değerlerini elde etmek için
LanguageIdentifier
örneğini kullanın ve daha sonra, dizeyi
identifyPossibleLanguages()
yöntemini çağırın.
Örneğin:
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. // ... } });
Çağrı başarılı olursa IdentifiedLanguage
nesnelerinden oluşan bir liste
yardımcı olmaktır. Her nesneden dilin BCP-47 kodunu alabilir ve
dizenin o dilde olduğundan emin olun. Lütfen
bu değerler, tüm dizenin belirtilen
dil; Makine Öğrenimi Kiti, tek bir dizede birden fazla dili tanımlamaz.
ML Kit varsayılan olarak yalnızca en az şu güven değerine sahip dilleri döndürür:
0,01. Bu eşiği, Müşteri Eşleştirme için
LanguageIdentificationOptions
nesne
getClient()
:
Kotlin
val languageIdentifier = LanguageIdentification .getClient(LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.5f) .build())
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient( new LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.5f) .build());
Hiçbir dil bu eşiği karşılamıyorsa listede bir öğe bulunur ve bu öğe için değeri
und
.