می توانید از ML Kit برای شناسایی زبان رشته ای از متن استفاده کنید. شما می توانید محتمل ترین زبان رشته و همچنین امتیازات اطمینان را برای همه زبان های ممکن رشته دریافت کنید.
ML Kit متن را به بیش از 100 زبان مختلف در اسکریپت های اصلی آنها تشخیص می دهد. علاوه بر این، متن رمانسازی شده را میتوان به زبانهای عربی، بلغاری، چینی، یونانی، هندی، ژاپنی و روسی تشخیص داد. لیست کامل زبان ها و اسکریپت های پشتیبانی شده را ببینید.
همراه | تفکیک شده | |
---|---|---|
نام کتابخانه | com.google.mlkit:language-id | com.google.android.gms:play-services-mlkit-language-id |
پیاده سازی | مدل به طور ایستا به برنامه شما در زمان ساخت پیوند داده می شود. | مدل به صورت پویا از طریق خدمات Google Play دانلود می شود. |
تاثیر اندازه برنامه | حدود 900 کیلوبایت افزایش حجم. | افزایش حجم حدود 200 کیلوبایت |
زمان اولیه سازی | مدل فورا موجود است | ممکن است قبل از اولین استفاده باید منتظر بمانید تا مدل دانلود شود. |
آن را امتحان کنید
- با برنامه نمونه بازی کنید تا نمونه استفاده از این API را ببینید.
قبل از شروع
در فایل
build.gradle
در سطح پروژه خود، مطمئن شوید که مخزن Maven Google را در هر دو بخشbuildscript
وallprojects
خود قرار دهید.وابستگی های کتابخانه های اندروید ML Kit را به فایل gradle سطح برنامه ماژول خود اضافه کنید، که معمولا
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، مدل را بهطور خودکار در دستگاه دانلود کنید. برای انجام این کار، اعلان زیر را به فایل
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
بدست آورید و سپس رشته را به متد identifyLanguage()
LanguageIdentifier
ارسال کنید.
به عنوان مثال:
کاتلین
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 شناسایی کند. شما می توانید این آستانه را با ارسال یک شی LanguageIdentificationOptions
به getClient()
تغییر دهید:
کاتلین
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 چندین زبان را در یک رشته شناسایی نمی کند.
به طور پیشفرض، ML Kit فقط زبانهایی را با مقادیر اطمینان حداقل 0.01 برمیگرداند. شما می توانید این آستانه را با ارسال یک شی LanguageIdentificationOptions
به getClient()
تغییر دهید:
کاتلین
val languageIdentifier = LanguageIdentification .getClient(LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.5f) .build())
جاوا
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient( new LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.5f) .build());
اگر هیچ زبانی این آستانه را برآورده نکند، فهرست دارای یک مورد با مقدار und
است.