Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

حدد لغة النص باستخدام ML Kit على Android

{٪ setvar new_api_link٪} تحديد لغة النص باستخدام ML Kit على Android {٪ endsetvar٪}

يمكنك استخدام ML Kit لتحديد لغة سلسلة نصية. يمكنك الحصول على اللغة الأكثر احتمالية للسلسلة أو الحصول على درجات الثقة لجميع لغات السلسلة المحتملة.

تتعرف ML Kit على النص بـ 103 لغة مختلفة في نصوصها الأصلية. بالإضافة إلى ذلك ، يمكن التعرف على النص الروماني للعربية والبلغارية والصينية واليونانية والهندية واليابانية والروسية.

قبل ان تبدأ

  1. أضف Firebase إلى مشروع Android إذا لم تكن قد فعلت ذلك من قبل.
  2. في ملف build.gradle مستوى المشروع ، تأكد من تضمين مستودع Maven من Google في كلٍ من buildscript allprojects أقسام allprojects .
  3. أضف التبعيات لمكتبات 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 لغات متعددة في سلسلة واحدة.

بشكل افتراضي ، تقوم ML Kit بإرجاع اللغات التي تحتوي على قيم ثقة لا تقل عن 0.01. يمكنك تغيير هذه العتبة عن طريق تمرير FirebaseLanguageIdentificationOptions الكائن إلى getLanguageIdentification() :

 FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
        .getInstance()
        .getLanguageIdentification(
                new FirebaseLanguageIdentificationOptions.Builder()
                        .setIdentifyAllLanguagesConfidenceThreshold(0.5f)
                        .build());
 

إذا لم تتوافق أي لغة مع هذا الحد ، فستحتوي القائمة على عنصر واحد ، مع القيمة und .