Tasques NLP amb models preentrenats
Classificació de text
Assignar una etiqueta a un fragment de text: anàlisi de sentiment, detecció de spam, categorització de tickets de suport, detecció de toxicitat.
# Pipeline de classificació de sentiment amb Hugging Face
from transformers import pipeline
# Descarrega automàticament el model si no el tens (primera vegada triga una mica)
# Usem un model multilingüe que suporta català
sentiment = pipeline(
"sentiment-analysis",
model="nlptown/bert-base-multilingual-uncased-sentiment"
)
# Proves en català
resultats = sentiment([
"Aquest producte és fantàstic, el recomano a tothom!",
"Pèssima experiència, mai més tornaré a comprar aquí.",
"El servei és acceptable però podria millorar.",
"No m'ha deceput gens, molt satisfet amb la compra."
])
for text, resultat in zip(
["Fantàstic", "Pèssim", "Acceptable", "Satisfet"],
resultats
):
print(f"{text}: {resultat['label']} (confiança: {resultat['score']:.2%})")
Reconeixement d'Entitats Nombrades (NER)
Identificar i classificar entitats en el text: persones (PER), organitzacions (ORG), llocs (LOC), dates (DATE), quantitats monetàries (MONEY), etc.
Aplicació empresarial: extreure automàticament noms de clients, empreses, adreces i dates d'emails o contractes.
from transformers import pipeline
ner = pipeline("ner", model="dslim/bert-base-NER", aggregation_strategy="simple")
text = """
El conseller delegat d'Apple, Tim Cook, va visitar Barcelona el març de 2024
per reunir-se amb el CEO de Seat, Wayne Griffiths, i representants
del Parc Tecnològic del Vallès. L'acord valorat en 500 milions d'euros
inclou la instal·lació d'un centre de dades a Catalunya.
"""
entitats = ner(text)
for e in entitats:
print(f"{e['word']:25} → {e['entity_group']:6} (confiança: {e['score']:.2%})")
Traducció automàtica neuronal
La traducció automàtica neuronal (NMT) usa models encoder-decoder per traduir entre idiomes. Models com NLLB-200 (Meta, 2022) suporten 200 idiomes, incloent el català.
Helsinki-NLP a Hugging Face proporciona models específics per a parells d'idiomes.
Generació de text i Q&A
La generació de text (completions, Q&A, resum, etc.) és el cas d'ús estrella dels LLMs moderns. En un entorn empresarial, es poden usar via:
- API d'OpenAI (GPT-4o): per a prototypes i producció quan es tolera el cost i la dependència
- API d'Anthropic (Claude 3.5): similar, amb especial focus en documents llargs i seguretat
- Models locals (Ollama + LLaMA 3.1): per a entorns on la privadesa és crítica
# Exemple amb OpenAI API (GPT-4o)
from openai import OpenAI
client = OpenAI(api_key="la-teva-clau-api")
resposta = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": (
"Ets un assistent especialista en tecnologia que respon "
"sempre en català i de forma concisa i precisa."
)
},
{
"role": "user",
"content": "Explica en 3 punts les diferències principals entre BERT i GPT."
}
],
max_tokens=400,
temperature=0.3 # Baixa temperatura per respostes més precises i consistents
)
print(resposta.choices[0].message.content)
Resum automàtic (Summarization)
Generar un resum d'un document llarg. Dos tipus: - Extractiu: selecciona les frases més representatives del document original - Abstractiu: genera un resum nou que pot contenir frases que no apareixen al document original
Els LLMs moderns fan resum abstractiu de qualitat molt alta. Models com BART o T5 s'usen quan es vol un model lleuger i especialitzat.