Perché Azure AI Language per l’analisi del testo
Azure AI Language è il servizio unificato che raccoglie le capability di Natural Language Processing di Azure dietro un unico endpoint e una singola resource key. Per l’esame è fondamentale distinguere le feature prebuilt (pronte all’uso, nessun training) da quelle customizable (richiedono un progetto e dati etichettati). In questa unità ci concentriamo sulle prebuilt, che coprono la maggior parte degli scenari di text analytics senza alcun addestramento.
Tutte le prebuilt condividono un pattern di chiamata: invii un array di documents (ciascuno con id, text e opzionale language), e ricevi risultati con confidence score normalizzati tra 0 e 1. Il servizio impone limiti su numero di documenti per richiesta e dimensione del testo, quindi per volumi elevati si usa l’elaborazione asincrona (long-running operation) invece delle chiamate sincrone.
Sentiment analysis e opinion mining
La sentiment analysis classifica il testo come positive, negative, neutral o mixed, restituendo tre confidence score (positivo/neutro/negativo) sia a livello di documento sia a livello di singola frase. Questo è un punto chiave: il verdetto aggregato del documento può differire dai verdetti per-frase.
L’opinion mining (aspect-based sentiment) è un’opzione attivabile che scompone l’opinione in target (l’aspetto valutato, es. “the room”) e assessment (il giudizio, es. “clean”). Serve quando devi sapere cosa piace o non piace, non solo il tono generale — tipico nell’analisi delle recensioni.
Named Entity Recognition, entity linking e PII
- Named Entity Recognition (NER): identifica entità e le assegna a categorie predefinite (Person, Location, Organization, DateTime, Quantity…) con confidence score. È il modello generico: non serve training, ma copre solo le categorie standard.
- Entity linking: disambigua l’entità collegandola a una voce univoca della knowledge base (Wikipedia), risolvendo l’ambiguità (es. “Mars” pianeta vs azienda) e restituendo un URL.
- PII detection: riconosce e permette di redigere informazioni personali (email, numeri di telefono, IBAN, SSN). Include il dominio
PHIper dati sanitari e restituisce anche il testo con i valori mascherati (redactedText).
Key phrase extraction e language detection
- Key phrase extraction: estrae i concetti principali del documento come lista di stringhe, utile per indicizzazione e riassunti. Non fa NLU profonda: individua i punti salienti, non le relazioni.
- Language detection: restituisce il linguaggio predominante con codice ISO e confidence. È spesso il primo passo di una pipeline, perché molte feature funzionano meglio se il
languageè dichiarato esplicitamente invece di essere auto-rilevato per ogni chiamata.
Prebuilt vs Custom: la scelta architetturale
Il discrimine da ricordare all’esame è la copertura del dominio. Se le entità che cerchi rientrano nelle categorie standard, usi il NER prebuilt. Se invece devi estrarre entità specifiche del tuo business — es. “codice polizza”, “numero lotto”, “modello di ricambio” — il prebuilt non le conosce e devi passare a Custom NER: crei un progetto in Language Studio, etichetti i documenti, addestri e pubblichi un modello. Stesso ragionamento per la classificazione tematica personalizzata (Custom Text Classification).
POST {endpoint}/language/:analyze-text?api-version=2023-04-01
{ "kind": "SentimentAnalysis",
"parameters": { "opinionMining": true },
"analysisInput": { "documents": [ { "id": "1", "language": "en", "text": "..." } ] } }
Trappole tipiche d’esame
- Scenario: devi estrarre “numero contratto” e “codice prodotto” dai ticket → Custom NER, non il NER prebuilt: le categorie di dominio non esistono tra quelle standard.
- Scenario: il documento risulta
positivema una frase è chiaramente negativa e il cliente se ne lamenta → è normale: il sentiment restituisce punteggi per-frase che possono divergere dall’aggregato di documento; leggi il livellosentences, non solodocument. - Scenario: serve mascherare email e numeri di carta prima di archiviare i testi → PII detection con
redactedText, non NER generico né key phrase extraction. - Scenario: vuoi sapere quale aspetto del prodotto è criticato, non solo il tono → attiva opinion mining (target + assessment), la semplice sentiment analysis non basta.
- Scenario: distinguere “Amazon” fiume da “Amazon” azienda → entity linking (collega alla knowledge base), mentre il NER restituirebbe solo la categoria generica.