Bir metin dizesinin dilini tanımlamak için Makine Öğrenimi Kiti'ni kullanabilirsiniz. Şunları yapabilirsiniz: dizenin en olası dilini bulur veya tüm dizelere ilişkin dizenin olası dillerine değineceğiz.
ML Kit, yerel alfabelerinde 103 farklı dildeki metinleri tanır. Ayrıca, Latince yazılmış metinler Arapça, Bulgarca, Çince, Yunanca, Hintçe, Japonca ve Rusça
Başlamadan önce
- Henüz yapmadıysanız Firebase'i Android projenize ekleyin.
- Modülünüze ML Kit Android kitaplıkları için bağımlılıkları ekleyin
(uygulama düzeyinde) Gradle dosyası (genellikle
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' }
Dizenin dilini belirleme
Bir dizenin dilini tanımlamak için şunun bir örneğini alın:
FirebaseLanguageIdentification
ve ardından dizeyi
identifyLanguage()
yöntemini çağırın.
Örneğin:
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.
// ...
}
});
Arama başarılı olursa,
BCP-47 dil kodu
başarı dinleyicisine iletilmelidir. Bkz.
desteklenen dillerin tam listesini inceleyin. Yanıt hayır ise
dil güvenli bir şekilde algılandığında und
kodu (belirsiz) iletilir.
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.
eşiğine (FirebaseLanguageIdentificationOptions
)
getLanguageIdentification()
:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyLanguageConfidenceThreshold(0.34f)
.build());
Bir dizenin olası dillerini alma
Bir dizenin en olası dillerinin güven değerlerini elde etmek için
FirebaseLanguageIdentification
örneğini seçin ve daha sonra, dizeyi
identifyAllLanguages()
yöntemini çağırın.
Örneğin:
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.
// ...
}
});
Ç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. Bkz.
desteklenen dillerin tam listesini inceleyin. 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
FirebaseLanguageIdentificationOptions
nesne
getLanguageIdentification()
:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyAllLanguagesConfidenceThreshold(0.5f)
.build());
Bu eşiği karşılayan dil yoksa listede şu değeri içeren bir öğe bulunur:
und