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.pydel 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 enentrenamiento_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.pyda 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_enni conUniversalCEFR/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.