می توانید از ML Kit برای شناسایی زبان رشته ای از متن استفاده کنید. میتوانید محتملترین زبان رشته را دریافت کنید یا برای همه زبانهای احتمالی رشته امتیازات اطمینان کسب کنید.
ML Kit متن را به 103 زبان مختلف در اسکریپت های اصلی آنها تشخیص می دهد. علاوه بر این، متن رمانسازی شده را میتوان به زبانهای عربی، بلغاری، چینی، یونانی، هندی، ژاپنی و روسی تشخیص داد.
قبل از شروع
- اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Android خود اضافه کنید .
- وابستگی های کتابخانه های اندروید ML Kit را به فایل Gradle ماژول (سطح برنامه) خود اضافه کنید (معمولا
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' }
زبان یک رشته را مشخص کنید
برای شناسایی زبان یک رشته، نمونه ای از FirebaseLanguageIdentification
را دریافت کنید و سپس رشته را به متد identifyLanguage()
ارسال کنید.
به عنوان مثال:
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.
// ...
}
});
اگر تماس با موفقیت انجام شود، یک کد زبان BCP-47 به شنونده موفق ارسال می شود که زبان متن را نشان می دهد. لیست کامل زبان های پشتیبانی شده را ببینید. اگر هیچ زبانی به طور مطمئن شناسایی نشد، کد und
(نامشخص) ارسال می شود.
بهطور پیشفرض، ML Kit تنها زمانی مقداری غیر از und
برمیگرداند که زبان را با مقدار اطمینان حداقل 0.5 شناسایی کند. میتوانید این آستانه را با ارسال یک شی FirebaseLanguageIdentificationOptions
به getLanguageIdentification()
تغییر دهید:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyLanguageConfidenceThreshold(0.34f)
.build());
زبان های ممکن یک رشته را دریافت کنید
برای بدست آوردن مقادیر اطمینان محتمل ترین زبان های رشته، نمونه ای از FirebaseLanguageIdentification
را دریافت کنید و سپس رشته را به متد identifyAllLanguages()
ارسال کنید.
به عنوان مثال:
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.
// ...
}
});
اگر تماس با موفقیت انجام شود، لیستی از اشیاء IdentifiedLanguage
به شنونده موفقیت ارسال می شود. از هر شی، می توانید کد BCP-47 زبان و اطمینان از اینکه رشته در آن زبان است را دریافت کنید. لیست کامل زبان های پشتیبانی شده را ببینید. توجه داشته باشید که این مقادیر اطمینان از اینکه کل رشته در زبان داده شده است را نشان می دهد. ML Kit چندین زبان را در یک رشته شناسایی نمی کند.
به طور پیشفرض، ML Kit فقط زبانهایی را با مقادیر اطمینان حداقل 0.01 برمیگرداند. میتوانید این آستانه را با ارسال یک شی FirebaseLanguageIdentificationOptions
به getLanguageIdentification()
تغییر دهید:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyAllLanguagesConfidenceThreshold(0.5f)
.build());
اگر هیچ زبانی این آستانه را برآورده نکند، فهرست دارای یک مورد با مقدار und
خواهد بود.