Android-এ ML Kit-এর সাহায্যে পাঠ্যের ভাষা শনাক্ত করুন

পাঠ্যের একটি স্ট্রিং এর ভাষা সনাক্ত করতে আপনি এমএল কিট ব্যবহার করতে পারেন। আপনি স্ট্রিং এর সম্ভাব্য ভাষা এবং স্ট্রিং এর সম্ভাব্য সব ভাষার জন্য আত্মবিশ্বাসের স্কোর পেতে পারেন।

ML Kit তাদের নেটিভ স্ক্রিপ্টে 100 টিরও বেশি বিভিন্ন ভাষায় পাঠ্যকে স্বীকৃতি দেয়। এছাড়াও, রোমানাইজড টেক্সট আরবি, বুলগেরিয়ান, চাইনিজ, গ্রীক, হিন্দি, জাপানিজ এবং রাশিয়ান ভাষার জন্য স্বীকৃত হতে পারে। সমর্থিত ভাষা এবং স্ক্রিপ্টের সম্পূর্ণ তালিকা দেখুন।

বান্ডিল আনবান্ডেড
লাইব্রেরির নাম com.google.mlkit:language-id com.google.android.gms:play-services-mlkit-language-id
বাস্তবায়ন মডেলটি বিল্ড টাইমে আপনার অ্যাপের সাথে স্ট্যাটিকভাবে লিঙ্ক করা থাকে। মডেলটি গতিশীলভাবে Google Play পরিষেবার মাধ্যমে ডাউনলোড করা হয়।
অ্যাপের আকারের প্রভাব প্রায় 900 KB আকার বৃদ্ধি. প্রায় 200 KB আকার বৃদ্ধি.
প্রারম্ভিক সময় মডেল অবিলম্বে উপলব্ধ. প্রথম ব্যবহারের আগে মডেল ডাউনলোড করার জন্য অপেক্ষা করতে হতে পারে।

চেষ্টা কর

তুমি শুরু করার আগে

  1. আপনার প্রকল্প-স্তরের build.gradle ফাইলে, আপনার buildscript এবং allprojects উভয় বিভাগেই Google-এর Maven সংগ্রহস্থল অন্তর্ভুক্ত করা নিশ্চিত করুন৷

  2. আপনার মডিউলের অ্যাপ-লেভেল গ্রেডল ফাইলে এমএল কিট অ্যান্ড্রয়েড লাইব্রেরির জন্য নির্ভরতা যোগ করুন, যা সাধারণত app/build.gradle হয়। আপনার প্রয়োজনের উপর ভিত্তি করে নিম্নলিখিত নির্ভরতাগুলির মধ্যে একটি চয়ন করুন:

    আপনার অ্যাপের সাথে মডেল বান্ডিল করার জন্য:

    dependencies {
      // ...
      // Use this dependency to bundle the model with your app
      implementation 'com.google.mlkit:language-id:17.0.5'
    }
    

    Google Play পরিষেবাগুলিতে মডেলটি ব্যবহার করার জন্য:

    dependencies {
      // ...
      // Use this dependency to use the dynamically downloaded model in Google Play Services
      implementation 'com.google.android.gms:play-services-mlkit-language-id:17.0.0'
    }
    
  3. আপনি যদি Google Play পরিষেবাগুলিতে মডেলটি ব্যবহার করতে চান , তাহলে প্লে স্টোর থেকে আপনার অ্যাপ ইনস্টল হওয়ার পরে আপনি ডিভাইসে মডেলটিকে স্বয়ংক্রিয়ভাবে ডাউনলোড করতে আপনার অ্যাপটি কনফিগার করতে পারেন। এটি করতে, আপনার অ্যাপের AndroidManifest.xml ফাইলে নিম্নলিখিত ঘোষণা যোগ করুন:

    <application ...>
          ...
          <meta-data
              android:name="com.google.mlkit.vision.DEPENDENCIES"
              android:value="langid" >
          <!-- To use multiple models: android:value="langid,model2,model3" -->
    </application>
    

    এছাড়াও আপনি স্পষ্টভাবে মডেলের উপলব্ধতা পরীক্ষা করতে পারেন এবং Google Play পরিষেবা ModuleInstallClient API- এর মাধ্যমে ডাউনলোডের অনুরোধ করতে পারেন।

    আপনি যদি ইনস্টল-টাইম মডেল ডাউনলোডগুলি সক্ষম না করেন বা স্পষ্ট ডাউনলোডের অনুরোধ না করেন, আপনি প্রথমবার শনাক্তকারী চালানোর সময় মডেলটি ডাউনলোড করা হবে৷ ডাউনলোড সম্পূর্ণ হওয়ার আগে আপনি যে অনুরোধগুলি করেন তা কোনও ফলাফল দেয় না।

