আপনি ML Kit ব্যবহার করে কোনও টেক্সট স্ট্রিংয়ের ভাষা শনাক্ত করতে পারবেন। আপনি স্ট্রিংয়ের সবচেয়ে সম্ভাব্য ভাষা এবং স্ট্রিংয়ের সব সম্ভাব্য ভাষার জন্য কনফিডেন্স স্কোর পেতে পারেন।
ML Kit ১০০টিরও বেশি বিভিন্ন ভাষার টেক্সট তাদের নিজস্ব স্ক্রিপ্টে শনাক্ত করে। এছাড়াও, রোমানাইজড টেক্সট আরবি, বুলগেরিয়ান, চাইনিজ, গ্রিক, হিন্দি, জাপানি ও রাশিয়ান ভাষার জন্য শনাক্ত করা যেতে পারে। যেসব ভাষা ও স্ক্রিপ্ট কাজ করে তার সম্পূর্ণ তালিকা দেখুন।
| একত্রিত | আনবান্ডেল করা হয়েছে | |
|---|---|---|
| লাইব্রেরির নাম | com.google.mlkit:language-id | com.google.android.gms:play-services-mlkit-language-id |
| প্রয়োগ | বিল্ড করার সময় মডেলটি আপনার অ্যাপের সাথে স্ট্যাটিক্যালি লিঙ্ক করা হয়। | Google Play পরিষেবার মাধ্যমে মডেল ডায়নামিকভাবে ডাউনলোড করা হয়। |
| অ্যাপের সাইজের প্রভাব | সাইজ প্রায় ৯০০ কেবি বেড়েছে। | সাইজ প্রায় ২০০ কেবি বেড়েছে। |
| শুরু করার সময় | মডেলটি অবিলম্বে উপলভ্য। | প্রথমবার ব্যবহার করার আগে মডেল ডাউনলোড করার জন্য অপেক্ষা করতে হতে পারে। |
এটি ব্যবহার করে দেখুন
- এই API-এর ব্যবহারিক উদাহরণ দেখতে স্যাম্পেল অ্যাপ ব্যবহার করে দেখুন।
শুরু করার আগে
আপনার প্রোজেক্ট-লেভেল
build.gradleফাইলে,buildscriptএবংallprojectsউভয় বিভাগেই Google-এর Maven রিপোজিটরি অন্তর্ভুক্ত করতে ভুলবেন না।আপনার মডিউলের অ্যাপ-লেভেল গ্রেডেল ফাইলে ML Kit Android লাইব্রেরির জন্য ডিপেন্ডেন্সি যোগ করুন, যা সাধারণত
app/build.gradleহয়। আপনার প্রয়োজন অনুযায়ী নিম্নলিখিত ডিপেন্ডেন্সিগুলির মধ্যে থেকে একটি বেছে নিন:আপনার অ্যাপের সাথে মডেল বান্ডেল করার জন্য:
dependencies { // ... // Use this dependency to bundle the model with your app implementation 'com.google.mlkit:language-id:17.0.6' }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' }আপনি যদি Google Play পরিষেবায় মডেলটি ব্যবহার করার সিদ্ধান্ত নেন, তাহলে Play Store থেকে আপনার অ্যাপ ইনস্টল করার পরে ডিভাইসে মডেলটি অটোমেটিক ডাউনলোড করার জন্য আপনার অ্যাপ কনফিগার করতে পারেন। এটি করতে, আপনার অ্যাপের
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-এর মাধ্যমে মডেলের উপলভ্যতা চেক করতে এবং ডাউনলোডের অনুরোধ করতে পারবেন।
আপনি যদি ইনস্টল-টাইম মডেল ডাউনলোড চালু না করেন বা এক্সপ্লিসিট ডাউনলোডের অনুরোধ না করেন, তাহলে আপনি প্রথমবার আইডেন্টিফায়ার চালানোর সময় মডেলটি ডাউনলোড করা হয়। ডাউনলোড সম্পূর্ণ হওয়ার আগে আপনি কোনও অনুরোধ করলে কোনও ফলাফল পাওয়া যায় না।
স্ট্রিংয়ের ভাষা শনাক্ত করা
কোনও স্ট্রিংয়ের ভাষা শনাক্ত করতে, LanguageIdentifier-এর ইনস্ট্যান্স পেতে LanguageIdentification.getClient()-এ কল করুন এবং তারপর LanguageIdentifier-এর identifyLanguage() পদ্ধতিতে স্ট্রিংটি পাস করুন।
যেমন:
Kotlin
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. // ... }
Java
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 ছাড়া অন্য কোনও মান দেখায় যখন এটি
কমপক্ষে ০.৫ কনফিডেন্স ভ্যালু সহ ভাষা শনাক্ত করে। আপনি getClient()-এ LanguageIdentificationOptions অবজেক্ট পাস করে
এই থ্রেশহোল্ড পরিবর্তন করতে পারবেন:
Kotlin
val languageIdentifier = LanguageIdentification .getClient(LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.34f) .build())
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient( new LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.34f) .build());
কোনও স্ট্রিংয়ের সম্ভাব্য ভাষা পান
কোনও স্ট্রিংয়ের সবচেয়ে সম্ভাব্য ভাষার কনফিডেন্স ভ্যালু পেতে, LanguageIdentifier-এর ইনস্ট্যান্স পান এবং তারপরে স্ট্রিংটি identifyPossibleLanguages() পদ্ধতিতে পাস করুন।
যেমন:
Kotlin
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. // ... }
Java
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 একটি স্ট্রিংয়ে একাধিক ভাষা শনাক্ত করে না।
ডিফল্ট হিসেবে, ML Kit শুধুমাত্র সেইসব ভাষা দেখায় যেগুলির কনফিডেন্স ভ্যালু কমপক্ষে
0.01 হয়। আপনি getClient()-এ
LanguageIdentificationOptions অবজেক্ট পাস করে
এই থ্রেশহোল্ড পরিবর্তন করতে পারবেন:
Kotlin
val languageIdentifier = LanguageIdentification .getClient(LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.5f) .build())
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient( new LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.5f) .build());
কোনও ভাষা এই থ্রেশহোল্ড পূরণ না করলে, তালিকায় একটি আইটেম থাকে, যার ভ্যালু হল
und।