Resum i classificació de notícies en temps real amb NLP i Google Colab
En aquest projecte explorem com aplicar NLP (Processament del Llenguatge Natural) per treballar amb notícies en temps real. L’objectiu és aconseguir resums automàtics i classificació temàtica utilitzant dades del feed RSS de la BBC i models pre-entrenats de Hugging Face.
Mètode
- Lectura de notícies en temps real via RSS.
- Resum automàtic amb el model BART CNN.
- Classificació zero-shot en categories com política, esports, negocis, tecnologia i entreteniment.
- Presentació de resultats en una taula clara amb resum i categoria.
Resultats
Els resultats mostren com és possible aconseguir resums útils i categories raonablement correctes en pocs segons, amb molt poc codi.
Títol | Resum | Categoria |
---|---|---|
Prince Harry meets King Charles… | Prince Harry meets King Charles for the first time since Feb 2024. | World |
Gary Lineker ends Ant and Dec’s… | Gary Lineker breaks their 23-year winning streak. | Sport |
Notebook en temps real
Vols provar-ho tu mateix?
· Obrir a Google Colab
Codi font complet també disponible a GitHub:
· Gist de deGalaLab
Conclusions
Aquest experiment demostra com el Processament del Llenguatge Natural pot ser aplicat a fonts en temps real, obrint la porta a aplicacions com:
- Monitoratge de notícies
- Detecció de tendències
- Resums automàtics per newsletters
El següent pas és extreure el cos complet dels articles i refinar els resums per aconseguir informació encara més valuosa.
MÉS INFORMACIÓ:
Què és Hugging Face?
És una empresa i una comunitat oberta que ofereix:
- Biblioteca de models (
transformers
)- Codi Python que et permet carregar models de NLP (i altres) ja entrenats amb només unes línies.
- Exemple:
from transformers import pipeline summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
- Hugging Face Hub
- Un “GitHub” de models d’IA: NLP, visió per computador, àudio, multimodal…
- Milers de models pre-entrenats (BERT, GPT-2, T5, Whisper, Stable Diffusion, etc.).
- Datasets
- Milers de conjunts de dades per entrenar i provar models (notícies, traduccions, imatges…).
- Inference API
- Pots fer servir els models al núvol sense haver d’instal·lar res localment.
- Comunitat i Spaces
- Spaces: petites apps web on pots provar models amb una interfície (sense escriure codi).
- Comunitat activa que comparteix models i demos.
Per què l’hem fet servir en aquest exercici?
Perquè dona accés fàcil i ràpid a:
- Resum automàtic → amb models com BART o T5.
- Classificació zero-shot → amb BART MNLI.
- Sense entrenar res de zero: només fem servir el que ja està disponible.
Mini Guia de Hugging Face
Hugging Face Hub
- Web: https://huggingface.co/models
- Allà es troben milers de models publicats per empreses, investigadors i la comunitat.
- Es poden filtrar per tasques: summarization, translation, sentiment analysis, text-generation, speech-to-text, image-classification…
Exemple: facebook/bart-large-cnn (model de resum que hem usat).
Provar models al navegador (sense codi)
- Quan s’entra a la pàgina d’un model, gairebé sempre hi ha una caixa de prova interactiva: enganxes un text → el model et retorna el resum / classificació / traducció.
- Ideal per fer proves ràpides abans d’anar a Colab o Python.
Com fer servir models amb Python
Primer instal·lem la llibreria:
!pip install transformers torch
Exemple 1: Resum automàtic
from transformers import pipeline
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
text = """The government announced a new economic reform to boost renewable energy investment across Europe..."""
summary = summarizer(text, max_length=50, min_length=20, do_sample=False)
print(summary[0]['summary_text'])
Exemple 2: Classificació zero-shot
from transformers import pipeline
classifier = pipeline("zero-shot-classification", model="facebook/bart-large-mnli")
labels = ["politics", "sport", "economy", "technology", "entertainment"]
result = classifier("The government passed a new law on renewable energy.", candidate_labels=labels)
print(result["labels"][0], result["scores"][0])
Datasets a Hugging Face
- També hi ha una secció amb datasets: https://huggingface.co/datasets
- Exemple en Python:
from datasets import load_dataset
dataset = load_dataset("ag_news")
print(dataset["train"][0])
Hugging Face Spaces
- https://huggingface.co/spaces
- Petites apps creades amb Gradio o Streamlit.
- Es poden provar models amb interfície gràfica (per exemple, reconeixement de veu, traducció en directe, etc.).
Inference API (Opcional)
- Hugging Face ofereix API al núvol (es necessita token personal).
- Exemple:
from huggingface_hub import InferenceApi
inference = InferenceApi(repo_id="facebook/bart-large-cnn")
result = inference("Your long text here...")
print(result)
Amb això tenim tot el cicle:
- Buscar model → 2. Provar al web → 3. Executar amb Python/Colab → 4. Compartir resultats.