একটি স্ট্রিং এর ভাষা সনাক্ত করুন

একটি স্ট্রিংয়ের ভাষা শনাক্ত করার জন্য, LanguageIdentification.getClient() LanguageIdentifier এর একটি উদাহরণ পেতে কল করুন এবং তারপর স্ট্রিংটিকে LanguageIdentifier এর identifyLanguage() পদ্ধতিতে পাস করুন।

উদাহরণ স্বরূপ:

কোটলিন

val languageIdentifier = LanguageIdentification.getClient()
languageIdentifier.identifyLanguage(text)
        .addOnSuccessListener { languageCode ->
            if (languageCode == "und") {
                Log.i(TAG, "Can't identify language.")
            } else {
                Log.i(TAG, "Language: $languageCode")
            }
        }
        .addOnFailureListener {
            // Model couldn’t be loaded or other internal error.
            // ...
        }

জাভা

LanguageIdentifier languageIdentifier =
        LanguageIdentification.getClient();
languageIdentifier.identifyLanguage(text)
        .addOnSuccessListener(
                new OnSuccessListener<String>() {
                    @Override
                    public void onSuccess(@Nullable String languageCode) {
                        if (languageCode.equals("und")) {
                            Log.i(TAG, "Can't identify language.");
                        } else {
                            Log.i(TAG, "Language: " + languageCode);
                        }
                    }
                })
        .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 এর আত্মবিশ্বাসের মান সহ ভাষা সনাক্ত করে। আপনি getClient() এ একটি LanguageIdentificationOptions অবজেক্ট পাস করে এই থ্রেশহোল্ড পরিবর্তন করতে পারেন:

কোটলিন

val languageIdentifier = LanguageIdentification
        .getClient(LanguageIdentificationOptions.Builder()
                .setConfidenceThreshold(0.34f)
                .build())

জাভা

LanguageIdentifier languageIdentifier = LanguageIdentification.getClient(
        new LanguageIdentificationOptions.Builder()
                .setConfidenceThreshold(0.34f)
                .build());

একটি স্ট্রিং এর সম্ভাব্য ভাষা পান

একটি স্ট্রিং এর সম্ভাব্য ভাষাগুলির আত্মবিশ্বাসের মানগুলি পেতে, LanguageIdentifier এর একটি উদাহরণ পান এবং তারপর স্ট্রিংটিকে identifyPossibleLanguages() পদ্ধতিতে পাস করুন৷

উদাহরণ স্বরূপ:

কোটলিন

val languageIdentifier = LanguageIdentification.getClient()
languageIdentifier.identifyPossibleLanguages(text)
        .addOnSuccessListener { identifiedLanguages ->
            for (identifiedLanguage in identifiedLanguages) {
                val language = identifiedLanguage.languageTag
                val confidence = identifiedLanguage.confidence
                Log.i(TAG, "$language $confidence")
            }
        }
        .addOnFailureListener {
            // Model couldn’t be loaded or other internal error.
            // ...
        }

জাভা

LanguageIdentifier languageIdentifier =
        LanguageIdentification.getClient();
languageIdentifier.identifyPossibleLanguages(text)
        .addOnSuccessListener(new OnSuccessListener<List<IdentifiedLanguage>>() {
            @Override
            public void onSuccess(List<IdentifiedLanguage> identifiedLanguages) {
                for (IdentifiedLanguage identifiedLanguage : identifiedLanguages) {
                    String language = identifiedLanguage.getLanguageTag();
                    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 এর আত্মবিশ্বাসের মান সহ ভাষা প্রদান করে। আপনি getClient() এ একটি LanguageIdentificationOptions অবজেক্ট পাস করে এই থ্রেশহোল্ড পরিবর্তন করতে পারেন:

কোটলিন

val languageIdentifier = LanguageIdentification
      .getClient(LanguageIdentificationOptions.Builder()
              .setConfidenceThreshold(0.5f)
              .build())

জাভা

LanguageIdentifier languageIdentifier = LanguageIdentification.getClient(
      new LanguageIdentificationOptions.Builder()
              .setConfidenceThreshold(0.5f)
              .build());

যদি কোনো ভাষা এই থ্রেশহোল্ড পূরণ না করে, তাহলে তালিকায় একটি আইটেম থাকে, যার মান und