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

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

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

الدرس: تحسين البرمجة الاتجاهية للنصوص

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

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

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

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

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

📝 ملخص الصفحة

يشرح هذا الدرس كيفية تحسين برمجة النصوص الاتجاهية لمعالجة اللغات الطبيعية، مع التركيز على تحسين أدوات مثل CountVectorizer التي تتجاهل سياق الكلمات وأهميتها النسبية في المستندات. يتم تقديم تقنيات مثل التعبيرات النمطية (Regular Expressions) لتحديد أنماط النصوص، واستخدام مكتبات مثل nltk وgensim لمعالجة اللغات الطبيعية. يتضمن الدرس شرحًا لعملية التقسيم (Tokenization) ودالة `sent_tokenize` لتقسيم المستندات إلى جمل وكلمات، مما يساعد في تحليل النصوص بشكل أكثر دقة وفعالية. كما يتم توضيح كيفية استخدام هذه الأدوات في برمجة بايثون لتحسين تمثيل النصوص في نماذج التعلم الآلي.

📋 المحتوى المنظم

📖 محتوى تعليمي مفصّل

تحسين البرمجة الاتجاهية للنصوص

نوع: محتوى تعليمي

تحسين البرمجة الاتجاهية للنصوص Improving Text Vectorization

نوع: محتوى تعليمي

استخدم الإصدار الأول لخط أنابيب التنبؤ أداة CountVectorizer لحساب عدد المرات التي تظهر فيها كل كلمة في كل تقييم. تتجاهل هذه المنهجية حقيقتين أساسيتين حول اللغات البشرية:

نوع: محتوى تعليمي

• قد يتغير معنى الكلمة وأهميتها حسب الكلمات المستخدمة معها.

نوع: محتوى تعليمي

• تكرار الكلمة في المستند لا يُعد دومًا تمثيلاً دقيقًا لأهميتها. على سبيل المثال، على الرغم من أن تكرار كلمة great (رائع) مرتين قد يمثل مؤشرًا إيجابيًا في مستند يحتوي على 100 كلمة، إلا أنه يمثل مؤشرًا أقل أهمية بكثير في مستند يحتوي على 1000 كلمة.

نوع: محتوى تعليمي

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

التعبير النمطي (Regular Expression)

نوع: تعريف

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

نوع: محتوى تعليمي

• nltk وجينسيم (Gensim): تُستخدم هاتان المكتبتان الشهيرتان في مهام معالجة اللغات الطبيعية المتنوعة.

نوع: محتوى تعليمي

• re: تُستخدم هذه المكتبة في البحث عن النصوص، ومعالجتها باستخدام التعبيرات النمطية.

نوع: محتوى تعليمي

%capture !pip install nltk # install nltk !pip install gensim # install gensim import nltk # import nltk nltk.download('punkt') # install nltk's tokenization tool, used to split a text into sentences. import re # import re from gensim.models.phrases import Phrases, ENGLISH_CONNECTOR_WORDS # import tools from the gensim library.

تحديد العبارات

نوع: محتوى تعليمي

تحديد العبارات Detecting Phrases

نوع: محتوى تعليمي

يمكن استخدام الدالة الآتية لتقسيم مستند محدد إلى قائمة من الجمل المقسمة، حيث يمكن تمثيل كل جملة بقائمة من الكلمات:

التقسيم (Tokenization)

نوع: تعريف

يُقصد به: عملية تقسيم البيانات النصية إلى أجزاء مثل كلمات، وجمل، ورموز، وعناصر أخرى يُطلق عليها الرموز (Tokens).

دالة ()sent_tokenize

نوع: محتوى تعليمي

تقسم المستند إلى قائمة من الجمل.

نوع: محتوى تعليمي

# convert a given doc to a list of tokenized sentences. def tokenize_doc(doc:str): return [re.findall(r'\b\w+\b', sent.lower()) for sent in nltk.sent_tokenize(doc)]

