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

API de Lector de Exámenes de Opción Múltiple de Python de Código Abierto

API gratuita de lector de exámenes de opción múltiple en Python que permite a los desarrolladores de software generar hojas de examen, escáneres y software de procesamiento mediante la API de Python.

¿Qué es Open-MCR Librar?

Se creó un paquete robusto de Python llamado Open-MCR para facilitar el despliegue de Redes Neuronales Recurrentes Convolucionales Multicanal (MCRNNs). Este proyecto de código abierto, creado por el talentoso programador Ian San, ofrece a académicos y desarrolladores un marco versátil y eficaz para tareas como reconocimiento de voz, análisis de video y diversas aplicaciones de series temporales. Usarlo en tus proyectos puede resultar en predicciones de modelo más fiables y precisas, lo que en última instancia ayudará a que el aprendizaje automático mejore en una variedad de campos. La biblioteca Open-MCR fue diseñada pensando en la facilidad de uso. La biblioteca es accesible tanto para principiantes como para profesionales experimentados gracias a su documentación y ejemplos exhaustivos.

En el aprendizaje automático, la clasificación multiclase (MCC) es una tarea popular donde el objetivo es categorizar una entrada a partir de una serie de clases predeterminadas. Al añadir una opción de rechazo, Open-MCR da un paso más y permite que el modelo omita generar una predicción en casos en los que no está claro. Esto mejora el rendimiento general y es especialmente útil en situaciones donde el nivel de confianza del modelo es bajo. Fundamentalmente, Open-MCR procesa y comprende entradas secuenciales utilizando las ventajas tanto de redes neuronales convolucionales como recurrentes. El modelo es una herramienta flexible para una variedad de aplicaciones gracias a los diseños multicanal, que mejoran su capacidad para identificar patrones y conexiones complejas. Los usuarios pueden incorporar la biblioteca en sus aplicaciones rápidamente debido a su sencilla implementación. La biblioteca está posicionada para avanzar significativamente los campos del procesamiento de datos secuenciales y el aprendizaje profundo a medida que se desarrolla.

Previous Next

Primeros pasos con Open-MCR

La forma recomendada de instalar la biblioteca Open-MCR es usando pip. Por favor, use el siguiente comando para una instalación sin problemas.

Instalar la biblioteca Open-MCR vía pip

 pip install open-mcr 

Puede descargar la biblioteca directamente desde GitHub

Usar el mecanismo de rechazo en aplicaciones Python

La característica más destacada de Open-MCR es su mecanismo de rechazo, que permite a los modelos declinar hacer una predicción cuando se enfrentan a instancias ambiguas o desafiantes. Esta capacidad es crucial en aplicaciones del mundo real donde evitar predicciones incorrectas es fundamental. Aquí hay un ejemplo que muestra cómo usar el mecanismo de rechazo con solo un par de líneas de código. Para un uso fluido, primero importe la clase OpenMCR de la biblioteca e inicialícela con su modelo de aprendizaje automático preferido. Establezca el parámetro rejection_threshold para controlar el nivel de confianza para el rechazo.

¿Cómo usar el mecanismo de rechazo dentro de aplicaciones 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)

Leer y extraer datos de imágenes mediante la API de Python

La biblioteca de Python de código abierto Open-MCR ha proporcionado soporte completo para cargar y leer datos de imágenes dentro de aplicaciones Python. Para manejar exámenes y hojas de respuestas, primero los usuarios deben escanear todas las hojas usando un escáner estándar. Conviértalas en imágenes individuales y colócalas en una sola carpeta, incluidas las claves de respuestas. Además de leer imágenes escaneadas, también puede calificar automáticamente los resultados del examen. Lo hace comparando las claves proporcionadas con la salida. Después de que el programa termine de procesar, los resultados se guardarán como archivos CSV en la carpeta de salida seleccionada. La biblioteca también ofreció soporte para extraer datos al leer imágenes ligeramente distorsionadas. Con la última versión, la biblioteca mejoró el algoritmo de detección de cuadrícula y obtiene mejores resultados con tu imagen. Establece una cuadrícula basada en las cuatro marcas de esquina y luego lee las burbujas de las ubicaciones en la cuadrícula. El siguiente ejemplo muestra cómo calcular los resultados mediante código Python.

¿Cómo calcular los resultados de la hoja de respuestas de examen usando la API de 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

Mayor precisión y robustez

La biblioteca de código abierto Open-MCR es una valiosa adición al conjunto de herramientas de los profesionales de aprendizaje automático que buscan mejorar el rendimiento de sus modelos de clasificación multiclase. El mecanismo de rechazo aumenta la precisión general de los modelos de clasificación multiclase, especialmente en situaciones donde los modelos tradicionales pueden tener dificultades. Este mecanismo también incrementa la robustez del modelo al evitar que realice predicciones poco fiables, garantizando resultados más confiables en diversos escenarios del mundo real.

 Español