Открытый Python API считывателя экзаменов с множественным выбором
Бесплатный Python API считывателя экзаменов с множественным выбором, позволяющий разработчикам программного обеспечения создавать экзаменационные листы, сканеры и программное обеспечение для обработки через Python API.
Что такое библиотека Open-MCR?
Был создан надёжный пакет 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 является ценным дополнением к набору инструментов специалистов по машинному обучению, стремящихся улучшить производительность своих моделей многоклассовой классификации. Механизм отклонения повышает общую точность моделей многоклассовой классификации, особенно в ситуациях, когда традиционные модели могут испытывать трудности. Этот механизм также повышает устойчивость модели, предотвращая её от ненадёжных предсказаний, обеспечивая более надёжные результаты в разнообразных реальных сценариях.