1. পণ্য
  2.   OMR
  3.   Python
  4.   Open-MCR
 
  

ওপেন সোর্স পাইথন মাল্টিপল চয়েস এক্সাম রিডার এপিআই

ফ্রি পাইথন মাল্টিপল চয়েস এক্সাম রিডার এপিআই যা সফটওয়্যার ডেভেলপারদেরকে পাইথন এপিআই মাধ্যমে এক্সাম শিট, স্ক্যানার এবং প্রসেসিং সফটওয়্যার তৈরি করতে সক্ষম করে।

Open-MCR লাইব্রেরি কী?

Open-MCR নামে একটি শক্তিশালী পাইথন প্যাকেজ তৈরি করা হয়েছে যাতে মাল্টিচ্যানেল কনভলিউশনাল রিকরেন্ট নিউরাল নেটওয়ার্ক (MCRNNs) সহজে ডিপ্লয় করা যায়। এই ওপেন-সোর্স প্রকল্পটি প্রতিভাবান প্রোগ্রামার ইয়ান স্যান দ্বারা তৈরি, যা একাডেমিক ও ডেভেলপারদের জন্য বক্তৃতা স্বীকৃতি, ভিডিও বিশ্লেষণ এবং বিভিন্ন টাইম-সিরিজ অ্যাপ্লিকেশনের মতো কাজের জন্য বহুমুখী ও কার্যকর ফ্রেমওয়ার্ক প্রদান করে। আপনার প্রকল্পে এটি ব্যবহার করলে আরও নির্ভরযোগ্য এবং সঠিক মডেল পূর্বাভাস পাওয়া যাবে, যা শেষ পর্যন্ত বিভিন্ন ক্ষেত্রের মেশিন লার্নিং উন্নত করতে সহায়তা করবে। Open-MCR লাইব্রেরি ব্যবহার সহজতা মাথায় রেখে তৈরি করা হয়েছে। এর বিস্তৃত ডকুমেন্টেশন এবং উদাহরণগুলির কারণে এই লাইব্রেরি নবীন ও অভিজ্ঞ উভয় ব্যবহারকারীর জন্যই সহজলভ্য।

মেশিন লার্নিংয়ে, মাল্টি-ক্লাস ক্লাসিফিকেশন (MCC) একটি জনপ্রিয় কাজ যেখানে লক্ষ্য হল পূর্বনির্ধারিত শ্রেণীর একটি সিরিজ থেকে ইনপুটকে শ্রেণীবদ্ধ করা। প্রত্যাখ্যান বিকল্প যোগ করে, Open-MCR এক ধাপ এগিয়ে যায় এবং মডেলকে অস্বচ্ছ পরিস্থিতিতে পূর্বাভাস তৈরি না করার সুযোগ দেয়। এটি সামগ্রিক পারফরম্যান্স উন্নত করে এবং বিশেষত মডেলের আত্মবিশ্বাসের স্তর কম থাকলে সহায়ক হয়। মৌলিকভাবে, Open-MCR কনভলিউশনাল এবং রিকারেন্ট নিউরাল নেটওয়ার্ক উভয়ের সুবিধা ব্যবহার করে ক্রমবর্ধমান ইনপুট প্রক্রিয়া ও বুঝতে পারে। মাল্টিচ্যানেল ডিজাইনের কারণে মডেলটি বিভিন্ন প্রয়োগের জন্য একটি নমনীয় টুল, যা জটিল প্যাটার্ন ও সংযোগ সনাক্ত করার ক্ষমতা বাড়ায়। ব্যবহারকারীরা এর সহজ বাস্তবায়নের ফলে লাইব্রেরিটিকে দ্রুত তাদের অ্যাপ্লিকেশনে সংযুক্ত করতে পারেন। লাইব্রেরিটি ক্রমাগত ডেটা প্রক্রিয়াকরণ এবং ডিপ লার্নিং ক্ষেত্রকে উল্লেখযোগ্যভাবে অগ্রসর করার জন্য অবস্থান করছে যেমন এটি আরও বিকশিত হয়।

