زبان متن را با ML Kit در اندروید شناسایی کنید

می توانید از ML Kit برای شناسایی زبان رشته ای از متن استفاده کنید. می‌توانید محتمل‌ترین زبان رشته را دریافت کنید یا برای همه زبان‌های احتمالی رشته امتیازات اطمینان کسب کنید.

ML Kit متن را به 103 زبان مختلف در اسکریپت های اصلی آنها تشخیص می دهد. علاوه بر این، متن رمان‌سازی شده را می‌توان به زبان‌های عربی، بلغاری، چینی، یونانی، هندی، ژاپنی و روسی تشخیص داد.

قبل از اینکه شروع کنی

  1. اگر قبلاً این کار را نکرده‌اید، Firebase را به پروژه Android خود اضافه کنید .
  2. وابستگی های کتابخانه های اندروید 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 خواهد بود.