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

 Українська