الدرس الأول (٣)
انظر إلى المقطع البرمجي أمامك، حين نكتب Phrases ونحدد دالة التقييم بمعيار NPMI، نحن نقيس مدى ارتباط الكلمات ببعضها عندما تظهر متجاورة. لو ظهرت كلمتان معاً في عدة جمل، فإن مقياس NPMI يحسب قوة هذا الارتباط ليعطي قيمة بين -1 و1. القيمة الموجبة تعني ارتباطاً قوياً وتواورداً كاملاً، بينما القيمة السالبة تعني استقلالاً كاملاً أو تنافراً. أما دالة freeze() فتأتي في النهاية لتجميد العبارة وجعلها ثابتة غير قابلة للتغيير، وهذا يمنع تعديل العبارات أثناء تشغيل النمذجة التنبؤية، تماماً مثل تثبيت إعدادات جهاز قبل تشغيله لضمان ثبات النتائج.
يقوم الدرس على معالجة النصوص البرمجية وتحويلها إلى متجهات رقمية باستخدام مقياس تكرار المصطلح - تكرار المستند العكسي المعروف اختصاراً بـ TF-IDF. تعتمد الفكرة على أن تكرار الكلمة وحدها في المستند لا يكفي لتقدير أهميتها، بل يجب حساب تكرارها نسبة إلى إجمالي الرموز، مع ضرب الناتج في تكرار المستند العكسي المستنتج من قسمة إجمالي عدد المستندات في مجموعة البيانات على عدد المستندات التي تحتوي على الرمز، وذلك لتجاهل الكلمات الشائعة غير المفيدة وإعطاء الأهمية للكلمات المميزة. على سبيل المثال، إذا تكررت كلمة معينة 5 مرات في مستند من أصل 100 مستند، فإننا نضرب تكرارها المحلي في القيمة العكسية لظهورها في بقية المستندات، ثم ندخل هذه النتيجة في مصنف بايز الساذج لبناء نموذج تنبؤي دقيق.
الفكرة الأساسية
تعتمد الفكرة الأساسية للدرس على تحويل النصوص إلى أرقام ومتجهات تفهمها خوارزميات الذكاء الاصطناعي بدقة، وذلك باستخدام مقياس تكرار المصطلح - تكرار المستند العكسي الذي يرمز له بـ TF-IDF، لتحديد أهمية الكلمات الفعلية داخل النصوص وتجنب الاعتماد على التكرار المطلق الذي قد يضلل النموذج.
الشرح
حين نتعامل مع النصوص البرمجية، نجد أن تكرار الكلمة في المستند لا يعد دوماً تمثيلا دقيقا لأهميتها؛ فبعض الكلمات تتكرر بكثرة لأنها شائعة في اللغة وليست دالة على المعنى. لتجاوز هذه المشكلة، يعتمد مقياس تكرار المصطلح - تكرار المستند العكسي على عاملين رئيسيين: العامل الأول هو تكرار الرمز في المستند، ويُحساب عبر معرفة عدد مرات ظهوره في المستند مقسوماً على إجمالي عدد الرموز في جميع المستندات. العامل الثاني هو تكرار المستند العكسي للرمز، ويُحساب بقسمة إجمالي عدد المستندات في مجموعة البيانات على عدد المستندات التي تحتوي على الرمز. نضرب هذين العاملين ببعضهما لنحصل على القيمة النهائية لأهمية الرمز. بعد تجهيز هذه القيم باستخدام أدوات مثل TfidfVectorizer، يمكن إدخالها في مصنف بايز الساذج المسمى MultinomialNB لبناء خط أنابيب تنبؤ جديد يحقق دقة أعلى في تصنيف النصوص مقارنة بالطرق الأولية.
مثال محلول خطوة بخطوة
لنفترض أن لديك مستنداً نصياً يحتوي على 1000 كلمة، وظهرت كلمة فيلم 10 مرات في هذا المستند. إجمالي عدد المستندات في قاعدة البيانات هو 10000 مستند، وكلمة فيلم ظهرت في 100 مستند فقط. الخطوة الأولى: احسب تكرار الرمز في المستند بقسمة عدد مرات الظهور على إجمالي كلمات المستند، أي . الخطوة الثانية: احسب تكرار المستند العكسي بقسمة إجمالي المستندات على عدد المستندات التي تحتوي على الكلمة، أي . الخطوة الثالثة: اضرب العاملين ببعضهما للحصول على قيمة TF-IDF، أي . بهذا تحولت الكلمة إلى قيمة رقمية تعكس أهميتها الحقيقية في النص.
أخطاء شائعة
الاعتقاد بأن تكرار الكلمة بكثرة في المستند يعني بالضرورة أنها الكلمة الأهم، وتجاهل دور التكرار العكسي للمستندات في استبعاد الكلمات الشائعة. استخدام مصفوفة كثيفة بدلاً من الاعتماد على تقنيات تكرار المصطلح - تكرار المستند العكسي المناسبة، مما يتسبب في استهلاك مساحة أكبر بكثير من الذاكرة.
سؤالان للتدريب مع الإجابة
السؤال الأول: لماذا يتم استخدام تكرار المستند العكسي بجانب تكرار المصطلح؟ الإجابة: لتجنب المبالغة في تقدير أهمية المصطلحات التي تظهر في الوثائق الأطول أو تتكرر بشكل مفرط في كل المستندات، واستبعاد الكلمات الأكثر شيوعاً غير المفيدة. السؤال الثاني: ماذا يحقق استخدام مصنف بايز الساذج مع أداة التمثيل بالمتجهات الجديدة؟ الإجابة: يحقق تحسناً كبيراً في دقة التנبؤ مقارنة بالدقة السابقة عبر تحديد المشاعر الإيجابية والسلبية للعبارات بدقة أكبر.