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 ciega (corpus de anclaje MCER) 144 53,5 % 97,2 % 0,908
British Council, externo (tanda de Colab) 38 50,0 % 100 % 0,829

Qué respalda estas cifras y qué no. Salen de la ejecución de entrenamiento del v4. Las 144 parejas de etiqueta y predicción no están publicadas, y el corpus de anclaje MCER no es redistribuible, así que la aritmética de la primera fila no se puede recalcular desde fuera. Lo que sí es reproducible es la reproducción local sobre esos mismos textos: los nombres de los 59 archivos están en el repositorio del proyecto y validar_local.py los vuelve a medir, y da 47 evaluados con Spearman 0,860. No reproduce la fila de 38, que 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 anclaje son 654 documentos. Ese es el techo real del modelo, no la arquitectura.
  • 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 con pérdida de regresión sobre un corpus de documentos anclados a niveles MCER. Seis épocas, learning rate 2e-5, weight decay 0,01, calentamiento y precisión mixta. Se conservó el punto de control de la época 3, a partir de la cual empezaba a sobreajustar.

Procedencia

Trabajo final del Módulo 5 del Diplomado en Ciencia de Datos de la FES Acatlán, UNAM (Generación 34). El corpus CLEAR (Crossley et al.) se usó en la fase exploratoria del proyecto.

Downloads last month
47
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
(781)
this model

Space using MikeMaki1763/literalevel-v4 1