يمكنك استخدام حزمة تعلّم الآلة لتحديد لغة سلسلة من النصوص. يمكنك للحصول على لغة السلسلة الأكثر احتمالاً أو على درجات الثقة لجميع اللغات المحتملة للسلسلة.
تتعرّف حزمة "تعلُّم الآلة" على النصوص بـ 103 لغات مختلفة في نصوصها الأصلية. بالإضافة إلى ذلك، يمكن التعرف على النص بالأحرف اللاتينية بالنسبة إلى العربية والبلغارية والصينية اليونانية والهندية واليابانية والروسية.
قبل البدء
- إذا لم تكن قد فعلت ذلك بالفعل، إضافة Firebase إلى مشروع Android
- إضافة الموارد التابعة لمكتبات ML Kit على Android إلى الوحدة
(على مستوى التطبيق) ملف 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 تلقائيًا اللغات التي تتضمن قيم ثقة لا تقل عن
0.01. يمكنك تغيير هذا الحد من خلال اجتياز
FirebaseLanguageIdentificationOptions
كائن إلى
getLanguageIdentification()
:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyAllLanguagesConfidenceThreshold(0.5f)
.build());
إذا لم تصل أي لغة إلى هذا الحدّ، ستتضمّن القائمة عنصرًا واحدًا، مع القيمة
und