Salta el contingut

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.