1. Des produits
  2.   OMR
  3.   Python
  4.   Open-MCR
 
  

API de lecteur d'examen à choix multiples Python open source

API gratuite de lecteur d'examen à choix multiples Python qui permet aux développeurs de générer des feuilles d'examen, des scanners et des logiciels de traitement via l'API Python.

Qu'est-ce que la bibliothèque Open-MCR ?

Un package Python robuste appelé Open-MCR a été créé pour faciliter le déploiement des réseaux neuronaux récurrents convolutifs multicanaux (MCRNN). Ce projet open source, créé par le programmeur talentueux Ian San, offre aux universitaires et aux développeurs un cadre polyvalent et efficace pour des tâches telles que la reconnaissance vocale, l'analyse vidéo et diverses applications de séries temporelles. L'utiliser dans vos projets peut conduire à des prédictions de modèle plus fiables et précises, ce qui contribuera finalement à améliorer l'apprentissage automatique dans de nombreux domaines. La bibliothèque Open-MCR a été conçue en pensant à la facilité d'utilisation. Elle est accessible tant aux novices qu'aux praticiens expérimentés grâce à sa documentation complète et à ses exemples.

En apprentissage automatique, la classification multi‑classe (MCC) est une tâche populaire où l'objectif est de catégoriser une entrée parmi une série de classes prédéfinies. En ajoutant une option de rejet, Open-MCR va un pas plus loin et permet au modèle de ne pas générer de prédiction dans les cas où ce n'est pas clair. Cela améliore les performances globales et est particulièrement utile dans les situations où le niveau de confiance du modèle est faible. Fondamentalement, Open-MCR traite et comprend les entrées séquentielles en exploitant les avantages des réseaux neuronaux convolutionnels et récurrents. Le modèle est un outil flexible pour une variété d'applications grâce aux conceptions multicanaux, qui améliorent sa capacité à identifier des motifs et des connexions complexes. Les utilisateurs peuvent intégrer rapidement la bibliothèque dans leurs applications grâce à sa mise en œuvre simple. La bibliothèque est positionnée pour faire progresser de manière significative les domaines du traitement des données séquentielles et de l'apprentissage profond à mesure qu'elle se développe.

Previous Next

Premiers pas avec Open-MCR

La façon recommandée d'installer la bibliothèque Open-MCR est d'utiliser pip. Veuillez utiliser la commande suivante pour une installation fluide.

Installer la bibliothèque Open-MCR via pip

 pip install open-mcr 

Vous pouvez télécharger la bibliothèque directement depuis GitHub

Utiliser le mécanisme de rejet dans les applications Python

La fonctionnalité phare d'Open-MCR est son mécanisme de rejet, qui permet aux modèles de refuser de faire une prédiction lorsqu'ils sont confrontés à des cas ambigus ou difficiles. Cette capacité est cruciale dans les applications réelles où éviter des prédictions incorrectes est primordial. Voici un exemple qui montre comment utiliser le mécanisme de rejet avec seulement quelques lignes de code. Pour une utilisation fluide, importez d'abord la classe OpenMCR depuis la bibliothèque et initialisez‑la avec le modèle d'apprentissage automatique de votre choix. Réglez le paramètre rejection_threshold pour contrôler le niveau de confiance du rejet.

Comment utiliser le mécanisme de rejet dans les applications 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)

Lire et extraire des données d'images via l'API Python

La bibliothèque Python open source Open-MCR offre une prise en charge complète du chargement et de la lecture des données à partir d'images dans les applications Python. Pour gérer les examens et lire les feuilles, les utilisateurs doivent d'abord numériser toutes les feuilles à l'aide d'un scanner standard. Convertissez-les en images individuelles et placez-les dans un seul dossier, y compris les clés de réponses. En plus de lire les images numérisées, elle peut également noter automatiquement les résultats des examens. Elle le fait en comparant les clés fournies avec la sortie. Une fois le programme terminé le traitement, les résultats seront enregistrés sous forme de fichiers CSV dans le dossier de sortie sélectionné. La bibliothèque offre également une prise en charge de l'extraction des données lors de la lecture d'images légèrement déformées. Avec la dernière version, la bibliothèque a amélioré l'algorithme de détection de la grille et obtient de meilleurs résultats avec votre image. Elle établit une grille basée sur les quatre marques d'angle, puis lit les bulles aux emplacements de la grille. L'exemple suivant montre comment calculer les résultats via du code Python.

Comment calculer les résultats d'une feuille de réponses d'examen à l'aide de 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

Précision et robustesse améliorées

La bibliothèque open source Open-MCR constitue un ajout précieux à la boîte à outils des praticiens du machine learning cherchant à améliorer les performances de leurs modèles de classification multiclasse. Le mécanisme de rejet augmente la précision globale des modèles de classification multiclasse, en particulier dans les situations où les modèles traditionnels peuvent rencontrer des difficultés. Ce mécanisme renforce également la robustesse du modèle en l'empêchant de faire des prédictions peu fiables, garantissant des résultats plus fiables dans divers scénarios réels.

 Français