Più volte in passato abbiamo parlato della capacità del motore di ricerca di Google, di
effettuare analisi dei testi che vadano oltre la pura estrazione delle parole chiave. Google è un motore di ricerca semantico. E poco più di un anno fa avevamo scoperto che aveva anche un sistema (il
Large-Scale Sentiment Analysys for News and Blog per capire l'umore con cui è stato scritto un testo (vedi
Google e la reputazione digitale). Avevamo anche parlato di un simile sistema di Microsoft (vedi
Microsoft Codename "Social Analytics") per capire l'opinione dei consumatori sui social network, da usare come strumento per il
Social CRM.
Tramite un
post su Google+ di
Michael Manoochehri, ingegnere di Google,
scopriamo che questa strabiliante innovazione è a disposizione di tutti gli sviluppatori e può essere implementata tramite le
Prediction API.
Già conosco da un po' le Prediction API (anche se ancora non ho avuto il tempo di fare esperimenti), ma non sapevo che avessero anche questa caratteristica. Queste primitive di programmazioni possono essere usate tramite servizi
REST, nell'ambito dei propri software e permettono di:
- Analizzare l'umore e l'opinione dei clienti (ad esempio per capire se una certa recensione è stata negativa o positiva)
- Decidere l'instradamento dei messaggi a secondo del loro contenuto
- Capire la lingua di un testo
- Classificare email e documenti
- Churn Analisys (lo spostamento dei clienti da una azienda ai suoi concorrenti e viceversa)
- Rilevamento dello spam
- Rilevamento di attività sospetta (es: commenti artificiali)
- Scelta di raccomandazioni (suggerire all'utente i prodotti o le pagine da visitare sul proprio sito, analizzando il comportamento precedente)
- Predizione degli acquisti (suggerire all'utente i prodotti da acquistare analizzando gli acquisti precedenti)
- Scelta automatica di categorie e tag per un testo (immaginate di avere un sito di news, il sistema automaticamente sceglie i tag più adatti e la categoria in cui inserire l'ultimo articolo inserito)
Obiettivamente sono tutte caratteristiche entusiasmanti. Il post di Michael Manoochehri ci mostra una applicazione dell'analisi dell'umore ed in particolare ci indica un articolo in cui si spiega come sono state usate le Prediction API per
analizzare i messaggi su Twitter di una certa area geografica per capire se il contenuto era, in prima battuta, a proposito del tempo meteorologico. In caso affermativo il sistema cerca di capire se sta facendo bel tempo o cattivo tempo a secondo di quello che è stato scritto. L'articolo ha un titolo divertente:
Training the Cloud With Crowd.
Nell'articolo viene spiegato, che sono
state usate un milione di persone in crowd sourcing per addestrare il sistema di cui stiamo parlando. Il meccanismo che viene spiegato, sembra quello delle
reti neurali, in cui non viene creato un algoritmo per ottenere un output da un dato input, bensì, vengono mostrati al sistema un elevato numero di input ed output, tramite i quali viene costruito un modello dal sistema stesso per mostrare il risultato più probabile.
L'addestramento (il fornire una serie di accoppiate input-output) serve per migliorare la qualità del risultato. Un po' come avviene per certi riconoscitori vocali, che devono essere addestrati, con una serie di frase campione con la voce dell'utente.
Nella fase di addestramento ogni input di test è stato sottoposto a cinque altre persone. È molto interessante che s
olo nel 44% dei casi il giudizio sulla frase analizzata sia stato unanime. Il che ci dice quanto sia complicato comunicare, e soprattutto quando sia difficile che una macchina possa riuscire a dare risultati che si avvicinino ad un umano, dato che l'interpretazione non è univoca.
Vi rimando all'articolo originale per tutti i dettagli dello studio che hanno realizzato, per chi ha interessa ad approfondire.
Il risultato di questo lavoro, può essere provato a questo indirizzo:
http://www.sproutloop.com/prediction_demo/
Sentiment Analisys tramite le Prediction API
Una particolarità di questa demo è che viene utilizzato anche Google Maps, ma a differenza di molti altri casi, qui viene utilizzato come sistema di input e non di output di informazione. Ovvero si seleziona sulla mappa la zona del mondo nella quale cercare i tweet sul tempo da analizzare e poi nella parte destra in una semplice tabella si possono vedere i tweet trovati ed il risultato dell'analisi.
Personalmente ho trovato la demo molto educativa, tecnicamente parlando. Ci apre una finestra sull'evoluzione semantica che potrebbero avere i software nei prossimi anni. Ed ha aumentato il mio desiderio di sperimentare le Prediction API.
Happy coding. :-)