Hai dei problemi a capire quali siano gli strumenti e le caratteristiche desiderabili e cosa cercare nei tool di Natural Language Processing (NLP) tra quelli disponibili sul mercato, al fine di migliorare i processi aziendali?
Con questo articolo introduttivo proverò ad accennare ad alcune delle più comuni tecniche utilizzate, pur cercando di rimanere ad un livello abbastanza alto perché possa aiutarti a fare una scelta consapevole, anche senza essere un tecnico o esperto del settore.
Dovremo per forza approfondire nel tempo, ma da qualche parte bisognava pure iniziare, pur mantenendo l’ulteriore scopo di farti terminare la lettura entro i prossimi 12 mesi.
Le opportunità di business te le raccontano tutti, ma non risolveranno i tuoi dubbi: per questo motivo, tuo malgrado, dovremo percorrere alcuni aspetti logici, funzionali e tecnici: non basta fermarsi a considerare le opportunità di business offerte da questi approcci.
No pain, no gain.
Comunque, per partire da un esempio e non parlare solo di teoria, proviamo a considerare la casistica dei testi registrati dai call center nei sistemi CRM aziendali in seguito ad una richiesta inbound (quindi una richiesta di supporto).
Spesso capita che:
- i contenuti specifici della richiesta non siano tracciati o siano catalogati con poca attenzione o coerenza
- oppure l’unica informazione a disposizione si riduce ad un paio di campi di testo compilati a mano dopo la chiamata, che contengono la stessa quantità di testo di Guerra e Pace e non sono analizzabili e comunque non riconducibili facilmente ad una categoria di problema.
Di cosa fare in fase di raccolta del dato, parleremo in altra occasione.
Per limitarsi invece alle necessità di analisi del testo contenuto in sistemi CRM con piattaforme di NLP, come nell’esempio sopra indicato, tratteremo qui le tecniche che permettono oggi di analizzare un testo scritto in Linguaggio Naturale (ovvero, per fare un esempio a noi vicino, in italiano scritto e parlato):
- associandolo a categorie (Text Classification):
- associandolo anche all’umore del cliente nei confronti del prodotto e/o dell’azienda (Sentiment Analysis)
- rintracciando particolari modelli linguistici (Pattern Recognition)
- estraendo informazioni specifiche e trasformando il testo, per sua natura non strutturato, in una rappresentazione strutturata utilizzabile per successive analisi (Knowledge Graph)
Sono certo che non ti è sfuggito che sto apposta evitando di parlare di riassunti, valutazione della complessità di lettura o altre simili attività che potremmo compiere sui testi, ma che rimanderemo ad altre occasioni.
Non mi ringraziare, li ho esclusi apposta per rendere il tutto più facile, lo faccio col cuore.
Come funzionano Text Classification e Sentiment Analysis
I primi due punti si affrontano, il più delle volte, con tecniche di Machine Learning (apprendimento automatico) orientate alla classificazione automatica, ossia fornendo in input ad un Classificatore (nome poco tecnico, scelto apposta per sorvolare sulla tecnologia specifica che lo implementa) un numero elevato di esempi, da cui potrà imparare:
- sulla base di categorizzazioni compilate a mano da esperti umani
- oppure creandosi da solo le categorie, per lo più sulla base di criteri statistico-matematici.
Il Classificatore cercherà poi di applicare le stesse categorie a casi futuri mai visti, secondo quanto ha appreso dagli esempi.
Un giorno parleremo più a fondo del problema specifico, del processo per la sua applicazione e dell’effettivo funzionamento, per ora fidati e ricorda che le categorizzazioni si possono apprendere.
Nel secondo caso, si ricorre spesso anche a dizionari specifici che, per tagliarla giù con l’accetta, mettono in relazione alle parole del dizionario dei “pesi” relativi a specifiche misure di Sentiment.
Tali pesi si sommano per le parole di una frase, si normalizza sul loro numero e il risultato fornirà una indicazione riguardo alla positività o negatività complessiva.
Certamente avrai capito che le reali problematiche dimensionali ed algoritmiche sono ben altre e certo non ti sarà sfuggito che un simile approccio non considera aspetti meno misurabili, quali, per esempio, l’ironia, il cui voto potrebbe confermare o ribaltare completamente il risultato.
In questo come in altri casi scopriremo che gli approcci possibili non sono quasi mai univoci, ma fin da ora possiamo confermare l’intuizione che usando queste tecniche in modo complementare si potranno ottenere risultati altrimenti non raggiungibili con una sola modalità.
Cosa si intende per Pattern Recognition
Nel terzo caso, si applicano confronti con modelli già identificati, per individuare particolari espressioni che si intendono monitorare.
Attenzione: Pattern Recognition non è:
- una semplice ricerca di parole chiave o parti di testo prefissate
- un confronto con espressioni regolari (per chi è meno tecnico, approssimiamo il concetto con “un confronto con composizione dinamica di parole predefinite”)
Vabbè, ovviamente è anche quello: se parliamo di raggiungere un obiettivo di business, non si butta via nulla.
Ma con l’#IntelligenzaArtificiale possiamo accedere, per esempio, a confronti basati su:
- Sinonimi
- Part Of Speech (ovvero tag che indichino, per farla breve, che una parola è un verbo o un sostantivo o altra categoria grammaticale)
- Radici delle parole, ovvero eliminando le declinazioni e coniugazioni (tecniche di Stemming e Lemmatizing: un’altra volta ti spiegherò le differenze, serviranno anche queste per valutare la bontà di una piattaforma di AI)
Credo sia abbastanza evidente quanto il poter tenere in considerazione questi livelli permetta dieseguire confronti enormemente più potenti che un semplice paragone di testi fissi.
Anche in questo caso notiamo che si tratta di tecniche complementari al Machine Learning, i cui vantaggi e svantaggi reciproci analizzeremo in futuro.
Ça va sans dire: avere più frecce per il proprio arco…
Come effettuare analisi avanzate attraverso i Knowledge Graph
Il quarto caso richiede l’insieme delle precedenti e capacità ancora più elevate, tra cui:
- Analisi sintattica: per parlare di #DependencyAnalysis, ruoli ed altro collegati a questo specifico discorso, occorreranno più articoli, quindi per ora portati a casa che è utile alla comprensione eseguire non solo l’analisi grammaticale, ma anche l’analisi logica come a scuola, la più precisa possibile
- Anaphora Resolution: altro argomento “pesante” già da solo, già accennato in precedenti post ed articoli; per ora ricorda solo che per capire di cosa si sta parlando è fondamentale identificare a chi si riferisce un pronome e ricostruire le parti del discorso omesse, tipo i soggetti sottintesi.
Il risultato, il Knowledge Graph, è una specie di diagramma in cui i concetti espressi nel testo sono rappresentati come nodi, messi in relazione logica tra di loro con degli archi
Nell’esempio sopra riportato, viene presa la parte introduttiva della wikipedia che riguarda Napoleone a sinistra, che viene trasformata automaticamente nel Knowledge Graph a destra.
Nella parte testuale ingrandita al centro, vediamo la comprensione dei “complementi” (ruoli, in realtà, nel gergo dell’NLP), ma soprattutto, tra parentesi graffe, che si va a ricostruire che è Napoleone il soggetto sottinteso nel testo.
Per semplificare al massimo, otteniamo una sorta di rappresentazione grafica dell’analisi logica del testo, appunto.
Non è solo figo da vedere, è anche utile perché possiamo percorrere nodi ed archi per fare domande ed ottenere risposte specifiche .
Vi ricordate che a scuola chiedevano “a cosa risponde il complemento di moto da luogo?”: ecco, se “risponde” una idea è provare a percorrere l’arco che rappresenta il ruolo giusto per cercare la risposta giusta.
Conclusioni
A mille ce n’è, diceva una canzoncina che chiudeva il racconto di una favola per bambini e ne anticipava la successiva.
Qui non si tratta di favole, ma altrettante sono le possibilità, quindi ci fermeremo.
A fatica, ben sapendo che finché non arriveranno gli articoli di approfondimento dormiremo male, ma dobbiamo farci forza.
Al di là dei tecnicismi, puoi migliorare il servizio con sistemi NLP ibridi, cioè in grado di offrire, in modo complementare, le caratteristiche sopra esaminate.
I benefici che potresti ottenere, nel caso preso in considerazione sono, per esempio:
- analizzare le problematiche per per capire le più urgenti ed impattanti
- migliorare la comunicazione e i prodotti
- capire l’umore dei clienti nei confronti della tua azienda
- identificarne pregi e difetti che erano sfuggiti all’analisi interna
- raccogliere e identificare le nuove esigenze dei clienti per espandere l’offerta
Ovviamente ALGAKNOW, il modulo più avanzato per la Comprensione del Linguaggio Naturale (Natural Language Understanding – NLU in inglese) di ALGAWARE è in grado di utilizzare tutte queste tecnologie e che anche gli altri moduli della piattaforma ne utilizzano una parte.
Collegati a me per ulteriori esempi ed approfondimenti sull’Intelligenza Artificiale e l’Elaborazione del Linguaggio Naturale (NLP, in inglese)
Leave a reply