نوع: محتوى تعليمي

بعد ذلك، يتم كتابة كل جملة بأحرف صغيرة وتغذيتها إلى دالة ()findall من مكتبة re لتقوم بتحديد تكرارات التعبيرات النمطية 'b\w+\b'. ستختبرها على السلسلة النصية الموجودة في متغير raw_text. في هذا السياق:

نوع: METADATA

وزارة التعليم Ministry of Education 2023 - 1447

نوع: METADATA

146

🔍 عناصر مرئية

دالة ()sent_tokenize

A blue rectangular box labeled 'دالة ()sent_tokenize' with the text 'تقسم المستند إلى قائمة من الجمل.' An arrow points from the preceding main text 'يمكن استخدام الدالة الآتية لتقسيم مستند محدد إلى قائمة من الجمل المقسمة، حيث يمكن تمثيل كل جملة بقائمة من الكلمات:' to this blue box, indicating that the box provides a definition or explanation for the function mentioned in the text.

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

--- SECTION: تحسين البرمجة الاتجاهية للنصوص --- تحسين البرمجة الاتجاهية للنصوص Improving Text Vectorizationاستخدم الإصدار الأول لخط أنابيب التنبؤ أداة CountVectorizer لحساب عدد المرات التي تظهر فيها كل كلمة في كل تقييم. تتجاهل هذه المنهجية حقيقتين أساسيتين حول اللغات البشرية:• قد يتغير معنى الكلمة وأهميتها حسب الكلمات المستخدمة معها.• تكرار الكلمة في المستند لا يُعد دومًا تمثيلاً دقيقًا لأهميتها. على سبيل المثال، على الرغم من أن تكرار كلمة great (رائع) مرتين قد يمثل مؤشرًا إيجابيًا في مستند يحتوي على 100 كلمة، إلا أنه يمثل مؤشرًا أقل أهمية بكثير في مستند يحتوي على 1000 كلمة.سيشرح هذا الجزء كيفية تحسين البرمجة الاتجاهية للنصوص لأخذ هاتين الحقيقتين في عين الاعتبار. يستدعي المقطع البرمجي التالي ثلاثة مكتبات مختلفة بلغة البايثون. ستستخدم لتحقيق ذلك:--- SECTION: التعبير النمطي (Regular Expression) --- التعبير النمطي هو نمط نص يُستخدم لمطابقة ومعالجة سلاسل النصوص وتقديم طريقة موجزة ومرنة لتحديد أنماط النصوص، كما تُستخدم على نطاق واسع في معالجة النصوص وتحليل البيانات.• nltk وجينسيم (Gensim): تُستخدم هاتان المكتبتان الشهيرتان في مهام معالجة اللغات الطبيعية المتنوعة.• re: تُستخدم هذه المكتبة في البحث عن النصوص، ومعالجتها باستخدام التعبيرات النمطية.%capture!pip install nltk # install nltk !pip install gensim # install gensim import nltk # import nltk nltk.download('punkt') # install nltk's tokenization tool, used to split a text into sentences.import re # import re from gensim.models.phrases import Phrases, ENGLISH_CONNECTOR_WORDS # import tools from the gensim library.--- SECTION: تحديد العبارات --- تحديد العبارات Detecting Phrasesيمكن استخدام الدالة الآتية لتقسيم مستند محدد إلى قائمة من الجمل المقسمة، حيث يمكن تمثيل كل جملة بقائمة من الكلمات:--- SECTION: التقسيم (Tokenization) --- يُقصد به: عملية تقسيم البيانات النصية إلى أجزاء مثل كلمات، وجمل، ورموز، وعناصر أخرى يُطلق عليها الرموز (Tokens).--- SECTION: دالة ()sent_tokenize --- تقسم المستند إلى قائمة من الجمل.# convert a given doc to a list of tokenized sentences. def tokenize_doc(doc:str): return [re.findall(r'\b\w+\b', sent.lower()) for sent in nltk.sent_tokenize(doc)]بعد ذلك، يتم كتابة كل جملة بأحرف صغيرة وتغذيتها إلى دالة ()findall من مكتبة re لتقوم بتحديد تكرارات التعبيرات النمطية 'b\w+\b'. ستختبرها على السلسلة النصية الموجودة في متغير raw_text. في هذا السياق:2023 - 1447--- VISUAL CONTEXT --- **DIAGRAM**: دالة ()sent_tokenize Description: A blue rectangular box labeled 'دالة ()sent_tokenize' with the text 'تقسم المستند إلى قائمة من الجمل.' An arrow points from the preceding main text 'يمكن استخدام الدالة الآتية لتقسيم مستند محدد إلى قائمة من الجمل المقسمة، حيث يمكن تمثيل كل جملة بقائمة من الكلمات:' to this blue box, indicating that the box provides a definition or explanation for the function mentioned in the text. Context: This diagram visually highlights and defines the `sent_tokenize()` function, explaining its role in breaking down a document into a list of sentences as part of the text processing workflow.

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

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

