📋 المحتوى المنظم
📖 محتوى تعليمي مفصّل
5
نوع: QUESTION
أكمل المقطع البرمجي التالي حتى تستخدم الدالة get_max_sim() نموذج تمثيلات ترميز الجمل ثنائية الاتجاه من المحولات (SBERT) للمقارنة بين جملة محددة my_sentence وكل الجمل الواردة في قائمة أخرى من الجمل L1. يجب أن تعيد الدالة الجملة ذات مؤشر التشابه الأعلى من L1 إلى my_sentence.
نوع: METADATA
وزارة التعليم
Ministry of Education
191
2023 - 1447
🔍 عناصر مرئية
مقطع برمجي لإيجاد تشابه الجمل
A Python code snippet designed to find the sentence with the highest similarity from a list (L1) to a given sentence (my_sentence) using SBERT embeddings. The code has several blanks (represented by underscores) that need to be filled to complete the function.
📄 النص الكامل للصفحة
--- SECTION: 5 ---
أكمل المقطع البرمجي التالي حتى تستخدم الدالة get_max_sim() نموذج تمثيلات ترميز الجمل ثنائية الاتجاه من المحولات (SBERT) للمقارنة بين جملة محددة my_sentence وكل الجمل الواردة في قائمة أخرى من الجمل L1. يجب أن تعيد الدالة الجملة ذات مؤشر التشابه الأعلى من L1 إلى my_sentence.
وزارة التعليم
Ministry of Education
191
2023 - 1447
--- VISUAL CONTEXT ---
**CODE_BLOCK**: مقطع برمجي لإيجاد تشابه الجمل
Description: A Python code snippet designed to find the sentence with the highest similarity from a list (L1) to a given sentence (my_sentence) using SBERT embeddings. The code has several blanks (represented by underscores) that need to be filled to complete the function.
X-axis: N/A
Y-axis: N/A
Data: The code defines a Python function `get_max_sim` that takes two arguments: `L1` (a list of sentences) and `my_sentence` (a single sentence). It imports necessary modules from `sentence_transformers`. A `model_sbert` is initialized with 'all-MiniLM-L6-v2'. The function calculates embeddings for `my_sentence` and `L1` using `model_sbert.encode`. It then computes `similarity_scores` using `util.cos_sim` between `my_embedding` and `L_embeddings`. Finally, it finds the `winner_index` using `np.argmax` and is expected to return the sentence from `L1` at that index.
Key Values: from sentence_transformers import _____, util, from _____ import combinations # tool used to create combinations, model_sbert = _____('all-MiniLM-L6-v2'), , def get_max_sim(L1,my_sentence):, # embeds my_sentence, my_embedding = model_sbert._____( ([my_sentence], convert_to_tensor=True), # embeds the sentences from L2, L_embeddings = model_sbert._____(L, convert_to_tensor=True), similarity_scores = _____.cos_sim(_____, _____), winner_index=np.argmax(similarity_scores[0]), return _____
Context: This code snippet is an exercise in a programming context, likely related to Natural Language Processing (NLP) and machine learning, specifically using Sentence-BERT (SBERT) for semantic similarity tasks. The user is expected to fill in the blanks to complete the function, demonstrating understanding of SBERT usage for sentence embedding and similarity calculation.
📝 أسئلة اختبارية
عدد الأسئلة: 7
سؤال 5: أكمل المقطع البرمجي التالي حتى تستخدم الدالة get_max_sim() نموذج تمثيلات ترميز الجمل ثنائية الاتجاه من المحولات (SBERT) للمقارنة بين جملة محددة my_sentence وكل الجمل الواردة في قائمة أخرى من الجمل L1. يجب أن تعيد الدالة الجملة ذات مؤشر التشابه الأعلى من L1 إلى my_sentence.
الإجابة الصحيحة: انظر الأسئلة الفرعية
الشرح: هذا سؤال رئيسي يحتوي على أسئلة فرعية تتعلق بإكمال المقطع البرمجي
تلميح: راجع الأسئلة الفرعية أدناه لإكمال الأجزاء الناقصة في الكود
سؤال 5: from sentence_transformers import _____, util
- أ) SentenceTransformer
- ب) SBERTModel
- ج) TransformerEncoder
- د) BERTModel
الإجابة الصحيحة: SentenceTransformer
الشرح: يجب استيراد SentenceTransformer من مكتبة sentence_transformers لإنشاء نموذج SBERT
تلميح: ما هو اسم الفئة الرئيسية في مكتبة sentence_transformers لإنشاء النماذج؟
سؤال 5: model_sbert = _____('all-MiniLM-L6-v2')
- أ) SentenceTransformer
- ب) SBERT
- ج) Transformer
- د) Model
الإجابة الصحيحة: SentenceTransformer
الشرح: يتم إنشاء نموذج SBERT باستخدام فئة SentenceTransformer مع اسم النموذج 'all-MiniLM-L6-v2'
تلميح: ما هو اسم الفئة التي تم استيرادها في السطر السابق؟
سؤال 5: my_embedding = model_sbert._____(([my_sentence], convert_to_tensor=True)
- أ) encode
- ب) embed
- ج) transform
- د) convert
الإجابة الصحيحة: encode
الشرح: يتم استخدام دالة encode() لتحويل الجملة إلى تمثيل متجهي (embedding) باستخدام نموذج SBERT
تلميح: ما هي الدالة المستخدمة في SBERT لتحويل النص إلى تمثيل متجهي؟
سؤال 5: L_embeddings = model_sbert._____(L, convert_to_tensor=True)
- أ) encode
- ب) embed
- ج) transform
- د) process
الإجابة الصحيحة: encode
الشرح: نفس الدالة encode() تستخدم لتحويل قائمة الجمل L إلى تمثيلات متجهية
تلميح: هي نفس الدالة المستخدمة في السؤال السابق لتحويل الجمل إلى تمثيلات
سؤال 5: similarity_scores = _____.cos_sim(_____, _____)
- أ) util.cos_sim(my_embedding, L_embeddings)
- ب) np.cos_sim(my_embedding, L_embeddings)
- ج) torch.cos_sim(my_embedding, L_embeddings)
- د) sbert.cos_sim(my_embedding, L_embeddings)
الإجابة الصحيحة: similarity_scores = util.cos_sim(my_embedding, L_embeddings)
الشرح: يتم حساب تشابه جيب التمام باستخدام util.cos_sim() بين تمثيل الجملة my_sentence وتمثيلات قائمة الجمل L
تلميح: ما هي المكتبة التي تحتوي على دالة cos_sim() لحساب التشابه؟ وما هي المتغيرات التي تمثل التمثيلات؟
سؤال 5: return _____
- أ) L1[winner_index]
- ب) L[winner_index]
- ج) my_sentence
- د) winner_index
الإجابة الصحيحة: return L1[winner_index]
الشرح: يجب إرجاع الجملة من القائمة L1 التي تحتوي على أعلى تشابه، باستخدام الفهرس winner_index
تلميح: ما هو اسم القائمة الأصلية للجمل؟ وكيف نصل إلى عنصر باستخدام الفهرس؟
🎴 بطاقات تعليمية للمراجعة
عدد البطاقات: 5 بطاقة لهذه الصفحة
ما هي المكتبة الرئيسية المستخدمة في مقطع البرمجي لترميز الجمل والمقارنة بينها باستخدام نماذج SBERT؟
الإجابة: المكتبة الرئيسية المستخدمة هي `sentence_transformers`.
الشرح: يتم استيراد `SentenceTransformer` من مكتبة `sentence_transformers`، وهي المكتبة الأساسية لتطبيق نماذج SBERT.
تلميح: ابحث عن اسم المكتبة التي تحتوي على `SentenceTransformer` في استيرادها.
ما هي الدالة المستخدمة من مكتبة `combinations` لإنشاء تركيبات محتملة؟
الإجابة: الدالة المستخدمة هي `combinations`.
الشرح: المقطع البرمجي يستورد دالة `combinations` من مكتبة `combinations`، على الرغم من أن استخدامها غير ظاهر مباشرة في الجزء المعروض من الكود، إلا أن الاستيراد يشير إلى إمكانية استخدامها لاحقاً أو في سياقات أخرى لإنشاء تراكيب من العناصر.
تلميح: اسم الدالة المستوردة من `combinations` يتطابق مع اسم المكتبة نفسها.
ما هو اسم النموذج المستخدم من `all-MiniLM-L6-v2` في المقطع البرمجي؟
الإجابة: اسم النموذج هو `all-MiniLM-L6-v2`.
الشرح: يتم تحميل النموذج `all-MiniLM-L6-v2` عند إنشاء كائن `model_sbert` باستخدام `SentenceTransformer('all-MiniLM-L6-v2')`، وهو نموذج مصمم لترميز الجمل بكفاءة.
تلميح: النموذج هو السلسلة النصية التي تمرر كمعامل عند إنشاء كائن `SentenceTransformer`.
ما هي طريقة الترميز (embedding) التي تستخدمها الدالة `model_sbert.___________`؟
الإجابة: تستخدم الدالة `encode` لترميز الجمل.
الشرح: الدالة `encode` في مكتبة `sentence_transformers` هي المسؤولة عن تحويل النصوص إلى تمثيلات متجهية (embeddings).
تلميح: لتحويل نص إلى تمثيل رقمي (embedding) باستخدام نماذج اللغة، غالباً ما تُستخدم دالة تحمل اسم 'encode'.
ما هي الدالة المستخدمة لحساب التشابه cos_sim بين متجهين في مكتبة `util`؟
الإجابة: الدالة المستخدمة هي `util.cos_sim`.
الشرح: تُستخدم الدالة `util.cos_sim` لحساب التشابه في جيب التمام بين مجموعتين من المتجهات، وهي طريقة شائعة لقياس مدى تشابه جملتين أو أكثر بناءً على تمثيلاتهما المتجهية.
تلميح: ابحث عن الدالة التي تحسب جيب التمام بين المتجهات في مكتبة `util`.