Todos los proyectos
Núm. 9
FakeNewsDetector AI
Clasificador de noticias con DistilBERT y heurísticas
- Mi rol
- Autor único
- Periodo
- Mar 2026
El problema
La desinformación más difícil de detectar no es el clickbait evidente, sino el texto que imita el lenguaje de la ciencia: "investigadores de una universidad europea", "el estudio aún no se publica". Un clasificador entrenado solo con noticias falsas obvias tiende a marcar esos textos como confiables.
Qué construí
Lo hice solo y lo publiqué el 30 de marzo de 2026.
- La preparación de datos: 5,000 artículos por clase del dataset ISOT de Kaggle (
Fake.csvyTrue.csv), con título y cuerpo unidos y recortados a 1,800 caracteres. - El fine-tune de DistilBERT con el Trainer de Hugging Face, como clasificador de 2 clases, REAL y FAKE, con early stopping.
- Reglas heurísticas: patrones de pseudociencia (protección total, estudio sin publicar, universidad sin nombre), señales de alarma y señales de fuente verificable.
- La fusión del modelo con las reglas en 3 etiquetas: Confiable, Dudosa y Falsa. Dudosa aparece cuando el modelo no separa bien las 2 clases, y 2 o más patrones de pseudociencia fuerzan Falsa.
- Una interfaz Gradio que explica el veredicto. Si no hay modelo local, usa modelos públicos de Hugging Face y, como último recurso, solo las reglas.
Arquitectura
Resultados
No publico una cifra de exactitud. El README reporta una exactitud muy alta, pero no la considero válida por dos razones que detallo abajo: se mide sobre el mismo conjunto con el que se eligió el modelo, y el dataset le da pistas de la respuesta. Una evaluación honesta necesita un conjunto de prueba separado y limpio, y está pendiente.
Límites conocidos
- El README dice que el modelo es RoBERTa, pero
train.pyajusta DistilBERT. El README está mal. - El conjunto de evaluación es el mismo que decide el early stopping y el mejor checkpoint, así que la métrica es optimista.
- En ISOT las noticias reales llevan el encabezado "(Reuters)" y el código no lo quita: el modelo puede aprender a reconocer la agencia en lugar de la veracidad.
- El modelo entrenado no está en el repositorio, y el README cita un notebook y un CSV de ejemplos de pseudociencia que tampoco están.
- Uno de los modelos de respaldo es de análisis de sentimiento (SST-2), no de noticias.
- El dataset es solo en inglés y no hay tests.