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

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

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

الدرس: بناء مخطط شبكة الكلمات باستخدام Word2Vec و NetworkX

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

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

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

نوع المحتوى: تمارين وأسئلة

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

📝 ملخص الصفحة

تتناول هذه الصفحة تمرينًا برمجيًا يتطلب إكمال مقطع كود بلغة Python لبناء مخطط شبكة (graph) للكلمات باستخدام مكتبة NetworkX ونموذج Word2Vec. الهدف هو إنشاء دالة `build_graph` تقبل مجموعة من الكلمات (vocab) ونموذج Word2Vec المدرب وعتبة تشابه (similarity_threshold)، ثم تُنشئ مخططًا حيث تمثل كل كلمة عقدة (node)، وتُضاف حافة (edge) بين عقدتين إذا كان تشابه الكلمات في نموذج Word2Vec أكبر من العتبة المحددة، دون أوزان على الحواف.

يتضمن التمرين استيراد الأدوات اللازمة مثل `combinations` من مكتبة itertools لإنشاء أزواج الكلمات، واستخدام `networkx` لمعالجة المخططات. يجب على الطالب ملء الأجزاء الناقصة في الكود، بما في ذلك تحديد عدد العناصر في التركيبات (مثل 2 للأزواج)، وتهيئة كائن Graph جديد، واستدعاء الدالة المناسبة لحساب التشابه بين الكلمات (مثل `similarity` أو `wv.similarity`)، وإضافة شرط التحقق من تجاوز التشابه للعتبة، ثم إضافة الحافة إلى المخطط.

هذا التمرين يعزز فهم تطبيقات معالجة اللغة الطبيعية (NLP) والرسوم البيانية في تحليل النصوص، حيث يُستخدم Word2Vec لتمثيل الكلمات كمتجهات وحساب التشابه الدلالي بينها، بينما تُستخدم NetworkX لتمثيل العلاقات بين الكلمات بشكل مرئي أو تحليلي. يُعد هذا النشاط جزءًا من تعلم البرمجة التطبيقية في مجالات الذكاء الاصطناعي وتحليل البيانات.

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

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

4

نوع: QUESTION

أكمل المقطع البرمجي التالي حتى تقبل الدالة ()build_graph مفردات محددة من الكلمات ونموذج الكلمة إلى المتجه (Word2Vec) المدرب لرسم مخطط ذي عقدة واحدة لكل كلمة في المفردات المحددة. يجب أن يحتوي المخطط على حافة بين عقدتين إذا كان تشابه نموذج الكلمة إلى المتجه (Word2Vec) أكبر من مستوى التشابه المعطى، ويجب ألا تكون هناك أوزان على الحواف.

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

from ________ import combinations # tool used to create combinations import networkx as nx # python library for processing graphs def build_graph(vocab:set, # set of unique words model_wv, # Word2Vec model similarity_threshold:float ): pairs=combinations(vocab, ________) # gets all possible pairs of words in the vocabulary G=nx.________________ # makes a new graph for w1,w2 in pairs: # for every pair of words w1,w2 sim=model_wv.________________ (w1, w2)# gets the similarity between the two words if ________________: G.________________ (w1, w2) return G

نوع: METADATA

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

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

--- SECTION: 4 --- أكمل المقطع البرمجي التالي حتى تقبل الدالة ()build_graph مفردات محددة من الكلمات ونموذج الكلمة إلى المتجه (Word2Vec) المدرب لرسم مخطط ذي عقدة واحدة لكل كلمة في المفردات المحددة. يجب أن يحتوي المخطط على حافة بين عقدتين إذا كان تشابه نموذج الكلمة إلى المتجه (Word2Vec) أكبر من مستوى التشابه المعطى، ويجب ألا تكون هناك أوزان على الحواف.from ________ import combinations # tool used to create combinations import networkx as nx # python library for processing graphs def build_graph(vocab:set, # set of unique words model_wv, # Word2Vec model similarity_threshold:float ): pairs=combinations(vocab, ________) # gets all possible pairs of words in the vocabulary G=nx.________________ # makes a new graph for w1,w2 in pairs: # for every pair of words w1,w2 sim=model_wv.________________ (w1, w2)# gets the similarity between the two words if ________________: G.________________ (w1, w2)return G2023 - 1447

