LiteraLevel v4 — dificultad de lectura en inglés

Modelo de regresión que estima lo difícil que resulta un texto en inglés para alguien que lo está aprendiendo. Es el motor de LiteraLevel, una aplicación que recorre libros enteros de Project Gutenberg capítulo a capítulo y le dice al lector si un libro está a su altura.

Es un distilroberta-base (6 capas, 82 M de parámetros) con una cabeza de regresión de una salida.

Cómo se usa

import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification

RUTA = "MikeMaki1763/literalevel-v4"
tok = AutoTokenizer.from_pretrained(RUTA)
modelo = AutoModelForSequenceClassification.from_pretrained(RUTA).eval()

texto = "It was the best of times, it was the worst of times..."
ent = tok(texto, truncation=True, max_length=256, return_tensors="pt")
with torch.no_grad():
    interno = float(modelo(**ent).logits.squeeze())

publica = 0.4 * min(max(interno, 0), 5)      # escala 0-2 para el usuario
print(round(publica, 2))

El troceado importa

El modelo se entrenó sobre bloques de 250 palabras (mínimo 150), truncados a 256 sub-tokens. Para puntuar un texto largo hay que trocearlo igual y promediar, recortando cada bloque a [0, 5] antes de promediar, no después: el 14 % de las ventanas de prosa literaria puntúa por encima de 5, y recortar al final deja que un bloque desbordado arrastre al resto.

Las dos escalas

La salida cruda va de 0 a 5, un punto por nivel del Marco Común Europeo:

Interno 0 1 2 3 4 5
MCER A1 A2 B1 B2 C1 C2

La escala que ve el usuario es esa misma multiplicada por 0,4, de 0 a 2. Los empates se resuelven hacia arriba, con floor(x + 0,5).

Qué tan bien funciona

Conjunto n Exacto Dentro de ±1 nivel Spearman
Validación (documentos reservados de ELG CEFR English) 144 53,5 % 97,2 % 0,908
British Council, validación de desarrollo 38 50,0 % 100 % 0,829
OneStopEnglish, externo (una puntuación por artículo y nivel) 560 — — 0,800

En OneStopEnglish, que no comparte ni un 8-grama con el corpus de entrenamiento, contar palabras da 0,692 y el modelo conserva 0,688 descontando la longitud. Dentro de cada artículo ordena bien sus tres versiones en 183 de 185, aunque la longitud sola ya acierta 179.

Estas cifras se pueden recalcular, y se recalcularon. El 12 de septiembre de 2026 se rehízo la primera fila con el guion de entrenamiento (entrenamiento_v4/ll_v4_transformer.py del proyecto), estos mismos pesos y los datos públicos de ELG CEFR English: misma partición (510 / 144) y las cuatro métricas idénticas a cuatro decimales (0,5347 · 0,9722 · MAE 0,4985 · Spearman 0,9084). Las 144 parejas de nivel y predicción están en entrenamiento_v4/validacion_144_recalculada.csv.

Dos matices que hay que leer junto a la cifra. Esos 144 documentos no son un conjunto de prueba virgen: el entrenamiento se quedó con el punto de control que mejor puntuaba en ellos. Y British Council tampoco es externo del todo: se usó como validación durante el desarrollo. La reproducción local con validar_local.py da 47 textos y Spearman 0,860; la fila de 38 es otra tanda con otro filtro.

Sobre textos externos con nivel MCER oficial, las medias por nivel salen estrictamente crecientes, que es el resultado que de verdad sostiene el trabajo:

Nivel A1 A2 B1 B2 C1
Media (0–2) 0,504 0,556 0,928 1,241 1,495

Límites, que conviene leer antes de usarlo

  • Esto no certifica nada. El MCER es el ancla con la que se entrenó, no un título. Ninguna institución respalda estas cifras.
  • La escala está comprimida. Contra el ancla real el ajuste ronda predicho ≈ 0,72 · real + 0,38, así que un texto A2 puntúa cerca de B1, y por el mismo efecto un A1 tiende a anunciarse como A2. Por eso la aplicación muestra bandas anchas y no dos decimales.
  • Solo inglés, y solo prosa continua. Con menús, listas, tablas o poesía la puntuación no significa nada.
  • El corpus de entrenamiento son 654 documentos de una sola fuente, ELG CEFR English. Ese es el techo real del modelo, no la arquitectura. Y por eso no sirve validarlo con UniversalCEFR/elg_cefr_en ni con UniversalCEFR/cambridge_exams_en: el primero es ese mismo corpus y los 325 textos del segundo están dentro de él.
  • Contar palabras sin modelo alguno alcanza 0,807 en el corpus de British Council, donde este modelo da 0,860. La ventaja existe, pero conviene saber contra qué se compara.

Cómo se entrenó

Afinado desde distilroberta-base sobre ELG CEFR English (CC BY-NC-SA 4.0): 712 documentos, de los que se aceptan 654 como prosa continua (57 son cortos y 1 tiene forma de frase anómala). Partición por documento, estratificada por nivel y con semilla 20260905: 510 de entrenamiento y 144 de validación.

Cada documento se trocea en ventanas de 250 palabras (hasta 8), el objetivo es el nivel en la escala 0..5 y la pérdida es Smooth L1 ponderada por documento. Cuatro épocas, AdamW con learning rate 2e-5 y weight decay 0,01, calentamiento del 10 %, precisión mixta y lote de 16. Se conserva el punto de control con menor MAE − 0,15 · Spearman sobre la validación. El guion completo y la tarjeta de métricas están en entrenamiento_v4/ del proyecto.

Licencia

CC BY-NC-SA 4.0, la misma que su corpus de entrenamiento: se puede usar y adaptar citando la fuente, no con fines comerciales, y lo que se derive de él tiene que publicarse con esta misma licencia.

Procedencia

Trabajo final del Módulo 5 del Diplomado en Ciencia de Datos de la FES Acatlán, UNAM (Generación 34). Datos de entrenamiento: ELG CEFR English, en la colección UniversalCEFR (Imperial et al., EMNLP 2025), con licencia CC BY-NC-SA 4.0, que no permite uso comercial. El corpus CLEAR (Crossley et al.) se usó en la fase exploratoria del proyecto.

Downloads last month
79
Safetensors
Model size
82.1M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for MikeMaki1763/literalevel-v4

Finetuned
(794)
this model

Space using MikeMaki1763/literalevel-v4 1