تجهيز البيانات والمعالجة المسبقة - كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: تجهيز البيانات والمعالجة المسبقة Data Preparation and Pre-Processing

📚 معلومات الصفحة

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

مستوى الصعوبة: متوسط

📝 ملخص الصفحة

تتناول هذه الصفحة عملية تجهيز البيانات النصية للمعالجة بواسطة خوارزميات تعلم الآلة، حيث تحتاج هذه الخوارزميات إلى تحويل النص إلى تنسيق رقمي عبر عملية البرمجة الاتجاهية (Vectorization).

يتم التركيز على استخدام مكتبة سكيليرن (Scikit-Learn) في بايثون، وهي مكتبة متخصصة في تعلم الآلة وتوفر أدوات مثل CountVectorizer لتحويل المستندات النصية إلى تمثيل متجهي.

تشرح الصفحة أداة CountVectorizer التي تحول النص إلى مصفوفة من الرموز (مثل الكلمات) مع حساب تكرارها، مما يُعرف بتمثيل حقيبة الكلمات (bag-of-words)، والذي يتجاهل ترتيب الكلمات لكن يحافظ على تكرارها.

يُقدم مثال برمجي يوضح استخدام CountVectorizer لتمثيل بيانات التدريب، مع معلمة min_df لتجاهل المصطلحات النادرة، مما يساهم في تحسين أداء النموذج.

يُستكمل الشرح برسم توضيحي لتمثيل حقيبة الكلمات، يظهر تحويل جملة نصية إلى متجه عددي، مما يعزز فهم العملية الأساسية في معالجة اللغة الطبيعية.

📄 النص الكامل للصفحة

