1. Produkti
  2.   OMR
  3.   Python
  4.   Open-MCR
 
  

Atvērtā koda Python daudzizvēļu eksāmenu lasītāja API

Bezmaksas Python daudzizvēļu eksāmenu lasītāja API, kas ļauj programmatūras izstrādātājiem ģenerēt eksāmenu lapas, skenerus un apstrādes programmatūru, izmantojot Python API.

Kas ir Open-MCR bibliotēka?

Spēcīga Python pakotne ar nosaukumu Open-MCR tika izveidota, lai atvieglotu Multikanālu konvolūcijas rekursīvo neironu tīklu (MCRNN) izvietošanu. Šis atvērtā koda projekts, ko izveidoja talantīgais programmētājs Ian San, piedāvā akadēmiķiem un izstrādātājiem daudzpusīgu un efektīvu struktūru uzdevumiem, piemēram, runas atpazīšanai, video analīzei un dažādām laika sēriju lietojumprogrammām. Tā izmantošana jūsu projektos var novest pie uzticamākiem un precīzākiem modeļa prognozēm, kas galu galā palīdzēs uzlabot mašīnmācīšanos dažādās jomās. Open-MCR bibliotēka tika izveidota, domājot par lietošanas vienkāršību. Bibliotēka ir pieejama gan iesācējiem, gan pieredzējušiem praktiķiem, pateicoties tās visaptverošajai dokumentācijai un piemēriem.

Mašīnmācībā daudzklases klasifikācija (MCC) ir populārs uzdevums, kurā mērķis ir kategorizēt ievadi no iepriekš noteiktām klasēm. Pievienojot noraidījuma iespēju, Open-MCR iet soli tālāk un ļauj modelim neizdot prognozi gadījumos, kad tas nav skaidrs. Tas uzlabo kopējo veiktspēju un ir īpaši noderīgs situācijās, kur modelim ir zems pārliecības līmenis. Fundamentāli Open-MCR apstrādā un izprot secīgu ievadi, izmantojot gan konvolūcijas, gan rekursīvās neironu tīklu priekšrocības. Modelis ir elastīgs rīks dažādām lietojumprogrammām, pateicoties daudzkanālu dizainam, kas uzlabo tā spēju atpazīt sarežģītas struktūras un saistības. Lietotāji var ātri integrēt bibliotēku savās lietojumprogrammās, pateicoties tās vienkāršajai implementācijai. Bibliotēka ir novietota, lai būtiski virzītu uz priekšu secīgu datu apstrādes un dziļās mācīšanās jomas, turpinot attīstību.

Previous Next

Kā sākt darbu ar Open-MCR

Ieteicamais veids, kā instalēt Open-MCR bibliotēku, ir izmantot pip. Lūdzu, izmantojiet šādu komandu, lai veiktu gludu instalāciju.

Instalējiet Open-MCR bibliotēku, izmantojot pip

 pip install open-mcr 

Jūs varat lejupielādēt bibliotēku tieši no GitHub

Izmantojiet noraidīšanas mehānismu Python lietojumprogrammās

Open-MCR izcils īpašums ir noraidīšanas mehānisms, kas ļauj modeļiem atteikties no prognozes izdarīšanas, saskaroties ar neskaidriem vai sarežģītiem gadījumiem. Šī spēja ir būtiska reālās pasaules lietojumos, kur izvairīšanās no nepareizām prognozēm ir izšķiroša. Šeit ir piemērs, kas parāda, kā izmantot noraidīšanas mehānismu, izmantojot tikai pāris koda rindas. Lai nodrošinātu vienkāršu lietošanu, vispirms importējiet OpenMCR klasi no bibliotēkas un inicializējiet to ar jūsu izvēlēto mašīnmācīšanās modeli. Iestatiet parametru rejection_threshold, lai kontrolētu pārliecības līmeni noraidīšanai.

Kā izmantot noraidījuma mehānismu Python lietotnēs?

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)

Lasiet un izvelciet datus no attēliem, izmantojot Python API

Atvērtā koda Python bibliotēka Open-MCR nodrošina pilnīgu atbalstu datu ielādēšanai un nolasīšanai no attēliem Python lietojumprogrammās. Lai apstrādātu eksāmenus un lasītu lapas, lietotājiem vispirms jāskanē visas lapas, izmantojot standarta skeneri. Pārvērtiet tās par atsevišķiem attēliem un ievietojiet vienā mapē, ieskaitot atbilžu atslēgas. Papildus skenēto attēlu nolasīšanai, tas var arī automātiski novērtēt eksāmenu rezultātus. Tas to dara, salīdzinot sniegtās atslēgas ar iznākumu. Pēc tam, kad programma pabeidz apstrādi, rezultāti tiks saglabāti kā CSV faili jūsu izvēlētajā izvades mapē. Bibliotēka arī nodrošina atbalstu datu izguvei, lasot nedaudz deformētus attēlus. Ar jaunāko izlaidumu bibliotēka uzlaboja režģa atrašanas algoritmu un iegūst labākus rezultātus ar jūsu attēlu. Tā izveido režģi, balstoties uz četriem stūru marķējumiem, un pēc tam lasa burbuļus no vietām režģī. Zemāk esošais piemērs parāda, kā aprēķināt rezultātus, izmantojot Python kodu.

Kā aprēķināt eksāmenu atzīmju lapas rezultātus, izmantojot Python 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

Uzlabošana precizitātē un robustumā

Atvērtā koda Open-MCR bibliotēka ir vērtīgs papildinājums mašīnmācības praktiķu rīkkopai, kuri cenšas uzlabot saviem daudzklases klasifikācijas modeļu veiktspēju. Noraidīšanas mehānisms palielina kopējo daudzklases klasifikācijas modeļu precizitāti, īpaši situācijās, kur tradicionālie modeļi var saskarties ar grūtībām. Šis mehānisms arī uzlabo modeļa robustumu, novēršot neuzticamu prognožu izdarīšanu, nodrošinot ticamākus rezultātus dažādās reālās pasaules situācijās.

 Latviski