مقدمة
تعد مهمة اكتشاف اللغات Language Detection من أحد تطبيقات معالجة اللغات الطبيعية NLP وكل ما نحتاج له للتعرف على لغة معينة وجود نص أو مستند من النصوص لهذه اللغة. سابقًا كانت هذه المهمة أحد الصعوبات التي تواجه التعلم الآلي Machine Learning وذلك لعدم توفر كمية بيانات كافية لجميع اللغات على عكس ما نحن عليه اليوم حيث نشهد إنفجارًا مهولاً في البيانات أضف إلى ذلك تنوع النماذج القوية في هذا المجال وسرعة تطورها.
في هذا الدرس سأقدم شرحاً بالخطوات لكيفية أداء هذه المهمة بلغة بايثون وذلك من خلال تدريب نموذج قادر على اكتشاف 22 لغة مختلفة من ضمنها لغتنا العربية.
اكتشاف اللغة
كإنسان ، يمكنك بسهولة اكتشاف اللغات التي تعرفها، على سبيل المثال، يمكنني التعرف بسهولة على كل من اللغة الإنجليزية ، العربية ، واليابانية . ولكن لو تم عرض لغات أخرى علي سأفشل بتخمين اللغة إلى حد كبير و هذا هو المكان الذي يمكن فيه استخدام التعلم الآلي لأداء مهمة اكتشاف اللغة.
يعتبر Google Translate أحد أشهر أدوات ترجمة اللغات في العالم ويستخدمه الكثير من الأشخاص حول العالم والذي يتضمن أيضًا نموذجًا للتعلم الآلي لاكتشاف اللغات التي يمكنك استخدامها إذا كنت لا تعرف تحديدًا اللغة التي تريد ترجمتها.
البيانات هي أهم جزء في تدريب نموذج الكشف عن اللغة. فكلما زادت البيانات لديك حول كل لغة، زادت دقة أداء نموذجك في الوقت الفعلي. تم جمع مجموعة البيانات Dataset التي سنستخدمها في هذا الدرس من موقع Kaggle، والتي تحتوي على بيانات 22 لغة شائعة حول العالم وتحتوي على 1000 جملة في كل لغة ، لذلك ستكون مجموعة بيانات مناسبة لتدريب نموذجنا الخاص في اكتشاف اللغات باستخدام التعلم الآلي.
المكتبات المستخدمة في تطبيق الدرس تثبيتها من خلال pip قبل الشروع 📦 :
Numpy==1.19.5
scikit-learn==0.24.1
pandas==1.1.3
استدعاء المكتبات
سحب البيانات و استعراضها
ما نلاحظه أنه يوجد لدينا مجموعة بيانات مكونة ميزتين رئيستين (الأعمدة)
- النص text : يحتوي على مجموعة من الكلمات تستخدم في اللغة
- اللغة language : يحتوي على اللغة التي تشير إلى النص أو تمثله
مجموعة البيانات مكونة من 21990 عينة من النصوص واللغات التي تمثلها.
التحقق من البيانات واستكشافها
التحقق من القيم المفقودة في مجموعة البيانات
لحسن الحظ لا يوجد أي قيم مفقودة 😄
تحتوي مجموعة البيانات هذه على 22 لغة مع 1000 جملة من كل لغة. تعتبر هذه البيانات متوازنة للغاية ولا تحتوي على قيم مفقودة ، لذلك يمكننا القول أن مجموعة البيانات هذه جاهزة تمامًا لاستخدامها في تدريب نموذج التعلم الآلي.
تطوير نموذج اكتشاف اللغات
دعونا الآن نقسم البيانات إلى مجموعتين تدريب واختبار:
المسألة التي نتعامل معها هي مسألة تصنيف متعدد الفئات multi-class classification لذلك سأستخدم خوارزمية Multinomial Naïve Bayes لتدريب نموذج اكتشاف اللغات لأن هذه الخوارزمية تعمل غالبًا بشكل جيد جدًا على المشكلات القائمة على التصنيف متعدد الفئات:
تجهيز النموذج واختبار مدى ضبطه model’s accuracy
الآن سنستخدم هذا النموذج لاكتشاف لغة النص من خلال جعل المستخدم يدخل النص:
كما ترون أن النموذج يعمل بشكل جيد. شيء وما يجب ملاحظته هنا هو أن هذا النموذج يمكنه فقط اكتشاف اللغات الموجودة في مجموعة البيانات.
ملخص
كان استخدام التعلم الآلي لتحديد اللغة مهمة صعبة منذ بضع سنوات لأنه لم يكن هناك الكثير من البيانات حول اللغات ، ولكن مع توفر البيانات بسهولة ، وتوفر العديد من نماذج التعلم الآلي القوية لتحديد اللغة أصبح الأمر أسهل بكثير. آمل أن يكون هذا الدرس قد نال على إعجابكم والذي تطرق إلى اكتشاف اللغات بواسطة التعلم الآلي وباستخدام لغة بايثون. لا تترددوا في طرح أسئلتكم في قسم التعليقات أدناه.