ما هي المشكلة الرئيسية في استخدام أداة CountVectorizer في حساب تكرار الكلمات في معالجة النصوص؟

الإجابة: تتجاهل CountVectorizer حقيقتين أساسيتين: أن معنى الكلمة وأهميتها قد يتغيران حسب الكلمات المحيطة بها، وأن تكرار الكلمة لا يمثل دائمًا أهميتها الحقيقية، خاصة عند اختلاف طول المستندات.

الشرح: تتجاهل CountVectorizer السياق الذي تظهر فيه الكلمة، وقدرتها على تحديد الأهمية النسبية للكلمة بناءً على حجم المستند. بالتالي، قد لا تعكس عدد مرات ظهور الكلمة أهميتها الفعلية أو معناها الدقيق.

تلميح: فكر في كيف يمكن لنفس الكلمة أن تعني أشياء مختلفة في سياقات مختلفة، وكيف يؤثر حجم النص على معنى تكرار الكلمة.

ما هو التعبير النمطي (Regular Expression)؟

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

الشرح: التعبيرات النمطية هي أدوات قوية للبحث والاستبدال ومعالجة النصوص بناءً على أنماط محددة، مما يجعلها مفيدة جداً في مهام مثل استخلاص المعلومات أو تنظيف البيانات النصية.

تلميح: فكر في وظيفته كـ 'قاعدة بحث' عن أنماط محددة داخل النصوص.

اذكر اثنتين من المكتبات المشهورة المستخدمة في معالجة اللغات الطبيعية والتي تم استدعاؤها في المقطع البرمجي؟

الإجابة: nltk وجينسيم (Gensim).

الشرح: تُعد مكتبتي nltk و Gensim من الأدوات الأساسية والمشهورة في مجال معالجة اللغات الطبيعية، وتقدمان مجموعة واسعة من الوظائف لتحليل النصوص وفهمها.

تلميح: ابحث عن أسماء المكتبات التي تم استدعاؤها باستخدام عبارة 'import'.

ما الغرض من استخدام `nltk.download('punkt')`؟

الإجابة: يُستخدم لتثبيت أداة التقطيع (tokenization) الخاصة بمكتبة nltk، والتي تُستخدم لتقسيم النص إلى جمل.

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

تلميح: ما هي العملية التي تقوم بها هذه الأداة عند استدعائها؟

ما هي عملية التقسيم (Tokenization) في سياق معالجة النصوص؟

الإجابة: هي عملية تقسيم البيانات النصية إلى أجزاء أصغر مثل الكلمات، والجمل، والرموز، وعناصر أخرى تُعرف بالرموز (Tokens).

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

تلميح: فكر في كيف يمكن تحويل النص الكبير إلى وحدات صغيرة قابلة للتحليل.