تتيح لك مهمة MediaPipe Language Detector تحديد لغة جزء من النص. هذه طريقة استخدام "أداة رصد اللغة" مع تطبيقات Android. الرمز النموذج الموصوف في هذه التعليمات على GitHub.
يمكنك مشاهدة هذه المهمة وهي قيد التنفيذ من خلال عرض العرض التوضيحي. مزيد من المعلومات حول الإمكانات والنماذج وخيارات الضبط هذه المهمة، راجع نظرة عامة.
مثال على الرمز البرمجي
ويقدِّم مثال الرمز البرمجي الخاص بأداة Language Detector عملية تنفيذ بسيطة المهمة كمرجع لك. يساعدك هذا الرمز في اختبار هذه المهمة والبدء في في إنشاء ميزة التعرّف على اللغة. يمكنك تصفح مثال على رمز أداة التعرّف على اللغة على GitHub.
تنزيل الرمز
توضّح لك التعليمات التالية كيفية إنشاء نسخة على الجهاز من هذا المثال. باستخدام أداة سطر الأوامر للتحكم في إصدار git.
لتنزيل نموذج الرمز:
- استنساخ مستودع git باستخدام الأمر التالي:
git clone https://github.com/google-ai-edge/mediapipe-samples
- يمكنك اختياريًا ضبط مثيل git لاستخدام عملية الدفع المتناثر
لذا، لديك فقط ملفات تطبيق Language Detector النموذجي:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/languagedetector/android
للحصول على تعليمات حول كيفية إعداد وتشغيل مثال باستخدام "استوديو Android" يمكنك الاطّلاع على تعليمات إعداد الرمز البرمجي في القسم دليل إعداد Android
المكوّنات الرئيسية
تحتوي الملفات التالية على التعليمة البرمجية المهمة لتصنيف النص مثال للتطبيق:
- LanguageDetectorHelper.kt - يؤدي هذا الخيار إلى إعداد أداة رصد اللغة ومعالجة اختيار النموذج.
- ResultsAdapter.kt - يتعامل مع نتائج الرصد وينسقها.
- MainActivity.kt -
لتنفيذ التطبيق، بما في ذلك طلب الرقم
LanguageDetectorHelper
ResultsAdapter
ضبط إعدادات الجهاز
يصف هذا القسم الخطوات الرئيسية لإعداد بيئة التطوير مشاريع الرموز البرمجية خصيصًا لاستخدام أداة Language Detector. للحصول على معلومات عامة عن إعداد بيئة التطوير الخاصة بك لاستخدام مهام MediaPipe، بما في ذلك متطلبات إصدار نظام التشغيل، راجع دليل إعداد Android
التبعيات
تستخدم أداة رصد اللغة مكتبات com.google.mediapipe:tasks-text
. إضافة هذا
تعتمد على ملف build.gradle
الخاص بمشروع تطوير تطبيق Android.
يمكنك استيراد الموارد التابعة المطلوبة باستخدام الرمز التالي:
dependencies {
implementation 'com.google.mediapipe:tasks-text:latest.release'
}
الطراز
تتطلّب مهمة أداة رصد اللغة MediaPipe نموذجًا مدرَّبًا متوافقًا مع هذه الوحدة. المهمة. لمزيد من المعلومات عن النماذج المُدرَّبة المتاحة لأداة رصد اللغة، يُرجى الاطّلاع على نظرة عامة على المهمة قسم النماذج.
حدد النموذج ونزّله ثم خزّنه في دليل المشروع:
<dev-project-root>/src/main/assets
حدِّد مسار النموذج ضمن مَعلمة ModelName
.
إنشاء المهمة
يمكنك استخدام إحدى دوال createFrom...()
لإنشاء المهمة. تشير رسالة الأشكال البيانية
تقبل الدالة createFromOptions()
خيارات الإعداد للّغة.
الجديدة. يمكنك أيضًا إعداد المهمة باستخدام المصنع في createFromFile()
.
الأخرى. تقبل الدالة createFromFile()
مسارًا نسبيًا أو مطلقًا
ملف النموذج المدرَّب. لمزيد من المعلومات حول ضبط المهام، يُرجى الاطّلاع على
خيارات الإعداد:
يوضح الرمز التالي كيفية إنشاء هذه المهمة وإعدادها.
// For creating a language detector instance:
LanguageDetectorOptions options =
LanguageDetectorOptions.builder()
.setBaseOptions(
BaseOptions.builder()
.setModelAssetPath(modelPath)
.build()
)
.build();
LanguageDetector languageDetector = LanguageDetector.createFromOptions(context, options);
يمكنك الاطّلاع على مثال على كيفية إنشاء مهمة في مثال الرمز البرمجي.
LanguageDetectorHelper
الفئة initDetector()
.
خيارات الإعداد
تتضمّن هذه المهمة خيارات الضبط التالية لتطبيقات Android:
اسم الخيار | الوصف | نطاق القيمة | القيمة الافتراضية |
---|---|---|---|
maxResults |
تحدّد هذه السياسة الحد الأقصى الاختياري لتوقّعات اللغة الأعلى تقييمًا إرجاع. إذا كانت هذه القيمة أقل من صفر، فسيتم عرض جميع النتائج المتاحة. | أي أرقام موجبة | -1 |
scoreThreshold |
لتعيين الحد الأدنى لنتيجة التنبؤ الذي يلغي الحد المقدم في بيانات التعريف للنموذج (إن وجدت). يتم رفض النتائج التي تكون أدنى من هذه القيمة. | أي عدد عائم | لم يتم ضبط الوضع |
categoryAllowlist |
تحدِّد هذه السياسة القائمة الاختيارية لرموز اللغات المسموح بها. إذا لم تكن فارغة،
توقعات اللغة التي ليس رمز اللغة بها في هذه المجموعة
بفلترته. يقتصر هذا الخيار على
تؤدي categoryDenylist واستخدام كلتاهما إلى حدوث خطأ. |
أي سلاسل | لم يتم ضبط الوضع |
categoryDenylist |
تحدِّد هذه السياسة القائمة الاختيارية لرموز اللغات غير المسموح بها. في حال حذف
ستتم تصفية تنبؤات اللغة غير الفارغة التي يوجد رمز لغتها في هذه المجموعة
. لا ينطبق هذا الخيار إلا على categoryAllowlist .
استخدام كلتا النتيجتين إلى خطأ. |
أي سلاسل | لم يتم ضبط الوضع |
تجهيز البيانات
تعمل "أداة رصد اللغة" مع بيانات النصوص (String
). تتعامل المهمة مع إدخال البيانات
المعالجة المسبقة، بما في ذلك الترميز والمعالجة المسبقة لـ Tenor. الكل
تتم معالجة عمليات المعالجة المسبقة ضمن دالة detect()
. ليست هناك حاجة إلى
المعالجة المسبقة الإضافية لنص الإدخال مسبقًا.
String inputText = "Some input text for the language detector";
تنفيذ المهمة
تستخدم ميزة "رصد اللغة" أسلوب LanguageDetector.detect()
لمعالجة الإدخال
النص والتنبؤ بلغة النص. يجب استخدام عملية تنفيذ منفصلة
سلسلة محادثات لتنفيذ عملية الرصد من أجل تجنُّب حظر مستخدم Android
واجهة المستخدم مع تطبيقك.
يوضح الرمز التالي كيفية تنفيذ المعالجة باستخدام المهمة باستخدام سلسلة محادثات منفصلة.
// Predict the language of the input text.
fun classify(text: String) {
executor = ScheduledThreadPoolExecutor(1)
executor.execute {
val results = languageDetector.detect(text)
listener.onResult(results)
}
}
يمكنك الاطّلاع على مثال على كيفية تنفيذ مهمة في مثال الرمز البرمجي
LanguageDetectorHelper
الفئة detect()
.
التعامل مع العملاء وعرض النتائج
تُخرج ميزة "التعرّف على اللغة" عنصر LanguageDetectorResult
يتألّف من قائمة من
التوقعات اللغوية إلى جانب الاحتمالات المتعلقة بتلك التنبؤات. تشير رسالة الأشكال البيانية
فئات اللغة تم تحديدها في النموذج، راجع النظرة العامة على المهمة
قسم النماذج للاطّلاع على تفاصيل حول النموذج الذي تستخدمه.
في ما يلي مثال على بيانات الإخراج من هذه المهمة:
LanguageDetectorResult:
LanguagePrediction #0:
language_code: "fr"
probability: 0.999781
تم الحصول على هذه النتيجة من خلال تنفيذ النموذج على نص الإدخال:
"Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent."
يمكنك الاطّلاع على مثال على كيفية عرض النتائج في مثال الرمز البرمجي
ResultsAdapter
الفئة وفئة ViewHolder
الداخلية.