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

Open-Source-Python-Multiple-Choice-Prüfungsleser-API

Kostenlose Python-Multiple-Choice-Prüfungsleser-API, die Softwareentwicklern ermöglicht, Prüfungsbögen, Scanner und Verarbeitungssoftware über die Python-API zu erstellen.

Was ist die Open-MCR Bibliothek?

Ein robustes Python-Paket namens Open-MCR wurde entwickelt, um Multichannel Convolutional Recurrent Neural Networks (MCRNNs) einfacher bereitstellen zu können. Dieses Open-Source-Projekt, erstellt vom talentierten Programmierer Ian San, bietet Wissenschaftlern und Entwicklern ein vielseitiges und effektives Framework für Aufgaben wie Spracherkennung, Videoanalyse und verschiedene Zeitreihen‑Anwendungen. Die Verwendung in Ihren Projekten kann zu zuverlässigeren und genaueren Modellvorhersagen führen, was letztlich das maschinelle Lernen in vielen Bereichen verbessert. Die Open-MCR‑Bibliothek wurde mit Blick auf Benutzerfreundlichkeit entwickelt. Die Bibliothek ist dank ihrer umfassenden Dokumentation und Beispiele sowohl für Anfänger als auch für erfahrene Praktiker zugänglich.

Im maschinellen Lernen ist die Mehrklassenklassifikation (MCC) eine beliebte Aufgabe, bei der das Ziel darin besteht, eine Eingabe aus einer Reihe vordefinierter Klassen zu kategorisieren. Durch Hinzufügen einer Ablehnungsoption geht Open-MCR einen Schritt weiter und ermöglicht es dem Modell, keine Vorhersage zu erzeugen, wenn die Situation unklar ist. Dies verbessert die Gesamtleistung und ist besonders hilfreich in Situationen, in denen das Vertrauen des Modells gering ist. Grundsätzlich verarbeitet und versteht Open-MCR sequenzielle Eingaben, indem es die Vorteile sowohl von Convolutional- als auch von Recurrent-Neuronalen Netzen nutzt. Das Modell ist dank multikanaliger Designs, die seine Fähigkeit zur Erkennung komplexer Muster und Zusammenhänge verbessern, ein flexibles Werkzeug für eine Vielzahl von Anwendungen. Benutzer können die Bibliothek dank ihrer einfachen Implementierung schnell in ihre Anwendungen integrieren. Die Bibliothek ist darauf ausgerichtet, die Bereiche der sequenziellen Datenverarbeitung und des Deep Learning erheblich voranzubringen, während sie weiterentwickelt wird.

Previous Next

Erste Schritte mit Open-MCR

Die empfohlene Methode, die Open-MCR-Bibliothek zu installieren, ist die Verwendung von pip. Bitte verwenden Sie den folgenden Befehl für eine reibungslose Installation.

Installieren Sie die Open-MCR Bibliothek über pip

 pip install open-mcr 

Sie können die Bibliothek direkt von GitHub herunterladen.

Verwenden Sie den Ablehnungsmechanismus in Python-Anwendungen

Das herausragende Merkmal von Open-MCR ist sein Ablehnungsmechanismus, der Modelle befähigt, eine Vorhersage abzulehnen, wenn sie mit mehrdeutigen oder schwierigen Fällen konfrontiert werden. Diese Fähigkeit ist in realen Anwendungen entscheidend, bei denen das Vermeiden falscher Vorhersagen von größter Bedeutung ist. Hier ist ein Beispiel, das zeigt, wie man den Ablehnungsmechanismus mit nur wenigen Codezeilen verwendet. Für eine reibungslose Nutzung importieren Sie zunächst die OpenMCR-Klasse aus der Bibliothek und initialisieren sie mit Ihrem bevorzugten Machine-Learning-Modell. Setzen Sie den Parameter rejection_threshold, um das Vertrauensniveau für die Ablehnung zu steuern.

Wie verwendet man den Ablehnungsmechanismus in Python-Apps?

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)

Lesen & Extrahieren von Daten aus Bildern über die Python-API

Die Open-Source-Python-Bibliothek Open-MCR bietet vollständige Unterstützung für das Laden und Lesen von Daten aus Bildern in Python-Anwendungen. Für die Handhabung von Prüfungen und das Auslesen von Bögen müssen die Benutzer zunächst alle Bögen mit einem Standard-Scanner scannen. Sie in einzelne Bilder konvertieren und in einem einzigen Ordner ablegen, einschließlich der Antwortschlüssel. Zusätzlich zum Lesen gescannter Bilder kann sie auch automatisch die Prüfungsergebnisse bewerten. Sie tut dies, indem sie die bereitgestellten Schlüssel mit der Ausgabe vergleicht. Nachdem das Programm die Verarbeitung abgeschlossen hat, werden die Ergebnisse als CSV-Dateien im ausgewählten Ausgabeverzeichnis gespeichert. Die Bibliothek bietet zudem Unterstützung für die Datenerfassung beim Lesen leicht verzerrter Bilder. Mit der neuesten Version hat die Bibliothek den Gitterfindungsalgorithmus verbessert und erzielt bessere Ergebnisse mit Ihrem Bild. Sie erstellt ein Gitter basierend auf den vier Eckmarkierungen und liest dann die Kreise an den Positionen im Gitter aus. Das folgende Beispiel zeigt, wie man Ergebnisse mit Python-Code berechnet.

Wie berechnet man die Ergebnisse von Prüfungs-Mehrfachauswahlblättern mit der 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

Verbesserte Genauigkeit und Robustheit

Die Open-Source-Bibliothek Open-MCR ist eine wertvolle Ergänzung für das Toolkit von Machine-Learning‑Praktikern, die die Leistung ihrer Multi‑Klassen‑Klassifikationsmodelle verbessern möchten. Der Ablehnungsmechanismus erhöht die Gesamtexaktheit von Multi‑Klassen‑Klassifikationsmodellen, insbesondere in Situationen, in denen herkömmliche Modelle Schwierigkeiten haben. Dieser Mechanismus steigert zudem die Robustheit des Modells, indem er verhindert, dass unzuverlässige Vorhersagen getroffen werden, und sorgt so für verlässlichere Ergebnisse in vielfältigen realen Szenarien.

 Deutsch