KevSun/Engessay_grading_ML

KevSun
Clasificación de texto

Este modelo está diseñado principalmente para la calificación automática de ensayos en inglés, particularmente aquellos escritos por aprendices de segunda lengua (L2). El conjunto de datos de entrenamiento utilizado es el Corpus ELLIPSE (Evaluación de Habilidades y Competencia del Aprendiz de Inglés). Este recurso de acceso libre comprende aproximadamente 6,500 muestras de composición escrita de aprendices de inglés, cada una puntuada por la competencia holística general del lenguaje, así como puntuaciones analíticas relacionadas con cohesión, sintaxis, vocabulario, fraseología, gramática y convenciones. Las puntuaciones fueron obtenidas mediante evaluaciones de varios profesores de inglés profesionales que adherían a procedimientos rigurosos. El conjunto de datos de entrenamiento garantiza que nuestro modelo adquiera alta practicidad y precisión, emulando de cerca los estándares de calificación profesional. El rendimiento del modelo en el conjunto de datos de prueba, que incluye alrededor de 980 ensayos en inglés, se resume con las siguientes métricas: 'precisión media' = 0.91 y 'puntuación F1 media' = 0.9, Kappa Ponderado Cuadrático (QWK) = 0.85. Al ingresar un ensayo, el modelo produce seis puntuaciones correspondientes a cohesión, sintaxis, vocabulario, fraseología, gramática y convenciones. Cada puntuación varía de 1 a 5, con puntuaciones más altas indicando mayor competencia dentro del ensayo. Estas dimensiones evalúan colectivamente la calidad del ensayo desde múltiples perspectivas. El modelo sirve como una herramienta valiosa para profesores e investigadores de EFL, y también es beneficioso para los aprendices de inglés L2 y sus padres para autoevaluar sus habilidades de composición.

Como usar

Por favor, utilice el siguiente código en Python si desea obtener valores de salida que oscilan entre 1 y 5.

from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch

model = AutoModelForSequenceClassification.from_pretrained("Kevintu/Engessay_grading_ML")
tokenizer = AutoTokenizer.from_pretrained("KevSun/Engessay_grading_ML")

new_text = "The English Language Learner Insight, Proficiency and Skills Evaluation (ELLIPSE) Corpus is a freely available corpus of ~6,500 ELL writing samples that have been scored for overall holistic language proficiency as well as analytic proficiency scores related to cohesion, syntax, vocabulary, phraseology, grammar, and conventions. In addition, the ELLIPSE corpus provides individual and demographic information for the ELL writers in the corpus including economic status, gender, grade level (8-12), and race/ethnicity. The corpus provides language proficiency scores for individual writers and was developed to advance research in corpus and NLP approaches to assess overall and more fine-grained features of proficiency."

encoded_input = tokenizer(new_text, return_tensors='pt', padding=True, truncation=True, max_length=64)
model.eval()

# Realizar la predicción
with torch.no_grad():
    outputs = model(**encoded_input)

    predictions = outputs.logits.squeeze()

    predicted_scores = predictions.numpy()
item_names = ["cohesion", "syntax", "vocabulary", "phraseology", "grammar", "conventions"]

# Escalar las predicciones desde la salida en bruto al rango [1, 5]
scaled_scores = 1 + 4 * (predicted_scores - np.min(predicted_scores)) / (np.max(predicted_scores) - np.min(predicted_scores))

# Redondear las puntuaciones al 0.5 más cercano
rounded_scores = np.round(scaled_scores * 2) / 2

for item, score in zip(item_names, rounded_scores):
    print(f"{item}: {score:.1f}")

# Ejemplo de salida:
# cohesion: 3.5
# syntax: 3.5
# vocabulary: 4.0
# phraseology: 4.0
# grammar: 4.0
# conventions: 3.5

Sin embargo, implemente el siguiente código si espera obtener los valores de salida entre 1 y 10.

from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch

model = AutoModelForSequenceClassification.from_pretrained("Kevintu/Engessay_grading_ML")
tokenizer = AutoTokenizer.from_pretrained("KevSun/Engessay_grading_ML")

new_text = "The English Language Learner Insight, Proficiency and Skills Evaluation (ELLIPSE) Corpus is a freely available corpus of ~6,500 ELL writing samples that have been scored for overall holistic language proficiency as well as analytic proficiency scores related to cohesion, syntax, vocabulary, phraseology, grammar, and conventions. In addition, the ELLIPSE corpus provides individual and demographic information for the ELL writers in the corpus including economic status, gender, grade level (8-12), and race/ethnicity. The corpus provides language proficiency scores for individual writers and was developed to advance research in corpus and NLP approaches to assess overall and more fine-grained features of proficiency."encoded_input = tokenizer(new_text, return_tensors='pt', padding=True, truncation=True, max_length=64)

model.eval()
with torch.no_grad():
    outputs = model(**encoded_input)

    predictions = outputs.logits.squeeze()
    predicted_scores = predictions.numpy()  # Convertir a matriz numpy
item_names = ["cohesion", "syntax", "vocabulary", "phraseology", "grammar", "conventions"]

# Escalar las predicciones de 1 a 10 y redondear al 0.5 más cercano
scaled_scores = 2.25 * predicted_scores - 1.25
rounded_scores = [round(score * 2) / 2 for score in scaled_scores]  # Redondear al 0.5 más cercano

for item, score in zip(item_names, rounded_scores):
    print(f"{item}: {score:.1f}")

# Ejemplo de salida:
# cohesion: 6.5
# syntax: 7.0
# vocabulary: 7.5
# phraseology: 7.5
# grammar: 7.5
# conventions: 7.0

Funcionalidades

Clasificación de texto
Transformers
PyTorch
roberta
Compatible con AutoTrain
Compatible con Endpoints
arxiv:2406.01198
Licencia: MIT
Región: US

Casos de uso

Evaluación automática de ensayos de inglés
Herramienta para profesores y investigadores de EFL
Autoevaluación de habilidades de composición para aprendices de inglés L2 y sus padres