আপনি এমএল কিট ব্যবহার করে কোনো টেক্সট স্ট্রিং-এর ভাষা শনাক্ত করতে পারেন। আপনি স্ট্রিংটির সবচেয়ে সম্ভাব্য ভাষার পাশাপাশি এর সম্ভাব্য সমস্ত ভাষার জন্য কনফিডেন্স স্কোরও পেতে পারেন।
এমএল কিট ১০০টিরও বেশি বিভিন্ন ভাষার নিজস্ব লিপিতে লেখা শনাক্ত করতে পারে। এছাড়াও, আরবি, বুলগেরীয়, চীনা, গ্রিক, হিন্দি, জাপানি এবং রুশ ভাষার রোমানাইজড লেখাও শনাক্ত করা যায়। সমর্থিত ভাষা ও লিপির সম্পূর্ণ তালিকা দেখুন।
| বান্ডিল | আনবান্ডেলড | |
|---|---|---|
| লাইব্রেরির নাম | com.google.mlkit:language-id | com.google.android.gms:play-services-mlkit-language-id |
| বাস্তবায়ন | বিল্ড করার সময় মডেলটি আপনার অ্যাপের সাথে স্ট্যাটিক্যালি লিঙ্ক করা হয়। | মডেলটি গুগল প্লে সার্ভিসেস-এর মাধ্যমে ডায়নামিকভাবে ডাউনলোড করা হয়। |
| অ্যাপের আকারের প্রভাব | আকার প্রায় ৯০০ কিলোবাইট বৃদ্ধি পেয়েছে। | আকার প্রায় ২০০ কেবি বৃদ্ধি পেয়েছে। |
| প্রারম্ভিক সময় | মডেলটি অবিলম্বে পাওয়া যাবে। | প্রথমবার ব্যবহারের আগে মডেলটি ডাউনলোড হওয়ার জন্য অপেক্ষা করতে হতে পারে। |
চেষ্টা করে দেখুন
- এই API-টির একটি উদাহরণমূলক ব্যবহার দেখতে নমুনা অ্যাপটি ব্যবহার করে দেখুন।
শুরু করার আগে
আপনার প্রোজেক্ট-স্তরের
build.gradleফাইলে,buildscriptএবংallprojectsউভয় সেকশনেই গুগলের মেভেন রিপোজিটরি অন্তর্ভুক্ত করা নিশ্চিত করুন।আপনার মডিউলের অ্যাপ-লেভেল গ্রেডল ফাইলে (যা সাধারণত
app/build.gradleহয়) এমএল কিট অ্যান্ড্রয়েড লাইব্রেরির ডিপেন্ডেন্সিগুলো যোগ করুন। আপনার প্রয়োজন অনুযায়ী নিম্নলিখিত ডিপেন্ডেন্সিগুলোর মধ্যে থেকে একটি বেছে নিন:আপনার অ্যাপের সাথে মডেলটি বান্ডল করার জন্য:
dependencies { // ... // Use this dependency to bundle the model with your app implementation 'com.google.mlkit:language-id:17.0.6' }গুগল প্লে সার্ভিসে মডেলটি ব্যবহার করার জন্য:
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' }আপনি যদি গুগল প্লে সার্ভিসেস-এ মডেলটি ব্যবহার করতে চান , তাহলে প্লে স্টোর থেকে আপনার অ্যাপটি ইনস্টল হওয়ার পর ডিভাইসে মডেলটি স্বয়ংক্রিয়ভাবে ডাউনলোড করার জন্য আপনি আপনার অ্যাপটি কনফিগার করতে পারেন। এটি করার জন্য, আপনার অ্যাপের
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>এছাড়াও আপনি গুগল প্লে সার্ভিসেস-এর ModuleInstallClient API-এর মাধ্যমে মডেলটির প্রাপ্যতা স্পষ্টভাবে যাচাই করতে এবং ডাউনলোডের জন্য অনুরোধ করতে পারেন।
আপনি যদি ইনস্টল-টাইম মডেল ডাউনলোড সক্ষম না করেন বা সুস্পষ্ট ডাউনলোডের অনুরোধ না করেন, তাহলে আপনি প্রথমবার আইডেন্টিফায়ারটি চালানোর সময় মডেলটি ডাউনলোড হয়ে যায়। ডাউনলোড সম্পূর্ণ হওয়ার আগে করা অনুরোধগুলোর কোনো ফলাফল পাওয়া যায় না।
একটি স্ট্রিংয়ের ভাষা শনাক্ত করুন
কোনো স্ট্রিং-এর ভাষা শনাক্ত করতে, LanguageIdentifier এর একটি ইনস্ট্যান্স পাওয়ার জন্য LanguageIdentification.getClient() কল করুন, এবং তারপর স্ট্রিংটি 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 ।