واجهة برمجة تطبيقات قارئ امتحانات الاختيار المتعدد مفتوح المصدر بلغة بايثون
واجهة برمجة تطبيقات مجانية لقراءة امتحانات الاختيار المتعدد بلغة بايثون تمكّن مطوري البرمجيات من إنشاء أوراق الامتحان، وأجهزة المسح، وبرمجيات المعالجة عبر واجهة برمجة التطبيقات بايثون.
ما هو مكتبة Open-MCR؟
تم إنشاء حزمة بايثون قوية تُدعى Open-MCR لتسهيل نشر الشبكات العصبية المتكررة التلافيفية متعددة القنوات (MCRNNs). هذا المشروع المفتوح المصدر، الذي أنشأه المبرمج الموهوب إيان سان، يقدم للباحثين والمطورين إطار عمل متعدد الاستخدامات وفعّال لمهام مثل التعرف على الكلام، تحليل الفيديو، وتطبيقات السلاسل الزمنية المختلفة. استخدامه في مشاريعك يمكن أن يؤدي إلى تنبؤات نموذج أكثر موثوقية ودقة، مما سيساعد في تحسين التعلم الآلي عبر مجموعة واسعة من المجالات. تم إنشاء مكتبة Open-MCR مع مراعاة سهولة الاستخدام. المكتبة متاحة لكل من المبتدئين والمحترفين بفضل وثائقها الشاملة وأمثلتها.
في تعلم الآلة، تصنيف متعدد الفئات (MCC) هو مهمة شائعة حيث الهدف هو تصنيف مدخل من سلسلة من الفئات المحددة مسبقًا. بإضافة خيار الرفض، يذهب Open-MCR خطوةً أخرى إلى الأمام ويتيح للنموذج التخلي عن توليد توقع في الحالات التي يكون فيها غير واضح. هذا يحسن الأداء العام ويكون مفيدًا بشكل خاص في الحالات التي يكون فيها مستوى ثقة النموذج منخفضًا. أساسًا، يعالج Open-MCR ويفهم المدخل المتسلسل باستخدام مزايا كل من الشبكات العصبية التلافيفية والمتكررة. النموذج أداة مرنة لمجموعة متنوعة من التطبيقات بفضل التصميمات متعددة القنوات، التي تعزز قدرته على التعرف على الأنماط والروابط المعقدة. يمكن للمستخدمين دمج المكتبة في تطبيقاتهم بسرعة بفضل سهولة تنفيذها. تُعد المكتبة في موقع يمكنها من دفع تقدم مجالات معالجة البيانات المتسلسلة والتعلم العميق بشكل كبير مع تطورها المستقبلي.
البدء مع Open-MCR
الطريقة الموصى بها لتثبيت مكتبة Open-MCR هي استخدام pip. يرجى استخدام الأمر التالي لتثبيت سلس.
استخدام آلية الرفض في تطبيقات بايثون
الميزة البارزة في Open-MCR هي آلية الرفض، التي تمكّن النماذج من رفض إجراء توقع عندما تواجه حالات غامضة أو صعبة. هذه القدرة حاسمة في التطبيقات الواقعية حيث يُعد تجنّب التوقعات الخاطئة أمرًا أساسيًا. إليك مثال يوضح كيفية استخدام آلية الرفض ببضع أسطر من الشيفرة فقط. لاستخدام سلس، ابدأ باستيراد فئة OpenMCR من المكتبة وتهيئتها بنموذج التعلم الآلي المفضل لديك. اضبط معامل rejection_threshold للتحكم في مستوى الثقة للرفض.
كيف تستخدم آلية الرفض داخل تطبيقات بايثون؟
from openmcr import OpenMCR
from sklearn.ensemble import RandomForestClassifier
# Initialize Open-MCR with a RandomForestClassifier
model = RandomForestClassifier()
mcr_model = OpenMCR(model, rejection_threshold=0.3)
# Train the model
mcr_model.fit(X_train, y_train)
# Make predictions with rejection
predictions = mcr_model.predict(X_test)
قراءة واستخراج البيانات من الصور عبر واجهة برمجة تطبيقات بايثون
توفر مكتبة بايثون المفتوحة المصدر Open-MCR دعمًا كاملاً لتحميل وقراءة البيانات من الصور داخل تطبيقات بايثون. للتعامل مع الامتحانات وقراءة الأوراق، يجب أولاً على المستخدمين مسح جميع الأوراق باستخدام ماسح ضوئي قياسي. تحويلها إلى صور فردية ووضعها في مجلد واحد، بما في ذلك مفاتيح الإجابة. بالإضافة إلى قراءة الصور الممسوحة، يمكنها أيضًا تقييم نتائج الامتحان تلقائيًا. تقوم بذلك بمقارنة المفاتيح المقدمة مع النتيجة. بعد انتهاء البرنامج من المعالجة، سيتم حفظ النتائج كملفات CSV في مجلد الإخراج الذي اخترته. كما وفرت المكتبة دعمًا لاستخراج البيانات عند قراءة الصور المشوهة قليلاً. مع الإصدار الأخير، حسّنت المكتبة خوارزمية العثور على الشبكة وتحصل على نتائج أفضل مع صورتك. تُنشئ شبكة بناءً على العلامات الأربعة في الزوايا ثم تقرأ الفقاعات من المواقع داخل الشبكة. يوضح المثال التالي كيفية حساب النتائج عبر كود بايثون.
كيف تحسب نتائج ورقة اختبار الفقاعات باستخدام واجهة برمجة تطبيقات بايثون؟
import csv
import pathlib
import typing as tp
import data_exporting
import grid_info
import list_utils
import math_utils
def score_results(results: data_exporting.OutputSheet,
answer_keys: data_exporting.OutputSheet,
num_questions: int) -> data_exporting.OutputSheet:
answers = results.data
keys = establish_key_dict(answer_keys)
form_code_column_name = data_exporting.COLUMN_NAMES[
grid_info.Field.TEST_FORM_CODE]
form_code_index = list_utils.find_index(answers[0], form_code_column_name)
answers_start_index = list_utils.find_index(
answers[0][form_code_index + 1:], "Q1") + form_code_index + 1
virtual_fields: tp.List[grid_info.RealOrVirtualField] = [
grid_info.VirtualField.SCORE, grid_info.VirtualField.POINTS
]
columns = results.field_columns + virtual_fields
scored_results = data_exporting.OutputSheet(columns, num_questions)
for exam in answers[1:]: # Skip header row
fields = {
k: v
for k, v in zip(results.field_columns, exam[:answers_start_index])
}
form_code = exam[form_code_index]
try:
if "*" in keys:
key = keys["*"]
else:
key = keys[form_code]
except KeyError:
fields[grid_info.VirtualField.
SCORE] = data_exporting.KEY_NOT_FOUND_MESSAGE
fields[grid_info.VirtualField.
POINTS] = data_exporting.KEY_NOT_FOUND_MESSAGE
scored_answers = []
else:
scored_answers = [
int(actual == correct)
for actual, correct in zip(exam[answers_start_index:], key)
]
fields[grid_info.VirtualField.SCORE] = str(
round(math_utils.mean(scored_answers) * 100, 2))
fields[grid_info.VirtualField.POINTS] = str(sum(scored_answers))
string_scored_answers = [str(s) for s in scored_answers]
scored_results.add(fields, string_scored_answers)
return scored_results
دقة محسنة ومتانة أعلى
مكتبة Open-MCR المفتوحة المصدر هي إضافة قيمة إلى مجموعة أدوات ممارسي تعلم الآلة الذين يسعون لتعزيز أداء نماذج التصنيف متعددة الفئات. آلية الرفض تزيد من الدقة العامة لنماذج التصنيف متعددة الفئات، خاصة في الحالات التي قد تواجه فيها النماذج التقليدية صعوبة. كما أن هذه الآلية تعزز صلابة النموذج من خلال منعها من تقديم تنبؤات غير موثوقة، مما يضمن نتائج أكثر اعتمادية في سيناريوهات واقعية متنوعة.