📋 المحتوى المنظم
📖 محتوى تعليمي مفصّل
نوع: محتوى تعليمي
يمكن توسيع قاعدة المعرفة البسيطة لتشمل مستويات أكثر من الأسئلة والأجوبة، وتجعل روبوت الدردشة أكثر ذكاءً.
نوع: محتوى تعليمي
QA={
"Q1":"What type of courses are you interested in?",
"A1":[["Courses in Computer Programming","2"],
["Courses in Engineering","3"],
["Courses in Marketing","4"]],
"Q2":"What type of Programming Languages are you interested in?",
"A2":[["Java",None],["Python",None]],
"Q3":"What type of Engineering are you interested in?",
"A3":[["Mechanical Engineering",None],["Electrical Engineering",None]],
"Q4":"What type of Marketing are you interested in?",
"A4":[["Social Media Marketing",None],["Search Engine
Optimization",None]]
}
دالة ()Chat
نوع: محتوى تعليمي
دالة ()Chat
نوع: محتوى تعليمي
في النهاية، تُستخدم دالة ()Chat لمعالجة قاعدة المعرفة وتنفيذ روبوت الدردشة. بعد طرح السؤال، يقرأ روبوت الدردشة رد المستخدم.
• إن كان الرد مشابهاً دلالياً لأحد خيارات الإجابات المقبولة لهذا السؤال، يُحدّد ذلك الخيار وينتقل روبوت الدردشة إلى السؤال التالي.
• إن لم يتشابه الرد مع أي من الخيارات، يُطلب من المستخدم إعادة صياغة الرد.
تُستخدم دالة تمثيلات ترميز الجمل ثنائية الاتجاه من المحولات (SBERT) لتقييم مؤشر التشابه الدلالي بين الرد وكل الخيارات المرشحة. يُعد الخيار متشابهاً إذا كان المؤشر أعلى من مُتغيّر الحد الأدنى sim_lbound.
نوع: محتوى تعليمي
import numpy as np # used for processing numeric data
def chat(QA:dict, # the Question-Answer script of the chatbot
model_sbert, # a pre-trained SBERT model
sim_lbound:float): # lower bound on the similarity between the user's response and the
closest candidate answer
qa_id = '1' # the QA id
while True: # an infinite loop, will break in specific conditions
print('>>',QA['Q'+qa_id]) # prints the question for this qa_id
candidates=QA["A"+qa_id] # gets the candidate answers for this qa_id
print(flush=True) # used only for formatting purposes
response=input() # reads the user's response
# embed the response
response_embeddings = model_sbert.encode([response], convert_to_
tensor=True)
# embed each candidate answer. x is the text, y is the qa_id. Only embed x.
نوع: METADATA
وزارة التعليم
Ministry of Education
183
2023 - 1447
📄 النص الكامل للصفحة
يمكن توسيع قاعدة المعرفة البسيطة لتشمل مستويات أكثر من الأسئلة والأجوبة، وتجعل روبوت الدردشة أكثر ذكاءً.QA={
"Q1":"What type of courses are you interested in?",
"A1":[["Courses in Computer Programming","2"],
["Courses in Engineering","3"],
["Courses in Marketing","4"]],"Q2":"What type of Programming Languages are you interested in?",
"A2":[["Java",None],["Python",None]],"Q3":"What type of Engineering are you interested in?",
"A3":[["Mechanical Engineering",None],["Electrical Engineering",None]],"Q4":"What type of Marketing are you interested in?",
"A4":[["Social Media Marketing",None],["Search Engine Optimization",None]]
}--- SECTION: دالة ()Chat --- دالة ()Chatفي النهاية، تُستخدم دالة ()Chat لمعالجة قاعدة المعرفة وتنفيذ روبوت الدردشة. بعد طرح السؤال، يقرأ روبوت الدردشة رد المستخدم.
• إن كان الرد مشابهاً دلالياً لأحد خيارات الإجابات المقبولة لهذا السؤال، يُحدّد ذلك الخيار وينتقل روبوت الدردشة إلى السؤال التالي.
• إن لم يتشابه الرد مع أي من الخيارات، يُطلب من المستخدم إعادة صياغة الرد.
تُستخدم دالة تمثيلات ترميز الجمل ثنائية الاتجاه من المحولات (SBERT) لتقييم مؤشر التشابه الدلالي بين الرد وكل الخيارات المرشحة. يُعد الخيار متشابهاً إذا كان المؤشر أعلى من مُتغيّر الحد الأدنى sim_lbound.import numpy as np # used for processing numeric data def chat(QA:dict, # the Question-Answer script of the chatbot model_sbert, # a pre-trained SBERT model sim_lbound:float): # lower bound on the similarity between the user's response and the closest candidate answer qa_id = '1' # the QA id while True: # an infinite loop, will break in specific conditions print('>>',QA['Q'+qa_id]) # prints the question for this qa_id candidates=QA["A"+qa_id] # gets the candidate answers for this qa_id print(flush=True) # used only for formatting purposes response=input() # reads the user's response# embed the response response_embeddings = model_sbert.encode([response], convert_to_
tensor=True)
# embed each candidate answer. x is the text, y is the qa_id. Only embed x.2023 - 1447
🎴 بطاقات تعليمية للمراجعة
عدد البطاقات: 4 بطاقة لهذه الصفحة
ما هو الدور الرئيسي لدالة ()Chat في سياق روبوتات الدردشة المتقدمة؟
الإجابة: تُستخدم دالة ()Chat لمعالجة قاعدة المعرفة وتنفيذ روبوت الدردشة، حيث تقوم بتقييم ردود المستخدم ومقارنتها بالخيارات المتاحة للانتقال إلى السؤال التالي أو طلب إعادة الصياغة.
الشرح: الدالة تعالج تدفق المحادثة وتحدد الخطوة التالية بناءً على فهم رد المستخدم.
تلميح: فكر في الوظيفة الأساسية التي تؤديها الدالة بعد الحصول على رد المستخدم.
ما هي التقنية المستخدمة لتقييم التشابه الدلالي بين رد المستخدم وخيارات الإجابات المقبولة؟
الإجابة: تُستخدم دالة تمثيلات ترميز الجمل ثنائية الاتجاه من المحولات (SBERT) لتقييم مؤشر التشابه الدلالي.
الشرح: SBERT هي تقنية متقدمة في معالجة اللغات الطبيعية لفهم سياق ومعنى الجمل.
تلميح: ابحث عن اختصار شائع يستخدم لنمذجة وفهم معنى الجمل.
متى يعتبر رد المستخدم "متشابهاً" لأحد خيارات الإجابات المقبولة في سياق روبوت الدردشة؟
الإجابة: يُعد الخيار متشابهاً إذا كان مؤشر التشابه الدلالي بين رد المستخدم والخيار أعلى من مُتغيّر الحد الأدنى sim_lbound.
الشرح: وجود حد أدنى للتشابه يضمن أن الرد له معنى قريب من الخيارات المتاحة.
تلميح: ما هو الشرط أو المعيار الذي يحدد قبول الرد؟
ما هي وظيفة استدعاء `print(flush=True)` في الكود؟
الإجابة: تُستخدم هذه الاستدعاء فقط لأغراض التنسيق.
الشرح: بعض الأوامر في البرمجة تُستخدم لتحسين العرض المرئي أو تجربة المستخدم دون تغيير نتائج الحسابات.
تلميح: فكر في دور الأوامر التي لا تؤثر بشكل مباشر على المنطق الأساسي للبرنامج.