✅ حلول أسئلة الكتاب الرسمية

عدد الأسئلة: 1

سؤال 4: أكمل المقطع البرمجي التالي حتى تقبل الدالة ()build_graph مفردات محددة من الكلمات ونموذج الكلمة إلى المتجه (Word2Vec) المدرب لرسم مخطط ذي عقدة واحدة لكل كلمة في المفردات المحددة. يجب أن يحتوي المخطط على حافة بين عقدتين إذا كان تشابه نموذج الكلمة إلى المتجه (Word2Vec) أكبر من مستوى التشابه المعطى، ويجب ألا تكون هناك أوزان على الحواف.

الإجابة: itertools 2 Graph() similarity sim > similarity_threshold add_edge

خطوات الحل:

  1. **الشرح:** لنفهم هذا السؤال. المطلوب هو كتابة مقطع برمجي (كود) لإكمال دالة اسمها `build_graph`. وظيفة هذه الدالة هي إنشاء رسم بياني (Graph) من كلمات محددة، باستخدام نموذج Word2Vec المدرب مسبقاً. الفكرة هنا هي: 1. نريد رسم بياني حيث تمثل كل كلمة **عقدة** (node). 2. نريد رسم **حافة** (edge) بين عقدتين (كلمتين) فقط إذا كان التشابه بين متجهي هاتين الكلمتين في نموذج Word2Vec **أكبر من** قيمة حدية معطاة (`similarity_threshold`). 3. الحواف في هذا الرسم البياني لا تحتوي على أوزان. لإكمال الكود، نحتاج إلى: - استيراد المكتبة `itertools` لأنها تحتوي على دوال مفيدة للتعامل مع التركيبات، مثل إنشاء جميع الأزواج الممكنة من الكلمات. - إنشاء كائن رسم بياني فارغ، مثل `Graph()`. - حساب **التشابه** (`similarity`) بين متجهي كل زوج من الكلمات. نموذج Word2Vec عادةً يوفر دالة لهذا، مثل `model.wv.similarity(word1, word2)`. - وضع شرط: **إذا كان التشابه المحسوب أكبر من الحد المعطى** (`sim > similarity_threshold`)، نرسم حافة بين العقدتين المقابلتين. - نستخدم دالة مثل `add_edge` لإضافة الحافة إلى كائن الرسم البياني. إذن، الكلمات المطلوبة لإكمال الكود هي التي تصف هذه الخطوات بالترتيب: اسم المكتبة، إنشاء الكائن، اسم المتغير للتشابه، الشرط، ودالة إضافة الحافة.

📝 أسئلة اختبارية

عدد الأسئلة: 7

سؤال 4: sim=model_wv.________________ (w1, w2)# gets the similarity between the two words

  • أ) similarity
  • ب) distance
  • ج) compare
  • د) cosine

الإجابة الصحيحة: similarity

الشرح: يجب استخدام دالة similarity() من نموذج Word2Vec لحساب التشابه بين كلمتين

تلميح: ما هي الدالة في Word2Vec لحساب التشابه بين كلمتين؟

سؤال 4: pairs=combinations(vocab, ________) # gets all possible pairs of words in the vocabulary

  • أ) 2
  • ب) 1
  • ج) 3
  • د) len(vocab)

الإجابة الصحيحة: 2

الشرح: يجب استخدام الرقم 2 لأننا نريد توليد أزواج من الكلمات (كل زوج يتكون من كلمتين)

تلميح: كم عدد العناصر في كل زوج من الكلمات؟

سؤال 4: G=nx.________________ # makes a new graph

  • أ) Graph()
  • ب) new_graph()
  • ج) create_graph()
  • د) DiGraph()

الإجابة الصحيحة: Graph()

الشرح: يجب استدعاء دالة Graph() من مكتبة networkx لإنشاء رسم بياني جديد

تلميح: ما هي الدالة في networkx لإنشاء رسم بياني جديد؟

سؤال 4: from ________ import combinations # tool used to create combinations

  • أ) itertools
  • ب) math
  • ج) random
  • د) collections

الإجابة الصحيحة: itertools

الشرح: يجب استيراد دالة combinations من مكتبة itertools في بايثون لإنشاء توليفات من العناصر

تلميح: ما هي المكتبة التي تحتوي على دالة combinations في بايثون؟