Previous Next

Open-MCR দিয়ে শুরু করা

Open-MCR লাইব্রেরি ইনস্টল করার সুপারিশকৃত পদ্ধতি হল pip ব্যবহার করা। মসৃণ ইনস্টলেশনের জন্য দয়া করে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

pip এর মাধ্যমে Open-MCR লাইব্রেরি ইনস্টল করুন

 pip install open-mcr 

আপনি সরাসরি লাইব্রেরি ডাউনলোড করতে পারেন GitHub

Python অ্যাপসে রিজেকশন মেকানিজম ব্যবহার করুন

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)

Python API এর মাধ্যমে ইমেজ থেকে ডেটা পড়া ও বের করা

ওপেন-সোর্স পাইথন লাইব্রেরি Open-MCR পাইথন অ্যাপ্লিকেশনের মধ্যে ইমেজ থেকে ডেটা লোড এবং রিড করার জন্য সম্পূর্ণ সমর্থন প্রদান করেছে। পরীক্ষার শিট হ্যান্ডলিং এবং রিড করার জন্য, প্রথমে ব্যবহারকারীদের একটি স্ট্যান্ডার্ড স্ক্যানার ব্যবহার করে সব শিট স্ক্যান করতে হবে। সেগুলোকে পৃথক ইমেজে রূপান্তর করে একটি ফোল্ডারে রাখুন, যার মধ্যে উত্তর কীওয়াও থাকবে। স্ক্যান করা ইমেজ রিড করার পাশাপাশি, এটি স্বয়ংক্রিয়ভাবে পরীক্ষার ফলাফল স্কোর করতে পারে। এটি প্রদত্ত কীওয়াগুলোকে আউটপুটের সঙ্গে তুলনা করে করে। প্রোগ্রাম প্রক্রিয়াকরণ শেষ করার পরে, ফলাফলগুলি আপনার নির্বাচিত আউটপুট ফোল্ডারে CSV ফাইল হিসেবে সংরক্ষণ হবে। লাইব্রেরি সামান্য বিকৃত ইমেজ রিড করার সময় ডেটা এক্সট্র্যাক্ট করার সমর্থনও প্রদান করেছে। সর্বশেষ রিলিজে লাইব্রেরি গ্রিড ফাইন্ডিং অ্যালগরিদম উন্নত করেছে এবং আপনার ইমেজে আরও ভাল ফলাফল দেয়। এটি চারটি কোণার চিহ্নের উপর ভিত্তি করে একটি গ্রিড স্থাপন করে এবং তারপর গ্রিডের অবস্থান থেকে বুদবুদগুলো পড়ে। নিম্নলিখিত উদাহরণটি দেখায় কীভাবে পাইথন কোডের মাধ্যমে ফলাফল গণনা করা যায়।

পাইথন API ব্যবহার করে এক্সাম বাবল শিটের ফলাফল কীভাবে গণনা করবেন?

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 লাইব্রেরি হল মেশিন লার্নিং অনুশীলনকারীদের টুলকিটের একটি মূল্যবান সংযোজন, যারা তাদের মাল্টি-ক্লাস ক্লাসিফিকেশন মডেলের পারফরম্যান্স বাড়াতে চান। রিজেকশন মেকানিজম মাল্টি-ক্লাস ক্লাসিফিকেশন মডেলের সামগ্রিক সঠিকতা বৃদ্ধি করে, বিশেষ করে এমন পরিস্থিতিতে যেখানে প্রচলিত মডেলগুলি সংগ্রাম করতে পারে। এই মেকানিজম মডেলের দৃঢ়তা বাড়ায় অনির্ভরযোগ্য পূর্বাভাস থেকে রোধ করে, বিভিন্ন বাস্তব-জগতের দৃশ্যে আরও নির্ভরযোগ্য ফলাফল নিশ্চিত করে।

 বাংলা