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

API Lettore di Esami a Scelta Multipla Python Open Source

API gratuita di lettore di esami a scelta multipla in Python che consente agli sviluppatori software di generare fogli d'esame, scanner e software di elaborazione tramite API Python.

Cos'è la libreria Open-MCR?

È stato creato un robusto pacchetto Python chiamato Open-MCR per rendere più semplice il deployment delle Reti Neurali Convoluzionali Ricorrenti Multicanale (MCRNN). Questo progetto open-source, creato dal talentuoso programmatore Ian San, offre a studiosi e sviluppatori un framework versatile ed efficace per compiti come il riconoscimento vocale, l'analisi video e diverse applicazioni di serie temporali. Utilizzarlo nei tuoi progetti può portare a previsioni di modello più affidabili e accurate, contribuendo in ultima analisi a migliorare l'apprendimento automatico in una vasta gamma di settori. La libreria Open-MCR è stata sviluppata pensando alla facilità d'uso. La libreria è accessibile sia ai principianti sia ai professionisti esperti grazie alla sua documentazione completa e agli esempi.

Nell'apprendimento automatico, la classificazione multiclasse (MCC) è un compito popolare in cui l'obiettivo è categorizzare un input da una serie di classi predeterminate. Aggiungendo un'opzione di rifiuto, Open-MCR va un passo oltre e consente al modello di non generare una previsione nei casi in cui non è chiaro. Questo migliora le prestazioni complessive ed è particolarmente utile nelle situazioni in cui il livello di fiducia del modello è basso. Fondamentalmente, Open-MCR elabora e comprende input sequenziali sfruttando i vantaggi sia delle reti neurali convoluzionali sia di quelle ricorrenti. Il modello è uno strumento flessibile per una varietà di applicazioni grazie ai design multicanale, che migliorano la sua capacità di identificare schemi e connessioni complesse. Gli utenti possono incorporare rapidamente la libreria nelle loro applicazioni grazie alla sua semplice implementazione. La libreria è posizionata per avanzare significativamente i campi dell'elaborazione di dati sequenziali e del deep learning man mano che si sviluppa ulteriormente.

Previous Next

Iniziare con Open-MCR

Il modo consigliato per installare la libreria Open-MCR è usare pip. Si prega di utilizzare il seguente comando per un'installazione fluida.

Installa la libreria Open-MCR via pip

 pip install open-mcr 

Puoi scaricare la libreria direttamente da GitHub

Utilizzare il meccanismo di rifiuto nelle app Python

La caratteristica distintiva di Open-MCR è il suo meccanismo di rifiuto, che consente ai modelli di declinare una previsione quando si trovano di fronte a istanze ambigue o difficili. Questa capacità è fondamentale nelle applicazioni reali, dove evitare previsioni errate è fondamentale. Ecco un esempio che mostra come utilizzare il meccanismo di rifiuto con sole poche righe di codice. Per un utilizzo fluido, importa prima la classe OpenMCR dalla libreria e inizializzala con il tuo modello di machine learning preferito. Imposta il parametro rejection_threshold per controllare il livello di fiducia necessario al rifiuto.

Come utilizzare il meccanismo di rifiuto nelle app Python?

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)

Leggi & estrai dati dalle immagini tramite API Python

La libreria Python open source Open-MCR ha fornito supporto completo per il caricamento e la lettura dei dati dalle immagini all'interno delle applicazioni Python. Per gestire esami e fogli di risposta, gli utenti devono prima scansionare tutti i fogli usando uno scanner standard. Convertiteli in immagini individuali e posizionateli in una singola cartella, includendo le chiavi di risposta. Oltre a leggere le immagini scansionate, può anche valutare automaticamente i risultati dell'esame. Lo fa confrontando le chiavi fornite con l'output. Dopo che il programma ha terminato l'elaborazione, i risultati verranno salvati come file CSV nella cartella di output selezionata. La libreria fornisce anche supporto per l'estrazione dei dati quando si leggono immagini leggermente distorte. Con l'ultima versione la libreria ha migliorato l'algoritmo di individuazione della griglia e ottiene risultati migliori con la tua immagine. Stabilisce una griglia basata sui quattro segni d'angolo e poi legge le bolle dalle posizioni nella griglia. L'esempio seguente mostra come calcolare i risultati tramite codice Python.

Come calcolare i risultati del foglio a bolle dell'esame usando l'API Python?

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

Precisione e robustezza migliorate

La libreria open source Open-MCR è una preziosa aggiunta al toolkit dei professionisti del machine learning che cercano di migliorare le prestazioni dei loro modelli di classificazione multiclasse. Il meccanismo di rifiuto aumenta la precisione complessiva dei modelli di classificazione multiclasse, soprattutto in situazioni in cui i modelli tradizionali potrebbero avere difficoltà. Questo meccanismo aumenta anche la robustezza del modello impedendogli di fare previsioni inaffidabili, garantendo risultati più affidabili in diversi scenari reali.

 Italiano