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

Open source Python API pro čtečku testů s výběrem odpovědí

Bezplatné Python API pro čtečku testů s výběrem odpovědí, které umožňuje vývojářům softwaru generovat testové listy, skenery a zpracovatelský software prostřednictvím Python API.

Co je Open-MCR knihovna?

Robustní balíček Pythonu nazvaný Open-MCR byl vytvořen, aby usnadnil nasazení Multikanálových konvolučních rekurentních neuronových sítí (MCRNN). Tento open-source projekt, vytvořený talentovaným programátorem Ian Sanem, nabízí akademikům a vývojářům všestranný a efektivní rámec pro úkoly jako rozpoznávání řeči, analýzu videa a různé aplikace časových řad. Použití v vašich projektech může vést k spolehlivějším a přesnějším předpovědím modelu, což nakonec pomůže strojovému učení zlepšovat se v široké škále oblastí. Knihovna Open-MCR byla vytvořena s ohledem na snadné použití. Knihovna je přístupná jak začátečníkům, tak zkušeným odborníkům díky své komplexní dokumentaci a příkladům.

Ve strojovém učení je klasifikace více tříd (MCC) populárním úkolem, jehož cílem je zařadit vstup do jedné ze sady předem definovaných tříd. Přidáním možnosti odmítnutí jde Open-MCR o krok dál a umožňuje modelu vynechat generování predikce v případech, kdy je situace nejasná. To zlepšuje celkový výkon a je zvláště užitečné v situacích, kdy je úroveň důvěry modelu nízká. V podstatě Open-MCR zpracovává a chápe sekvenční vstup využitím výhod jak konvolučních, tak rekurentních neuronových sítí. Model je flexibilním nástrojem pro různé aplikace díky multikanálovým návrhům, které zvyšují jeho schopnost rozpoznávat složité vzory a souvislosti. Uživatelé mohou knihovnu rychle začlenit do svých aplikací díky její jednoduché implementaci. Knihovna je připravena významně posunout oblast zpracování sekvenčních dat a hlubokého učení, jak se bude dále vyvíjet.

Previous Next

Začínáme s Open-MCR

Doporučený způsob instalace knihovny Open-MCR je pomocí pip. Pro hladkou instalaci použijte následující příkaz.

Nainstalujte knihovnu Open-MCR pomocí pip

 pip install open-mcr 

Knihovnu můžete stáhnout přímo z GitHub

Použití odmítacího mechanismu v Python aplikacích

Výjimečnou vlastností Open-MCR je jeho mechanismus odmítnutí, který umožňuje modelům odmítnout provést predikci, když se setkají s nejednoznačnými nebo obtížnými případy. Tato schopnost je v reálných aplikacích zásadní, protože je klíčové vyhnout se nesprávným předpovědím. Zde je příklad, který ukazuje, jak použít mechanismus odmítnutí pomocí jen několika řádků kódu. Pro snadné použití nejprve importujte třídu OpenMCR z knihovny a inicializujte ji s vaším preferovaným modelem strojového učení. Nastavte parametr rejection_threshold pro řízení úrovně důvěry při odmítnutí.

Jak použít mechanismus odmítnutí v aplikacích 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)

Čtení a extrakce dat z obrázků pomocí Python API

Open source knihovna Python Open-MCR poskytuje kompletní podporu pro načítání a čtení dat z obrázků v Python aplikacích. Pro zpracování zkoušek a čtení listů musí uživatelé nejprve naskenovat všechny listy pomocí standardního skeneru. Převěďte je na jednotlivé obrázky a umístěte je do jedné složky, včetně klíčů odpovědí. Kromě čtení naskenovaných obrázků může také automaticky vyhodnotit výsledky zkoušky. Provádí to porovnáním poskytnutých klíčů s výstupem. Po dokončení zpracování programem budou výsledky uloženy jako CSV soubory ve vámi vybrané výstupní složce. Knihovna také poskytuje podporu pro extrakci dat při čtení mírně zkreslených obrázků. V nejnovějším vydání knihovna vylepšila algoritmus pro hledání mřížky a dosahuje lepších výsledků s vaším obrázkem. Vytvoří mřížku na základě čtyř rohových značek a poté čte bubliny z míst v mřížce. Následující příklad ukazuje, jak vypočítat výsledky pomocí Python kódu.

Jak vypočítat výsledky z testových bublinových listů pomocí 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

Zlepšená přesnost a robustnost

Open source knihovna Open-MCR je cenným doplňkem sady nástrojů pro odborníky na strojové učení, kteří chtějí zlepšit výkonnost svých modelů pro více‑třídovou klasifikaci. Mechanismus odmítnutí zvyšuje celkovou přesnost modelů pro více‑třídovou klasifikaci, zejména v situacích, kdy tradiční modely mohou mít potíže. Tento mechanismus také zvyšuje robustnost modelu tím, že zabraňuje vytváření nespolehlivých předpovědí, což zajišťuje spolehlivější výsledky v různorodých reálných scénářích.

 Čeština