Passa ai contenuti principali

Post

VADER o DistilBERT?

In questo esperimento ho utilizzato Orange Data Mining per analizzare il sentimento di alcune recensioni di prodotto. Il problema di partenza era semplice: trasformare una recensione testuale in un giudizio automatico, per esempio positivo, negativo o neutro. Il primo approccio è stato quello con VADER, tramite il widget Sentiment Analysis di Orange. Il flusso era: File → Select Columns → Corpus → Sentiment Analysis → Data Table  VADER affronta il problema in modo lessicale: cerca parole positive e negative nel testo, assegna punteggi e produce un valore finale chiamato compound. Per esempio, parole come: excellent good recommend  spingono il risultato verso il positivo, mentre parole come: terrible defective disappointing  lo spingono verso il negativo. Questo metodo è semplice, veloce e abbastanza trasparente. Il suo limite è che non interpreta davvero il contesto complessivo della frase. Una recensione come: Decent, but the value for money could be better....
Post recenti

Prevedere il futuro con PyTorch

Nel mondo della Data Science si tende spesso a dividere i professionisti in due fazioni: chi scrive righe di codice puro dall'alba al tramonto e chi si affida alla velocità delle piattaforme visuali e No-Code (come Orange Data Mining, KNIME o RapidMiner). Ma cosa succede quando si devono analizzare dati complessi come le serie temporali?  Sbloccare il vero potenziale dei modelli predittivi sequenziali richiede un approccio ibrido. Alcuni widget di default per il Machine Learning nei software visuali faticano a gestire la dipendenza temporale dei dati e mancano di architetture nate per la dimensionalità sequenziale.  Se vuoi implementare reti ricorrenti profonde senza rinunciare alla comodità dell'interfaccia grafica, c'è una soluzione nuova. Quale? Il widget Python Script supportato da un Canvas strategico. Invece di abbandonare l'interfaccia visuale, ho costruito un workflow ibrido in cui lascio a Orange il lavoro noioso di manipolazione temporale e indicizz...

Un esperimento no-code

Orange Data Mining Random Forest batte la rete neurale con Orange Data Mining.  Ho realizzato un semplice esperimento di classificazione supervisionata con Orange Data Mining, utilizzando il classico dataset Iris.  L’obiettivo era riconoscere automaticamente la specie di un fiore a partire da quattro misure: lunghezza e larghezza del sepalo, lunghezza e larghezza del petalo. L’aspetto più interessante è che l’intero esperimento è stato costruito in modalità no-code: nessuna riga di Python, nessuno script, nessuna programmazione manuale.  Il flusso di lavoro è stato creato collegando graficamente i widget di Orange: caricamento dati, preprocessing, modello, valutazione e matrice di confusione. In questo modo anche un’attività tipica del machine learning — addestrare e confrontare modelli predittivi — diventa accessibile attraverso un ambiente visuale. Ho confrontato i seguenti due modelli: Random Forest, un algoritmo di machine learning basato su un insieme di alberi decis...

Un RAG su misura

I sistemi RAG ( Retrieval-Augmented Generation ) sono ormai uno standard: un modello linguistico non risponde più “a memoria”, ma recupera i frammenti di testo più pertinenti da una base documentale e li usa come contesto per generare la risposta.  Sulla carta il meccanismo è lineare: si dividono i documenti in chunk , si calcola la similarità vettoriale e si passa tutto al modello.  Nella pratica, costruirne uno da zero — anziché affidarsi a una libreria preconfezionata — è un esercizio che smonta parecchie certezze. La prima smentita riguarda il retrieval : si tende a pensare che sia solo una questione di vettori, distanze e similitudine del coseno. In realtà, il vero collo di bottiglia è quasi sempre a monte, nella segmentazione del testo.  Un chunk troppo corto perde il filo del discorso; uno troppo lungo diluisce la rilevanza metrica e introduce rumore. In un sistema fatto in casa l'impatto di queste scelte è immediato: se il recupero fallisce, quasi mai...

Un partner di peer-review

C'è un modo pigro di usare l'intelligenza artificiale: fare una domanda, leggere la risposta e fidarsi.  E c'è un modo emancipato: condurre un interrogatorio strutturato, in cui ogni prompt ha una funzione precisa e l'ultima parola spetta al tuo senso critico, non al modello. La differenza non è filosofica, è pratica. Un modello linguistico non è un database di fatti: è una mappa probabilistica di relazioni tra concetti .  Con una domanda generica, la risposta tende verso la media divulgativa — quella piena di analogie zoppe e semplificazioni che avete già letto e sentito mille volte.  Con un prompting strutturato, restringete lo spazio di campionamento verso i quadranti più densi e rigorosi di quella mappa. Ho messo alla prova per voi che mi seguite questo approccio su uno dei temi più maltrattati dalla divulgazione: l'entanglement quantistico. Ecco le sei mosse, in ordine, con il perché di ciascuna. Mossa 1 — Prima di costruire, bonifica il terreno Il primo prompt...

Il polo protagonista

Chi non ha visto nella sua vita almeno una volta l'insieme di Mandelbrot: quella figura nera contornata di filamenti psichedelici che è diventata l'icona non ufficiale del caos matematico. E pensare che basta una piccolissina modifica nella formula del frattale per ottenere un risultato visivo completamente diverso — con un comportamento geometrico quasi opposto. Il Mandelbrot classico nasce da una regola semplicissima: z(n+1) = z(n)² + c Si parte da z₀ = 0, si itera, e si guarda se la successione esplode o resta limitata. Punto per punto sul piano complesso, questo produce l'insieme che tutti conoscono. Nella versione che qui vi propongo, il quadrato è finito al denominatore: z(n+1) = 1/z(n)² + c Sembra un dettaglio, ma cambia la natura matematica dell'oggetto: non è più un polinomio ma una funzione razionale, con un polo in z = 0 (dove la formula esplode, essendo una divisione per zero). Per questo la successione non può più partire da z₀ = 0 come nel Mandelbrot origi...

Dall'idea al prototipo giocabile in tempo record

C'è un momento, nello sviluppo di un videogioco, in cui un'idea brillante rischia di spegnersi.  Non perché sia sbagliata, ma perché la distanza tra “ce l'ho in testa” e “lo posso provare” è troppo lunga. Servono ore di setup, righe di codice ripetitivo, una UI da cablare, sistemi da collegare.  Quando finalmente il prototipo gira, l'entusiasmo iniziale si è già raffreddato. È proprio qui che l'accoppiata tra un'IA agentica e un motore come Unity sta cambiando le regole del gioco. Unity è il mondo. È il motore che trasforma asset, fisica, luci e input in un'esperienza giocabile e multipiattaforma, dallo smartphone al desktop. Ti dà la scena, gli oggetti, il ciclo di gioco e un ecosistema enorme di risorse pronte all'uso. L'IA agentica è l'acceleratore. La differenza rispetto a un semplice assistente che suggerisce sta tutta in quell'aggettivo: un'IA agentica non si limita a proporre frammenti di codice, ma pianifica, esegue pa...