تجهيز البيانات والمعالجة المسبقة Data Preparation and Pre-Processingعلى الرغم من أن تنسيق النص الأولي كما في الشكل 3.4 بديهي للقارئ البشري، إلا أن خوارزميات التعلم الموجه لا تستطيع التعامل معه بصورته الحالية. فبدلاً من ذلك، تحتاج الخوارزميات إلى تحويل هذه المستندات إلى تنسيق متجه رقمي (Numeric Vector) فيما يُعرف بعملية البرمجة الاتجاهية (Vectorization). ويمكن تطبيق عملية البرمجة الاتجاهية بعدة طرائق مختلفة، وتتميز بأن لها تأثيراً إيجابياً كبيراً على أداء النموذج المدرب.--- SECTION: مكتبة سكيليرن Sklearn Library --- مكتبة سكيليرن Sklearn Libraryسيتم بناء النموذج باستخدام مكتبة سكيليرن وتُعرف كذلك باسم مكتبة سايكيت ليرن (Scikit-Learn)، وهي مكتبة شهيرة في البايثون تختص بتعلم الآلة. توفر المكتبة مجموعة من الأدوات والخوارزميات لأداء مهام متعددة، مثل: التصنيف، والانحدار، والتجميع، وتقليص الأبعاد. إحدى الأدوات المفيدة في مكتبة سكيليرن هي أداة تسمى CountVectorizer، ويمكن استخدامها في تهيئة عملية المعالجة وتمثيل البيانات النصية بالمتجهات.--- SECTION: أداة CountVectorizer --- أداة CountVectorizerتُستخدم أداة CountVectorizer في تحويل مجموعة من المستندات النصية إلى مصفوفة من رموز متعددة، حيث يمثل كل صف مستنداً وكل عمود يمثل رمزاً خاصاً. قد تكون الرموز كلمات فردية أو عبارات أو بنيات أكثر تعقيداً تقوم بالتقاط الأنماط المتعددة من البيانات النصية الأساسية. تُشير المدخلات في المصفوفة إلى عدد مرات ظهور الرمز في كل مستند. ويُعرف ذلك أيضاً باسم تمثيل حقيبة الكلمات (bag-of-words" (BoW" حيث يتجاهل ترتيب الكلمات في النص مع المحافظة على تكرارها فيه. على الرغم من أن تمثيل حقيبة الكلمات هو تبسيط شديد للغة البشرية، إلا أنه يحقق نتائج تنافسية للغاية عند التطبيق العملي.--- SECTION: البرمجة الاتجاهية (Vectorization) --- البرمجة الاتجاهية (Vectorization): البرمجة الاتجاهية هي عملية تحويل السلاسل النصية المكونة من الكلمات أو العبارات (النص) إلى متجه متجانس من الأرقام الحقيقية يُستخدم لترميز خصائص النص باستخدام تنسيق تفهمه خوارزميات تعلم الآلة.يستخدم المقطع البرمجي التالي أداة CountVectorizer لتمثيل مجموعة بيانات التدريب IMDb بالمتجهات:--- SECTION: Python Code Example for CountVectorizer --- from sklearn.feature_extraction.text import CountVectorizer # the min_df parameter is used to ignore terms that appear in less than 10 reviews. vectorizer_v1 = CountVectorizer(min_df=10) vectorizer_v1.fit(X_train_text) # fit the vectorizer on the training data. # use the fitted vectorizer to vectorize the data. X_train_v1 = vectorizer_v1.transform(X_train_text) X_train_v1 <400000x23392 sparse matrix of type '<class 'numpy.int64'>' with 5301561 stored elements in Compressed Sparse Row format>2025 - 1447--- VISUAL CONTEXT --- **DIAGRAM**: شكل 3.5: تمثيل حقيبة الكلمات (bag-of-words) Description: A diagram illustrating the 'bag-of-words' concept. An input sentence 'I like oranges, do you like oranges?' (in English) and 'أنا أحب البرتقال، هل تحب البرتقال؟' (in Arabic) is transformed into a vector representation. The diagram shows an arrow pointing from the sentence to a list of unique words from the sentence along with their frequency counts. The list is labeled 'حقيبة كلمات نصية متجهة' (Vectorized text bag). X-axis: EMPTY Y-axis: EMPTY Data: The diagram shows the transformation of a sentence into a frequency count of its constituent words, demonstrating the 'bag-of-words' model where word order is ignored, but frequency is retained. Key Values: Input Sentence (English): "I like oranges, do you like oranges?", Input Sentence (Arabic): "أنا أحب البرتقال، هل تحب البرتقال؟", Word Counts:, apples: 0, do: 1, I: 1, like: 2, oranges: 2, you: 1 Context: This visual explains the core concept of 'bag-of-words' representation, which is fundamental to text vectorization using tools like CountVectorizer in Natural Language Processing (NLP). It shows how text is converted into a numerical format suitable for machine learning algorithms.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 5 بطاقة لهذه الصفحة

ما هي عملية البرمجة الاتجاهية (Vectorization) في سياق معالجة البيانات النصية؟

الإجابة: هي عملية تحويل السلاسل النصية المكونة من الكلمات أو العبارات إلى متجه متجانس من الأرقام الحقيقية، يُستخدم لترميز خصائص النص بتنسيق تفهمه خوارزميات تعلم الآلة.

الشرح: خوارزميات تعلم الآلة لا تفهم النص بشكل مباشر، لذا يجب تحويله إلى تمثيل رقمي. البرمجة الاتجاهية هي الخطوة التي تقوم بهذا التحويل.

تلميح: فكر في الهدف الأساسي من معالجة النص ليكون قابلاً للاستخدام في خوارزميات التعلم الآلي.

ما هي وظيفة أداة CountVectorizer في مكتبة Sklearn؟

الإجابة: تُستخدم لتحويل مجموعة من المستندات النصية إلى مصفوفة من رموز متعددة، حيث يمثل كل صف مستنداً وكل عمود يمثل رمزاً (كلمة أو عبارة) وتُشير القيم إلى عدد مرات ظهور الرمز في كل مستند.

الشرح: CountVectorizer تبني مصفوفة تمثل كل مستند كمتجه، وعدد كل كلمة في المستند هو قيمة هذا المتجه.

تلميح: كيف يمكن تحويل النص إلى صيغة يمكن للخوارزميات فهمها باستخدام عدد مرات ظهور الكلمات؟

ما هو المقصود بتمثيل 'حقيبة الكلمات' (Bag-of-Words - BoW)؟

الإجابة: هو تمثيل للنص حيث يتم تجاهل ترتيب الكلمات مع المحافظة على عدد مرات تكرارها في النص. يتم تمثيل المستند كمصفوفة يتم فيها تمثيل كل كلمة فريدة في المجموعة كميزة (feature)، وقيمة هذه الميزة هي عدد مرات ظهور الكلمة في المستند.

الشرح: هذا التمثيل يبسط اللغة البشرية بشكل كبير، ولكنه فعال في العديد من تطبيقات معالجة اللغات الطبيعية لأنه يلتقط المعلومات الدلالية من خلال تكرار الكلمات.

تلميح: إذا كنت تجمع كل الكلمات في النص في 'حقيبة' بغض النظر عن ترتيبها، فما هي المعلومة الأساسية التي تحتفظ بها؟

ما هو تأثير استخدام المعامل `min_df` في أداة CountVectorizer؟

الإجابة: يُستخدم المعامل `min_df` لتجاهل المصطلحات (الكلمات أو العبارات) التي تظهر في عدد أقل من المستندات المحدد بالقيمة. على سبيل المثال، `min_df=10` يعني تجاهل المصطلحات التي تظهر في أقل من 10 مستندات.

الشرح: هذا يساعد على تقليل حجم تمثيل البيانات النصية (عدد الأعمدة في المصفوفة) عن طريق إزالة الكلمات النادرة التي قد لا تحمل معلومات مفيدة أو قد تسبب ضجيجاً للنموذج.

تلميح: إذا كنت ترغب في التركيز على الكلمات الأكثر شيوعاً في مجموعة بياناتك، فما هو الشرط الذي ستطبقه على تكرار الكلمات؟

لماذا تحتاج خوارزميات التعلم الموجه إلى تحويل النصوص إلى تنسيق متجه رقمي؟

الإجابة: لأن خوارزميات تعلم الآلة لا تستطيع التعامل مباشرة مع النصوص بصيغتها الأولية (مثل الملفات النصية أو المستندات)، بل تتطلب تمثيلاً رقمياً (متجهات) لفهم البيانات ومعالجتها.

الشرح: التحويل إلى متجهات رقمية يسمح للخوارزميات بتطبيق العمليات الرياضية اللازمة عليها، مثل حساب المسافات بين المتجهات أو تطبيق الدوال الخطية.

تلميح: فكر في طبيعة العمليات الحسابية والرياضية التي تقوم بها خوارزميات تعلم الآلة. هل يمكنها معالجة الكلمات كرموز مباشرة؟