1. Товары
  2.   OMR
  3.   Python
  4.   Open-MCR
 
  

Открытый Python API считывателя экзаменов с множественным выбором

Бесплатный Python API считывателя экзаменов с множественным выбором, позволяющий разработчикам программного обеспечения создавать экзаменационные листы, сканеры и программное обеспечение для обработки через Python API.

Что такое библиотека Open-MCR?

Был создан надёжный пакет Python под названием Open-MCR, чтобы упростить развертывание многоканальных сверточных рекуррентных нейронных сетей (MCRNN). Этот проект с открытым исходным кодом, созданный талантливым программистом Ианом Саном, предлагает академикам и разработчикам универсальный и эффективный фреймворк для задач, таких как распознавание речи, анализ видео и различные приложения временных рядов. Использование его в ваших проектах может привести к более надёжным и точным предсказаниям модели, что в конечном итоге поможет улучшить машинное обучение в широком спектре областей. Библиотека Open-MCR была разработана с учётом простоты использования. Библиотека доступна как новичкам, так и опытным специалистам благодаря обширной документации и примерам.

В машинном обучении многоклассовая классификация (MCC) — популярная задача, цель которой — отнести входные данные к одному из заранее определённых классов. Добавив возможность отклонения, Open-MCR идёт на шаг дальше и позволяет модели воздерживаться от предсказания в случаях, когда это неясно. Это повышает общую производительность и особенно полезно в ситуациях, когда уровень уверенности модели низок. По сути, Open-MCR обрабатывает и понимает последовательный ввод, используя преимущества как сверточных, так и рекуррентных нейронных сетей. Благодаря многоканальным архитектурам, которые улучшают способность выявлять сложные шаблоны и взаимосвязи, модель является гибким инструментом для различных приложений. Пользователи могут быстро интегрировать библиотеку в свои приложения благодаря простой реализации. Библиотека находится в положении, позволяющем существенно продвинуть области обработки последовательных данных и глубокого обучения по мере её дальнейшего развития.

Previous Next

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

 Русский