Introducción
Dentro de la filosofía de aprender haciendo hace una semana nos planteamos construir un modelo de IA que clasificara titulares de noticias como clickbait o no.
Puedes probarlo aquí: Predicción de Titulares de Noticias como Clickbait
En este post vamos a contar cómo lo hemos hecho y qué hemos aprendido en el proceso.
Fase 1: Recopilando datos
Sin dudarlo, ésta es la parte más importante junto con la de etiquetar y limpiar el corpus que luego utilizaremos para entrenar el modelo. Para conseguir los datos hemos buceado y buscado por la web, en concreto en:
Kaggle:
Un clásico para encontrar datasets de todo tipo en concreto éste: Clickbait News Detection Competition
Este dataset tiene 24000 noticias con titular, texto y etiqueta, osea “alguien” o “algo” los ha etiquetado como clickbait o no, osea que para ti pueden ser clickbait algo que para el dataset no lo es y viceversa.
En todo caso lo traemos y los limpiamo un poco para quedarnos con los titulares y las etiquetas y los traducimos para guardar en un csv
.
huggingface:
Otra fuente de datasets y modelos de IA. En concreto hemos encontrado un dataset de headlines (titulares).
Lo mismo que en el caso anterior hemos traído estos 32000 registros, los hemos limpiado y traducido para guardar en otro csv
.
github
Buscando buscando hemos encontrado un dataset de titulares de noticias en español en el proyecto clickbait headline generator del hindú Praveen
SerpApi
SERPAPI es una API que te permite extraer datos de los resultados de búsqueda de Google. Hemos usado esta API para extraer titulares de noticias de diferentes medios y etiquetarlos como clickbait o no. En concreto hemos sacado las noticias para España de Google News
|
|
Y esto lo hemos ido ejecutando durante unos días para tener un corpus de titulares de noticias en español.
|
|
Fase 2: Preprocesado de los datos
Tenemos corpus etiquetados y tenemos corpus sin etiquetar. Vamos a juntarlos y a limpiarlos. También vamos a evitar paliza de etiquetado manual.
Lo primero traducir:
- Un parte lo hemos traducido con la API de Google Translate integrada en Google Sheets. Funciona que no veas.
- Después de pegarnos con diferentes APIs e incluso con openAI (lento y caro), hemos usado transformers de HuggingFace, sencillos, certeros y rápidos.
|
|
Etiquetado Para esto usamos la librería Snorkel, que nos permite etiquetar automáticamente los datos con reglas que nosotros mismos definimos. Snorkel es una empresa deliciosa, con un modelo de negocio y un acercamiento a los datos muy profesional, con una plataforma de etiquetado de datos y de entrenamiento de modelos de IA que funciona estupendamente.
Muy recomendable revisar sus “papers”, su documentación y sus casos de uso.
Snorkel basa el cuidado de los datos en el concepto de Weak Supervision en el que etiquetamos los datos con reglas que nosotros mismos definimos y vamos curando los resultados con un proceso iterativo.
|
|
Fase 3: Entrenamiento del modelo
Entrenamos un BETO que es un BERT en español:
|
|
Fase 4: Uso del modelo
Así de sencillo una vez subido a HuggingFace nuestro modelo taniwasl/clickbait_es con 110 Millones de parámetros.
|
|
Finalmente lo hemos encapsulado en un microservicio con Dash y Docker para poder usarlo en producción y hemos trasteado con los medios de comunicación españoles para ver sus índices de clickbait.
Predicción de Titulares de Noticias como Clickbait
Si quieres saber más sobre cómo podemos ayudarte con tus datos y tus proyectos de IA, no dudes en contactar con nosotros en hola@taniwa.es
Foto de Foto de Andrea Piacquadio en Pexels