পাঠ্যের একটি স্ট্রিং এর ভাষা সনাক্ত করতে আপনি এমএল কিট ব্যবহার করতে পারেন। আপনি স্ট্রিংয়ের সম্ভাব্য ভাষা পেতে পারেন বা স্ট্রিংয়ের সম্ভাব্য সমস্ত ভাষার জন্য আত্মবিশ্বাসের স্কোর পেতে পারেন।
ML Kit তাদের নেটিভ স্ক্রিপ্টে 103টি ভিন্ন ভাষায় পাঠ্যকে স্বীকৃতি দেয়। এছাড়াও, রোমানাইজড টেক্সট আরবি, বুলগেরিয়ান, চাইনিজ, গ্রীক, হিন্দি, জাপানিজ এবং রাশিয়ান ভাষার জন্য স্বীকৃত হতে পারে।
আপনি শুরু করার আগে
- যদি আপনি ইতিমধ্যেই না করে থাকেন তাহলে আপনার Android প্রকল্পে Firebase যোগ করুন ।
- আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত
app/build.gradle
) ML কিট অ্যান্ড্রয়েড লাইব্রেরির নির্ভরতা যুক্ত করুন :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 এর আত্মবিশ্বাসের মান সহ ভাষা সনাক্ত করে। আপনি getLanguageIdentification()
এ FirebaseLanguageIdentificationOptions
অবজেক্ট পাস করে এই থ্রেশহোল্ড পরিবর্তন করতে পারেন :
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 শুধুমাত্র ন্যূনতম 0.01 এর আত্মবিশ্বাসের মান সহ ভাষা প্রদান করে। আপনি getLanguageIdentification()
এ FirebaseLanguageIdentificationOptions
অবজেক্ট পাস করে এই থ্রেশহোল্ড পরিবর্তন করতে পারেন :
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyAllLanguagesConfidenceThreshold(0.5f)
.build());
যদি কোনো ভাষা এই থ্রেশহোল্ড পূরণ না করে, তাহলে তালিকায় একটি আইটেম থাকবে, যার মান und
.