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

Åpen kildekode Python Multiple Choice-eksamensleser API

Gratis Python Multiple Choice-eksamensleser API som gjør det mulig for programvareutviklere å generere eksamensark, skannere og behandlingsprogramvare via Python API.

Hva er Open-MCR-biblioteket?

En robust Python-pakke kalt Open-MCR ble laget for å gjøre Multichannel Convolutional Recurrent Neural Networks (MCRNNs) enklere å distribuere. Dette open-source-prosjektet, skapt av den talentfulle programmereren Ian San, tilbyr akademikere og utviklere et allsidig og effektivt rammeverk for oppgaver som talegjenkjenning, videoanalyse og ulike tidsserieapplikasjoner. Å bruke den i prosjektene dine kan gi mer pålitelige og nøyaktige modellprediksjoner, noe som til slutt vil hjelpe maskinlæring å forbedre seg på tvers av mange felt. Open-MCR-biblioteket ble utviklet med brukervennlighet i tankene. Biblioteket er tilgjengelig for både nybegynnere og erfarne praktikere takket være omfattende dokumentasjon og eksempler.

I maskinlæring er Multi-Class Classification (MCC) en populær oppgave hvor målet er å kategorisere en input fra en rekke forhåndsdefinerte klasser. Ved å legge til et avvisningsalternativ går Open-MCR ett steg videre og gjør det mulig for modellen å unngå å generere en prediksjon i tilfeller der det er uklart. Dette forbedrer den samlede ytelsen og er spesielt nyttig i situasjoner hvor modellens tillitsnivå er lavt. Fundamentalt behandler og forstår Open-MCR sekvensiell input ved å utnytte fordelene ved både konvolusjonelle og rekurrente nevrale nettverk. Modellen er et fleksibelt verktøy for en rekke anvendelser takket være multikanaldesign, som forbedrer dens evne til å identifisere komplekse mønstre og sammenhenger. Brukere kan raskt integrere biblioteket i sine applikasjoner på grunn av den enkle implementeringen. Biblioteket er posisjonert til å betydelig fremme feltene sekvensiell databehandling og dyp læring etter hvert som det utvikler seg videre.

Previous Next

Kom i gang med Open-MCR

Den anbefalte måten å installere Open-MCR-biblioteket på er å bruke pip. Vennligst bruk følgende kommando for en smidig installasjon.

Installer Open-MCR-biblioteket via pip

 pip install open-mcr 

Du kan laste ned biblioteket direkte fra GitHub

Bruk avvisningsmekanisme i Python‑apper

Open-MCRs fremtredende funksjon er avvisningsmekanismen, som gjør det mulig for modeller å avvise å gi en prediksjon når de møter tvetydige eller utfordrende tilfeller. Denne evnen er avgjørende i virkelige applikasjoner hvor det er viktig å unngå feilaktige prediksjoner. Her er et eksempel som viser hvordan du bruker avvisningsmekanismen med bare noen få linjer kode. For en smidig bruk, importer først OpenMCR-klassen fra biblioteket og initialiser den med din foretrukne maskinlæringsmodell. Sett parameteren rejection_threshold for å kontrollere konfidensnivået for avvisning.

Hvordan bruke avvisningsmekanisme i Python-apper?

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)

Les & hent ut data fra bilder via Python‑API

Det åpne kildekode‑biblioteket for Python, Open-MCR, har gitt full støtte for innlasting og lesing av data fra bilder i Python‑applikasjoner. For å håndtere eksamener og lese ark, må brukerne først skanne alle arkene med en standard skanner. Konverter dem til individuelle bilder og plasser dem i en enkelt mappe, inkludert svarnøklene. I tillegg til å lese skannede bilder, kan den også automatisk poengsette eksamensresultatene. Den gjør dette ved å sammenligne de oppgitte nøklene med resultatet. Når programmet er ferdig med behandlingen, vil resultatene bli lagret som CSV‑filer i den valgte utdata‑mappen. Biblioteket har også gitt støtte for å hente ut data når man leser litt forvrengte bilder. Med den siste utgivelsen har biblioteket forbedret algoritmen for å finne rutenettet og gir bedre resultater med ditt bilde. Det oppretter et rutenett basert på de fire hjørnemarkeringene og leser deretter bobler fra posisjoner i rutenettet. Følgende eksempel viser hvordan man beregner resultater via Python‑kode.

Hvordan beregne resultater fra eksamensbobleark ved hjelp av 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

Forbedret nøyaktighet og robusthet

Det åpne kildekodebiblioteket Open-MCR er et verdifullt tillegg til verktøykassen for maskinlæringspraktikere som ønsker å forbedre ytelsen til sine flerklasses klassifiseringsmodeller. Avvisningsmekanismen øker den samlede nøyaktigheten til flerklasses klassifiseringsmodeller, spesielt i situasjoner hvor tradisjonelle modeller kan ha problemer. Denne mekanismen øker også modellens robusthet ved å hindre den i å gjøre upålitelige prediksjoner, og sikrer mer pålitelige resultater i ulike virkelige scenarier.

 Norsk