Texto libre en castellano — medición pública

¿Aporta el texto libre en castellano a un modelo de tablas?

4 tareas públicas en castellano, 6 maneras de usar el texto libre que trae cada fila —desde ignorarlo hasta preguntarle a un servicio externo—, medidas frente a una regla sellada antes de que entrara un solo número.

Formato del artefacto: 107-C30.v1

La conclusión, en corto
TareaMétricaSin textoMejor forma de usar el textoVeredicto frente a sin texto
A · Noticias falsasAUROC (mayor es mejor)0,724Jev, preguntado directamente (sin entrenar): 0,885Mejora
B · Casos clínicosAUROC (mayor es mejor)0,5TF-IDF + lineal: 0,819Mejora
C · Contratación públicaRMSE (menor es mejor)0,653Embedding multilingüe (MiniLM): 0,635Equivalencia práctica
D · BOE — legislación consolidadaAUROC (mayor es mejor)0,855Embedding multilingüe (MiniLM): 0,875Equivalencia práctica
  • El texto aporta cuando es el dato principal: por sí solo (TF-IDF), mejora al modelo sin texto en noticias falsas (AUROC 0,795 frente a 0,724) y en casos clínicos (AUROC 0,819 frente a 0,5).
  • Preguntado directamente y sin entrenar, Jev es la mejor forma medida de usar el texto en noticias falsas (AUROC 0,885 frente a 0,724 sin texto y 0,795 del TF-IDF) — con una cautela: el corpus es público desde hace años, así que esto no separa que Jev lea el texto de que lo recuerde de su entrenamiento.
  • Como fabricante de columnas, ni Jev ni el modelo local mejoran de forma práctica al modelo sin texto en ninguna tarea.
  • En contratación pública (RMSE) y en el BOE, nada cruza el margen de equivalencia de forma práctica.
El detalle, tarea por tarea, abajo ↓
01 · Qué se preguntó, y la regla fijada antes de medir

La pregunta y las seis condiciones

Muchos de los modelos de MatrixAI Studio entrenan sobre tablas, y algunas de esas tablas traen una columna de texto libre —una descripción, una nota, un informe— que hoy se ignora. Esto mide si ese texto merece leerse siquiera, y si es así, cuál de seis formas de leerlo compensa el esfuerzo, en cuatro tareas públicas escritas en castellano.

Las seis condiciones
  1. Sin texto (referencia) — Solo el modelo de tablas, con la columna de texto libre eliminada — la referencia frente a la que se mide todo lo demás.
  2. Embedding multilingüe (MiniLM) — El texto convertido en un único embedding de frase multilingüe (MiniLM), añadido al modelo de tablas como columnas extra.
  3. TF-IDF + lineal — Solo el texto: una bolsa de palabras TF-IDF (palabras y parejas de palabras) con su propio modelo lineal —regresión logística, o ridge en regresión—, sin las otras columnas de la tarea y sin el modelo de tablas.
  4. Respondedor local (Qwen2.5-0.5B) — Un modelo pequeño que corre en esta máquina (Qwen2.5-0.5B) al que se le hacen 5 preguntas fijas de sí/no sobre el texto; las respuestas entran al mismo modelo de tablas como 5 columnas más.
  5. Jev (fabricando columnas) — Las mismas 5 preguntas de sí/no, respondidas por Jev —un servicio externo— en vez de por el modelo local.
  6. Jev, preguntado directamente (sin entrenar) — Sin fabricar columnas: se le hace a Jev directamente la pregunta de la tarea, sin haber entrenado con ninguno de nuestros datos, y su respuesta cruda (0-1) se usa tal cual como la puntuación.
La regla, sellada antes de medir

Cada condición se compara con la condición (0) —sin texto— en una comparación emparejada, fila a fila: las mismas filas, con y sin la señal del texto. El intervalo sale de un bootstrap por fila con 1000 remuestreos, y una condición solo cuenta como equivalente en la práctica a «sin texto» cuando su intervalo entero cabe dentro de un margen de equivalencia de 0,05 fijado antes de que existiera ninguna de estas cifras, no elegido después de verlas.

