API de Leitor de Provas de Múltipla Escolha em Python de Código Aberto
API gratuita de leitor de provas de múltipla escolha em Python que permite que desenvolvedores de software gerem folhas de prova, scanners e softwares de processamento via API Python.
O que é a Biblioteca Open-MCR?
Um pacote Python robusto chamado Open-MCR foi criado para facilitar a implantação de Redes Neurais Recorrentes Convolucionais Multicanal (MCRNNs). Este projeto de código aberto, criado pelo talentoso programador Ian San, oferece a acadêmicos e desenvolvedores uma estrutura versátil e eficaz para tarefas como reconhecimento de fala, análise de vídeo e diferentes aplicações de séries temporais. Usá-lo em seus projetos pode resultar em previsões de modelo mais confiáveis e precisas, o que, em última análise, ajudará o aprendizado de máquina a melhorar em uma variedade de campos. A biblioteca Open-MCR foi desenvolvida pensando na facilidade de uso. A biblioteca é acessível tanto para iniciantes quanto para profissionais experientes, graças à sua documentação abrangente e exemplos.
Em aprendizado de máquina, a Classificação Multiclasse (MCC) é uma tarefa popular onde o objetivo é categorizar uma entrada a partir de uma série de classes pré-determinadas. Ao adicionar uma opção de rejeição, o Open-MCR vai um passo além e permite que o modelo deixe de gerar uma previsão em casos em que não está claro. Isso melhora o desempenho geral e é especialmente útil em situações onde o nível de confiança do modelo é baixo. Fundamentalmente, o Open-MCR processa e compreende entradas sequenciais utilizando as vantagens tanto de redes neurais convolucionais quanto recorrentes. O modelo é uma ferramenta flexível para uma variedade de aplicações graças aos designs multicanal, que aumentam sua capacidade de identificar padrões e conexões intrincados. Os usuários podem incorporar a biblioteca em suas aplicações rapidamente devido à sua implementação simples. A biblioteca está posicionada para avançar significativamente os campos de processamento de dados sequenciais e aprendizado profundo à medida que se desenvolve.
Começando com Open-MCR
A forma recomendada de instalar a biblioteca Open-MCR é usando pip. Por favor, use o comando a seguir para uma instalação tranquila.
Instalar Biblioteca Open-MCR via pip
pip install open-mcr Você pode baixar a biblioteca diretamente de GitHub
Usar Mecanismo de Rejeição em Aplicações Python
O recurso de destaque do Open-MCR é seu mecanismo de rejeição, que permite que os modelos recusem fazer uma previsão quando confrontados com instâncias ambíguas ou desafiadoras. Essa capacidade é crucial em aplicações do mundo real, onde evitar previsões incorretas é fundamental. Aqui está um exemplo que mostra como usar o mecanismo de rejeição com apenas algumas linhas de código. Para um uso tranquilo, primeiro importe a classe OpenMCR da biblioteca e inicialize-a com o seu modelo de aprendizado de máquina preferido. Defina o parâmetro rejection_threshold para controlar o nível de confiança para rejeição.
Como usar o mecanismo de rejeição em aplicativos 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)
Ler & Extrair Dados de Imagens via API Python
A biblioteca Python de código aberto Open-MCR oferece suporte completo para carregar e ler dados de imagens dentro de aplicações Python. Para lidar com exames e ler folhas, primeiro os usuários precisam escanear todas as folhas usando um scanner padrão. Converta-as em imagens individuais e coloque-as em uma única pasta, incluindo as chaves de respostas. Além de ler imagens escaneadas, ela também pode pontuar automaticamente os resultados dos exames. Ela faz isso comparando as chaves fornecidas com a saída. Após o programa terminar o processamento, os resultados serão salvos como arquivos CSV na pasta de saída selecionada. A biblioteca também oferece suporte à extração de dados ao ler imagens ligeiramente distorcidas. Com a versão mais recente, a biblioteca aprimorou o algoritmo de detecção de grade e obtém melhores resultados com sua imagem. Ela estabelece uma grade baseada nas quatro marcas de canto e então lê as bolhas nas posições da grade. O exemplo a seguir mostra como calcular os resultados via código Python.
Como calcular os resultados da folha de respostas de exame usando a API Python?
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
Precisão e Robustez Aprimoradas
A biblioteca de código aberto Open-MCR é uma adição valiosa ao conjunto de ferramentas de profissionais de aprendizado de máquina que buscam melhorar o desempenho de seus modelos de classificação multiclasse. O mecanismo de rejeição aumenta a precisão geral dos modelos de classificação multiclasse, especialmente em situações em que os modelos tradicionais podem ter dificuldades. Esse mecanismo também aumenta a robustez do modelo ao impedir que ele faça previsões pouco confiáveis, garantindo resultados mais confiáveis em diversos cenários do mundo real.