Отворен източник Python API за четец на множествено изборен изпит
Безплатен Python API за четец на множествено изборен изпит, който позволява на софтуерните разработчици да генерират изпитни листове, скенери и софтуер за обработка чрез Python API.
Какво е Open-MCR Librar?
Създаден е стабилен Python пакет, наречен Open-MCR, за да направи внедряването на многоканални конволюционни рекурентни невронни мрежи (MCRNN) по-лесно. Този проект с отворен код, създаден от талантливия програмист Иън Сан, предлага на академиците и разработчиците гъвкава и ефективна рамка за задачи като разпознаване на реч, видеоанализ и различни приложения за времеви редове. Използването му във вашите проекти може да доведе до по-надеждни и точни предсказания на модела, което в крайна сметка ще подпомогне подобряването на машинното обучение в различни области. Библиотеката Open-MCR е създадена с мисъл за лесна употреба. Библиотеката е достъпна както за начинаещи, така и за опитни специалисти благодарение на обширната документация и примерите.
В машинното обучение, многокласовата класификация (MCC) е популярна задача, при която целта е да се категоризира вход от серия предварително определени класове. Чрез добавяне на опция за отхвърляне, Open-MCR прави още една стъпка напред и позволява на модела да се въздържи от генериране на предсказание в случаи, когато е неясно. Това подобрява общата производителност и е особено полезно в ситуации, когато нивото на увереност на модела е ниско. По същество, Open-MCR обработва и разбира последователен вход, като използва предимствата както на конволюционните, така и на рекурентните невронни мрежи. Моделът е гъвкав инструмент за разнообразни приложения благодарение на многоканалните дизайни, които подобряват способността му да открива сложни модели и връзки. Потребителите могат бързо да интегрират библиотеката в своите приложения благодарение на простата й имплементация. Библиотеката е позиционирана да подпомогне значително развитието на областите за обработка на последователни данни и дълбоко обучение, докато се развива.
Започване с Open-MCR
Препоръчителният начин за инсталиране на библиотеката Open-MCR е чрез pip. Моля, използвайте следната команда за гладка инсталация.
Инсталирайте Open-MCR библиотеката чрез pip
pip install open-mcr Можете да изтеглите библиотеката директно от GitHub
Използване на механизма за отхвърляне в Python приложения
Изключителната характеристика на Open-MCR е механизмът за отхвърляне, който позволява на моделите да откажат правенето на предсказание, когато се сблъскат с двусмислени или предизвикателни случаи. Тази възможност е от съществено значение в реални приложения, където избягването на грешни предсказания е от първостепенно значение. Ето пример, който показва как да използвате механизма за отхвърляне с няколко реда код. За гладко използване, първо импортирайте класа OpenMCR от библиотеката и го инициализирайте с предпочитания от вас модел за машинно обучение. Задайте параметъра rejection_threshold, за да контролирате нивото на увереност за отхвърляне.
Как да използваме механизма за отхвърляне в 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)
Четене и извличане на данни от изображения чрез Python API
Отворената библиотека за Python Open-MCR предоставя пълна поддръжка за зареждане и четене на данни от изображения в Python приложения. За работа с изпити и четене на листове, първо потребителите трябва да сканират всички листове с обикновен скенер. Преобразувайте ги в отделни изображения и ги поставете в една папка, включително и ключовете за отговори. Освен четенето на сканирани изображения, библиотеката може също автоматично да оценява резултатите от изпита. Тя прави това, като сравнява предоставените ключове с изхода. След като програмата завърши обработката, резултатите ще бъдат запазени като CSV файлове във вашата избрана изходна папка. Библиотеката също предоставя поддръжка за извличане на данни при четене на леко изкривени изображения. С последното издание библиотеката подобри алгоритъма за откриване на мрежа и постига по‑добри резултати с вашето изображение. Тя създава мрежа, базирана на четирите ъглови марки, след което чете балончетата от позиции в мрежата. Следният пример показва как да изчислите резултатите чрез Python код.
Как да изчислим резултатите от изпитен лист с балони, използвайки 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
Подобрена точност и надеждност
Отвореният код на библиотеката Open-MCR е ценно допълнение към инструментария на практикуващите машинно обучение, които търсят да подобрят представянето на своите модели за многокласова класификация. Механизмът за отхвърляне увеличава общата точност на многокласовите модели за класификация, особено в ситуации, където традиционните модели могат да имат затруднения. Този механизъм също така повишава устойчивостта на модела, като предотвратява правенето на ненадеждни предсказания, осигурявайки по‑надеждни резултати в разнообразни реални сценарии.