02 · Las cuatro tareas

Cuatro tareas públicas, todas en castellano

Cada tarea es un conjunto de datos real y públicamente disponible en castellano — nada construido para esta medición.

FuenteQué prediceFilas
A · Noticias falsasFakeNewsCorpusSpanish · CC BY 4.0Distinguir una noticia en castellano falsa de una verdadera.Train 676 · Dev 295 · Test 572 · 1543 filas en total
B · Casos clínicosCodiEsp · CC BY 4.0Predecir, a partir de un caso clínico en castellano, si aplica el código CIE-10 R52 (dolor). No trae otras columnas: «sin texto» no tiene nada con qué aprender.Train 500 · Dev 250 · Test 250 · 1000 filas en total
C · Contratación públicaPLACSP · fichero de licitaciones de agosto de 2025Regresión del log10 del importe sin IVA de cada licitación, a partir del objeto del contrato y de sus otras columnas.Train 21.323 · Dev 4569 · Test 4570 · 30.462 filas en total
D · BOE — legislación consolidadaBoletín Oficial del Estado · legislación consolidada · reutilizable (Ley 37/2007)Predecir si una norma española sigue vigente.Train 3500 · Dev 750 · Test 750 · 5000 filas en total
03 · La tabla, tarea por tarea

Cada condición, por tarea

En el móvil cada tabla lleva su propio scroll horizontal.

A — Noticias falsas · FakeNewsCorpusSpanish

AUROC (mayor es mejor)

CondiciónResultadoDiferencia frente a (0), con intervaloVeredicto
Sin texto (referencia)0,724referencia
Embedding multilingüe (MiniLM)0,645-0,079 [-0,123; -0,033]Inferioridad
TF-IDF + lineal0,7950,071 [0,021; 0,115]Mejora
Respondedor local (Qwen2.5-0.5B)0,7280,004 [-0,008; 0,018]Equivalencia práctica
Jev (fabricando columnas)0,715-0,009 [-0,029; 0,012]Equivalencia práctica
Jev, preguntado directamente (sin entrenar)0,8850,161 [0,122; 0,200]Mejora

Otras diferencias que el artefacto describe, sin veredicto (fuera del pre-registro):

  • Respondedor local (Qwen2.5-0.5B) − TF-IDF + lineal: -0,067 — Descrita, sin veredicto — no formaba parte del plan de comparación sellado.
  • Jev (fabricando columnas) − TF-IDF + lineal: -0,08 — Descrita, sin veredicto — no formaba parte del plan de comparación sellado.
  • Jev (fabricando columnas) − Respondedor local (Qwen2.5-0.5B): -0,013 — Descrita, sin veredicto — no formaba parte del plan de comparación sellado.
  • Jev, preguntado directamente (sin entrenar) − Embedding multilingüe (MiniLM): 0,24 — Descrita, sin veredicto — no formaba parte del plan de comparación sellado.
  • Jev, preguntado directamente (sin entrenar) − TF-IDF + lineal: 0,09 — Descrita, sin veredicto — no formaba parte del plan de comparación sellado.
  • Jev, preguntado directamente (sin entrenar) − Jev (fabricando columnas): 0,17 — Descrita, sin veredicto — no formaba parte del plan de comparación sellado.

B — Casos clínicos · CodiEsp

AUROC (mayor es mejor)

CondiciónResultadoDiferencia frente a (0), con intervaloVeredicto
Sin texto (referencia)0,5referencia
Embedding multilingüe (MiniLM)0,7110,211 [0,134; 0,287]Mejora
TF-IDF + lineal0,8190,319 [0,261; 0,374]Mejora
Respondedor local (Qwen2.5-0.5B)0,50 [0,000; 0,000]Equivalencia práctica
Jev (fabricando columnas)—Nunca a Jev — datos clínicos
Jev, preguntado directamente (sin entrenar)—Nunca a Jev — datos clínicos