سؤال 4: G.________________ (w1, w2)

  • أ) add_edge
  • ب) add_node
  • ج) connect
  • د) link

الإجابة الصحيحة: add_edge

الشرح: يجب استخدام دالة add_edge() من مكتبة networkx لإضافة حافة بين العقدتين w1 و w2

تلميح: ما هي الدالة في networkx لإضافة حافة بين عقدتين؟

سؤال 4: أكمل المقطع البرمجي التالي حتى تقبل الدالة ()build_graph مفردات محددة من الكلمات ونموذج الكلمة إلى المتجه (Word2Vec) المدرب لرسم مخطط ذي عقدة واحدة لكل كلمة في المفردات المحددة. يجب أن يحتوي المخطط على حافة بين عقدتين إذا كان تشابه نموذج الكلمة إلى المتجه (Word2Vec) أكبر من مستوى التشابه المعطى، ويجب ألا تكون هناك أوزان على الحواف.

الإجابة الصحيحة: انظر الأسئلة الفرعية

الشرح: هذا سؤال رئيسي يحتوي على أسئلة فرعية لملء الفراغات في الكود

تلميح: راجع الأسئلة الفرعية أدناه لملء الفراغات في الكود

سؤال 4: if ________________:

  • أ) sim > similarity_threshold
  • ب) sim < similarity_threshold
  • ج) sim == similarity_threshold
  • د) sim >= 0

الإجابة الصحيحة: sim > similarity_threshold

الشرح: يجب إضافة حافة بين العقدتين فقط إذا كان التشابه أكبر من عتبة التشابه المحددة

تلميح: ما هو الشرط لإضافة حافة بين كلمتين؟

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

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

ما هي المكتبة المستخدمة لإنشاء العلاقات الممكنة بين كلمات المفردات؟

الإجابة: المكتبة المستخدمة هي `combinations` من وحدة `itertools`.

الشرح: النص يذكر صراحة أن 'combinations' هي الأداة المستخدمة لإنشاء جميع الأزواج الممكنة من الكلمات في المفردات.

تلميح: ابحث عن عبارة 'tool used to create combinations' في النص.

ما هي المكتبة المستخدمة لمعالجة الرسوم البيانية (graphs) في هذا المقطع البرمجي؟

الإجابة: المكتبة المستخدمة هي `networkx`.

الشرح: النص يحدد `networkx` كـ 'python library for processing graphs'، وهي المكتبة القياسية في بايثون لمعالجة الرسوم البيانية.

تلميح: ابحث عن عبارة 'python library for processing graphs' في النص.

ما هي الكلمة التي يجب وضعها بعد `G = nx.` لإنشاء رسم بياني جديد؟

الإجابة: الكلمة هي `Graph()`.

الشرح: في مكتبة `networkx`، يتم إنشاء رسم بياني جديد عن طريق استدعاء الدالة `Graph()`.

تلميح: انظر إلى السطر الذي يبدأ بـ 'G = nx.' واسأل نفسك كيف يتم إنشاء كائن رسم بياني جديد في مكتبة networkx.

ما هي الدالة المستخدمة للحصول على درجة التشابه بين كلمتين في نموذج Word2Vec؟

الإجابة: الدالة المستخدمة هي `similarity()`.

الشرح: النص يشير إلى `model_wv.similarity(w1, w2)`، حيث `similarity()` هي الدالة التي تقوم بحساب التشابه بين كلمتين.

تلميح: ابحث عن السطر الذي يحسب التشابه بين كلمتين (`w1`, `w2`) باستخدام `model_wv`.

كيف تتم إضافة حافة بين كلمتين `w1` و `w2` إلى الرسم البياني `G` إذا كان تشابههما أكبر من `similarity_threshold`؟

الإجابة: تتم الإضافة باستخدام `G.add_edge(w1, w2)`.

الشرح: بعد التحقق من أن التشابه أكبر من الحد الأدنى (`similarity_threshold`)، يتم استخدام الدالة `add_edge` لإضافة حافة بين العقدتين `w1` و `w2` في الرسم البياني `G`.

تلميح: انظر إلى الجزء الذي يتحقق فيه الشرط 'if' والذي يليه مباشرةً عملية إضافة شيء إلى الرسم البياني `G`.