Otras diferencias que el artefacto describe, sin veredicto (fuera del pre-registro):

  • Respondedor local (Qwen2.5-0.5B) − TF-IDF + lineal: -0,319 — Descrita, sin veredicto — no formaba parte del plan de comparación sellado.

C — Contratación pública · PLACSP (agosto 2025)

RMSE (menor es mejor)

CondiciónResultadoDiferencia frente a (0), con intervaloVeredicto
Sin texto (referencia)0,653referencia
Embedding multilingüe (MiniLM)0,635-0,019 [-0,024; -0,013]Equivalencia práctica
TF-IDF + lineal0,6690,016 [-0,001; 0,032]Equivalencia práctica
Respondedor local (Qwen2.5-0.5B)—No medida — coste
Jev (fabricando columnas)0,648-0,005 [-0,008; -0,002]Equivalencia práctica
Jev, preguntado directamente (sin entrenar)—Regresión — Jev no da un número continuo

Otras diferencias que el artefacto describe, sin veredicto (fuera del pre-registro):

  • Jev (fabricando columnas) − TF-IDF + lineal: -0,021 — Descrita, sin veredicto — no formaba parte del plan de comparación sellado.

D — BOE — legislación consolidada · BOE - Legislación consolidada (muestra 5000)

AUROC (mayor es mejor)

CondiciónResultadoDiferencia frente a (0), con intervaloVeredicto
Sin texto (referencia)0,855referencia
Embedding multilingüe (MiniLM)0,8750,02 [-0,004; 0,045]Equivalencia práctica
TF-IDF + lineal0,836-0,019 [-0,052; 0,013]Inconcluso
Respondedor local (Qwen2.5-0.5B)—No medida — coste
Jev (fabricando columnas)—Fuera del pre-registro
Jev, preguntado directamente (sin entrenar)0,828-0,028 [-0,065; 0,011]Inconcluso

Otras diferencias que el artefacto describe, sin veredicto (fuera del pre-registro):

  • Jev, preguntado directamente (sin entrenar) − Embedding multilingüe (MiniLM): -0,048 — Descrita, sin veredicto — no formaba parte del plan de comparación sellado.
  • Jev, preguntado directamente (sin entrenar) − TF-IDF + lineal: -0,008 — Descrita, sin veredicto — no formaba parte del plan de comparación sellado.
04 · Jev

Qué contestó Jev

Jev es un servicio externo de TypeSafe, al que se llega por OpenRouter, que contesta preguntas tipadas de sí/no sobre un texto. El modelo que hay detrás está fijado y se lee del artefacto: typesafe/jev-1.13-20260917.

Como fabricante de columnas (condición 4), Jev solo corre en las tareas A y C —las dos públicas—; preguntado directamente, sin entrenar (condición 5, más abajo), corre en A y D —C es una regresión y la respuesta de Jev no es un número continuo—. La tarea B son casos clínicos, y el texto clínico nunca sale de esta máquina, así que nunca se manda a Jev por ninguna de las dos vías; por eso las tablas de arriba enseñan B como omitida, con su motivo.

Por qué Jev no está en la tabla de los 40 conjuntos de «Cómo medimos»: esos conjuntos son tablas sin texto libre, Jev no aprende de filas etiquetadas y no hace regresión. Su sitio es este: sacar columnas del texto para el modelo que sí aprende. Cómo medimos: los 40 conjuntos →

Gasto total de la clave de la API de Jev en esta medición: 0,5963 US$, y cubre las tareas A y C, y las llamadas de prueba.

Tarea A — Noticias falsas

Proporción de «sí» (Jev)
20,9 %
Proporción de «sí» (respondedor local)
5,6 %
Respuestas faltantes
0 (0 %)

Jev y el respondedor local coincidieron en el 76,1 % de las respuestas comparables (5872 de 7715).

Tiempo (solo de Jev — nunca frente al reloj propio del respondedor local)

Tiempo total de reloj de pared: 485 s (8,1 min)

Pasadas
PasadaDesenlaceDuración
107c30-jev-acompletada485 s (8,1 min)

Tarea C — Contratación pública

Proporción de «sí» (Jev)
3,1 %
Respuestas faltantes
0 (0 %)
Tiempo (solo de Jev — nunca frente al reloj propio del respondedor local)

Tiempo total de reloj de pared: 15.208 s (4,2 h)

La medida tuvo que reanudarse desde su caché de filas ya respondidas, así que necesitó varias pasadas: el total de arriba es la suma de todas, que van debajo — no solo la última.

Pasadas
PasadaDesenlaceDuración
107c30-jev-cerror (corte de red)212 s (3,5 min)
107c30-jev-c2error (sin saldo en la cuenta)3053 s (50,9 min)
107c30-jev-c3agotó el tope de tiempo10.801 s (3 h)
resto-a-manocompletada1142 s (19 min)

La condición (5): preguntarle a Jev directamente, sin entrenar

Otra forma de usar a Jev: en vez de fabricar columnas para nuestro propio modelo, aquí se le hace a Jev la pregunta de la tarea tal cual está escrita, sin haber entrenado con ninguno de nuestros datos — su respuesta cruda (0 a 1) se usa directamente como la puntuación, sobre las mismas filas de prueba que todas las demás condiciones.

A — Noticias falsas

Pregunta hecha
¿Es falsa esta noticia? Responde solo sí o no.
Jev, preguntado directamente (sin entrenar)
0,885
Sin texto (referencia)
0,724
Veredicto
Mejora
0,161 [0,122; 0,200]

Respuestas faltantes: 0 (0 %)

D — BOE — legislación consolidada

Pregunta hecha
¿Esta norma ha dejado de estar vigente? Responde solo sí o no.
Jev, preguntado directamente (sin entrenar)
0,828
Sin texto (referencia)
0,855
Veredicto
Inconcluso
-0,028 [-0,065; 0,011]

Respuestas faltantes: 0 (0 %)

Cautela

Los dos corpus son públicos desde hace años, así que esta medida no puede separar que Jev lea el texto de que lo recuerde de su entrenamiento. Y su puntuación es AUROC —ordena—, que no dice nada de si ese número entre 0 y 1 está calibrado.

05 · Por qué la tarea A no puede calificar a un respondedor

El marcador «NUMBER»

FakeNewsCorpusSpanish sustituye los dígitos por el marcador literal NUMBER en algunas de sus versiones. Contado directamente en la copia del conjunto que usó esta medición: 749 de 1543 filas lo llevan — y cuánto depende de la versión y de la partición, no de si la noticia es falsa o verdadera.

Patrón de detección: \bNUMBER\b (sensible a mayúsculas)

Versión × Partición
VersiónParticiónFilas con NUMBERFilasProporción
v1dev23429579,3 %
v1train51567676,2 %
v2test05720 %
El mismo recuento, por la etiqueta de train
EtiquetaFilas con NUMBERFilasProporción
Fake22133865,4 %
True29433887 %
Los cinco términos que la selección automática de preguntas de la tarea A puntuó más alto — literalmente sobre el marcador
Término (χ²)χ²
number de1,55
mil number1,329
el number1,27
mil1,254
de number1,152

La versión que se usó para elegir las preguntas de sí/no de la tarea A está empapada de este marcador; la versión que de verdad se calificó, no. Que un respondedor acierte una pregunta construida alrededor de NUMBER dice de qué versión del corpus venía la fila, no si sabe leer una noticia en castellano — así que las cifras de la tarea A describen ese desajuste, y no sirven para calificar a Jev ni al respondedor local como lectores de este texto.

Lo que estas cifras NO dicen

Colocado al lado de las tablas a propósito, con el mismo peso — no una nota al pie al final de la página.

  • Cuatro tareas y un margen de equivalencia: un resultado de aquí no se generaliza más allá de ellos.
  • Solo se ha medido castellano — nada de esto dice nada de ningún otro idioma.
  • Las preguntas de sí/no las eligió una regla automática (χ²), no una persona: con otras preguntas los mismos respondedores podrían dar otra puntuación.
  • El tiempo de respuesta de Jev no es comparable al del respondedor local — son cosas distintas (un servicio remoto por HTTP frente a un modelo que corre en esta máquina), y esta página nunca los pone uno al lado del otro.
06 · Procedencia

Qué produjo este JSON, con sus huellas

Cada artefacto del que lee esta página, con su SHA-256 para que quien tenga el fichero pueda comprobar que es el mismo, y la huella del script que lo escribió donde el artefacto la registra.

Script generador (SHA-256)
18c922c9df6c6bee13ac2953b394296fd8ac67306a71ec9873bf8ab84e694b49
FicheroGeneradoSHA-256 del scriptSHA-256 del fichero
marcador_number_A.json29 de septiembre de 202641858b30bc492d4b32d0fc34429c70e59b4e43a36d67f7514d80ff1fcde6182c072ed3dfc2f498ff1201ab1c3fb32dd18807ec12649569133b10ec98ff81a95e
pasadas_c30_jev.json—97baf79a97dc17240267a49e6cd38ceca323b91f8cb9d15976acfcf6b07aeebe2d5b0963b43b1f1e9da95f60646521ff69c44aad2dc328958205d38c55c04190
respuestas_c30_jev_A.json——5edfd489f48a25aec7499a0739f31b5c9097c3bd91b9891d9f109e6de76aece8
respuestas_c30_respondedor_a.json——c3873430d4382bf75018705dd11eaeff19d97f6b684da59deff34e0f9eeee12c
resultado_c30.json25 de septiembre de 2026d2bf7c07a10de2e1b67e09178a0fc92b9be7c211248764b45bdb96b8862e95810a85571c8db563adb6d07cb3725a60129a399dffa0ec2889f08e10faf3b7e0f9
resultado_c30_jev_A.json29 de septiembre de 20260abc5e112747929b5256a41b0e7447534ce470eb61b251b142d2c0ca640677778a9a42171ed83bc0711a68597c5c06097b675f74e55ca2ef69aeff621aa8029d
resultado_c30_jev_C.json29 de septiembre de 20260abc5e112747929b5256a41b0e7447534ce470eb61b251b142d2c0ca640677775051fa8649944e379c10da1e98efa219a89241cf0841eb13e5d4450eda79eed3
resultado_c30_jev_directo.json29 de septiembre de 2026f55f492ad008faac9c6a341c8ab1a4546c1f27d1c60471f1ad259ab33b5206bd5140f7b79926505a29ff5b5ba6bd801a6b887543584a6fb4b6f5bc4984c3ba8a
resultado_c30_respondedor_a.json27 de septiembre de 202677d23914451e3946fe219533915cc00d1f3e1d2da6e68b388b082e66a683f95a403074a1876c8437ffaf22e785b035eedbddb5485f1d9c0377204885d18240c7
resultado_c30_respondedor_b.json27 de septiembre de 202677d23914451e3946fe219533915cc00d1f3e1d2da6e68b388b082e66a683f95af32115499363e1785242914a125bce6587a14456c82336d8f1a374c76a176ec3
resumen_tareas.json——158f31b29a89c9ccc7d78850ac8367a81ed272e35f507829e90d690e58fc4661
Para seguir
Cómo medimos qué motor gana →Cómo se verifica el recibo de un modelo →

Cada cifra de esta página se lee en vivo de src/datos/texto_107_publico.json, copiado byte a byte del artefacto que MatrixAI genera desde la pasada sellada del corte 107-C30 — nada aquí está escrito a mano.