Accelera la tua crescita

Natural Language Processing e chatbot, nella giungla dei contesti

"– Non è una scusa, Kala! Non continuare a difenderlo! – Imparerà… – Non imparerà! Non si impara ad essere uno di noi! [dal film Disney “Tarzan”, 1999]"

Anche se tratta da una situazione di fantasia, in questa scena del film Tarzan ritroviamo la stessa frustrazione con cui chi progetta chatbot si trova a fare i conti…

“Questo bot non capisce niente!”, “Cosa si può pretendere da un

robot…”, “L’interazione con un chatbot non è paragonabile a quella che

abbiamo tra persone”. Questi e molti altri sono i commenti di chi,

testando un bot, incappa in qualche incidente comunicativo.

« Non si impara ad essere uno di noi! »

Spesso, nonostante le migliori intenzioni, i chatbot non riescono a offrire l’esperienza utente piacevole ed efficiente ,

come la si immagina. Il gap comunicativo è un dato di fatto e questo lo

sanno bene programmatori e designer delle conversazioni, che si

prendono però a cuore le performance del proprio bot, rendendo la sua

interazione il più possibile umanizzata.

Quando clienti e prospect chiedono di introdurre un chatbot come nuovo touchpoint

della propria azienda, la loro aspettativa è quella di un assistente

virtuale smart, in grado di realizzare sistemi di dialogo naturale e

quindi basati sull’Artificial Intelligence. Applicare l’intelligenza

artificiale nell’ambito dei chatbot significa sfruttare il Natural

Language Processing (NLP) per interpretare le richieste dell’utente,

fornendo un’interazione naturale come quella tra due umani.

Ciò implica un maggiore investimento di risorse rispetto a quanto

richiederebbe la realizzazione di un basic chatbot; l’assistente smart

ha, inoltre, la necessità di appoggiarsi su una conoscenza minuziosa

degli ambiti che deve trattare, oltre a saper gestire interazioni

complesse (dal punto di vista del linguaggio) con l’utente. Per un

designer delle conversazioni e un dev questo si traduce, infatti, in decision tree diagram più articolati, oltre a un numero idealmente sempre crescente di intenti (via via che il chatbot acquisisce complessità).

In questo articolo faremo chiarezza sulla differenza tra basic e smart chatbot ,

specificando che la realizzazione di un bot efficiente non deve per

forza implicare l’applicazione dell’AI, ma a seconda delle priorità

commerciali un basic chatbot può essere la risposta idonea alle

necessità dell’azienda.

Spiegheremo inoltre come si traduce nel concreto il NLP, suddividendolo in 6 fasi e facendo emergere le implicazioni dal punto di vista linguistico .

Infine renderemo esplicite le tanto additate tortuosità linguistiche del

NLP, che mettono a dura prova la propensione ad un rapido progresso in

questo campo.

A lettura conclusa sarà chiara l’importanza di affidarsi ad un team

multidisciplinare per la realizzazione di un chatbot. La specifica

competenza dei componenti è in grado di coniugare esigenze di

programmazione, linguistiche e commerciali, facendo emergere un’adeguata

brand identity.

In una giungla sempre più popolata di chatbot, riuscire a rendere

unica l’esperienza vissuta attraverso questo affascinante touchpoint è

la chiave per portare la comunicazione aziendale ad un livello

superiore.

Come già detto precedentemente, la scelta di introdurre un chatbot

nella propria proposta di touchpoint non deve per forza implicare l’AI.

Esistono chatbot che svolgono efficientemente la funzione per cui sono

stati progettati senza avere la necessità di intrattenere conversazioni

articolate con l’utente; basti pensare ad assistenti virtuali creati per proporre offerte commerciali attraverso il marketing automation :

il bot invia all’utente sequenze automatiche di messaggi, che possono

essere impostati sulla base della propria strategia di lead generation.

Ad un input affermativo dell’utente per la proposta di offerte, il

chatbot può, ad esempio, limitarsi a proporre un carousel con le offerte attive in quel momento. L’importante è riuscire a fornire risposte il più possibile rilevanti per l’utente.

Quelli appena descritti sono

basic chatbot, semplici e basati su delle regole: ad una richiesta A

dell’utente, il chatbot fornisce una risposta B. C’è una discreta

flessibilità per quanto riguarda la comprensione di errori di battitura

ma il chatbot non è in grado di processare una richiesta sconosciuta.

Per questo, tutto ciò che il chatbot è in grado di fare deve essere chiaro all’utente fin dall’inizio.

I chatbot basati sull’Artificial Intelligence, a differenza dei precedenti, sono in grado di analizzare il linguaggio dell’utente per estrarne il significato e fornire la risposta adeguata .

Qui si cerca la rilevanza completa della risposta e della relazione

stabilita con l’utente. Questi chatbot possono comprendere un input

sconosciuto sfruttando il NLP.

La maggior parte dei chatbot in circolazione mescola i due approcci: si fondano su una complessa logica decisionale ad albero

ed utilizzano il NLP per rispondere a query sconosciute, facendo

ricadere la query in questione in uno dei rami dell’albero, quello che

ritengono coerente con la richiesta.

Questo avviene mediante i processi di matching e parsing (ossia la ricerca di una risposta o follow-up quanto più coerente possibile con il messaggio dell’utente).

Attraverso dei cosiddetti fallback (letteralmente

“alternative”) è possibile gestire questa tecnica ed evitare che il

chatbot, cercando la risposta più adatta in funzione del NLP, fornisca

una risposta sbagliata: stabilendo correttamente i contesti, l’utilizzo

dei fallback permette al chatbot di fare all’utente una

richiesta più specifica, riformulata, rimanendo quindi in quel

determinato flusso di conversazione.

Il NLP consiste nell’applicazione di algoritmi per identificare ed

estrarre le regole del linguaggio naturale. In altre parole, permette ad

una macchina di analizzare il linguaggio umano e di derivarne un significato.

Riferendoci ad un chatbot il processo di NLP consiste nello spezzare

frasi input dell’utente: agisce cioè processando la linguistica di un

enunciato in entrata, o utterance, per individuare entità ed intenti dell’utente.

Questo è possibile grazie ad alcuni step, che ora analizzeremo per

comprendere come lavora il NLP e, di conseguenza, come è strutturato il

linguaggio umano.

  • Tokenizzazione

La tokenizzazione può essere considerata una pre-analisi, che avviene

cioè prima della vera e propria elaborazione del testo scritto. Si

tratta della segmentazione del testo in unità linguistiche minime (parole, punteggiatura, caratteri alfanumerici…), che verranno elaborate successivamente.

La definizione di token va però oltre l’individuazione di unità

delimitate su entrambi i lati da spazi o dalla punteggiatura: un token

deve infatti essere linguisticamente significativo e metodologicamente

utile. Questi due vincoli dipendono dal contesto linguistico.

È molto importante la corretta identificazione delle unità, in quanto

errori commessi in questa fase si propagheranno in quelle successive.

  • Analisi Lessicale

Partendo da una tokenizzazione corretta, l’analisi lessicale (cioè la classificazione delle parole o token in categorie grammaticali )

dovrebbe risultare semplificata. In realtà dal punto di vista

linguistico è tutto molto più complesso; per un linguista le unità

minime della lingua non sono le parole, bensì i morfemi, elementi minori

dotati di significato.

Per fare un esempio, la parola “musicali” può essere a sua volta scomposta in unità arrecanti significato: music , riferito a musica e con significato di “arte che consiste nell’ideare e nel produrre successioni strutturate di suoni” , al con funzione di aggettivo e significato di “relativo a”, i con significato di plurale.

Ciascuno di questi 3 morfemi può entrare come componente di altre parole (troviamo music in musichiere, al in internazionale, i in facili).

  • Analisi Sintattica

L’analisi sintattica serve a comprendere come si combinano fra loro

le parole e come queste si organizzano in frasi; il focus in questa fase

non è sulla categoria grammaticale (sostantivo, aggettivo,

preposizione…), ma sulla funzione (soggetto, predicato,

complemento). Avere chiara la struttura degli enunciati è un aspetto

molto importante per la fase successiva.

  • Discourse Integration

Questa fase è strettamente legata alla precedente, perché riguarda il

significato di un enunciato in funzione di altre frasi facenti parte

del discorso in questione. Ci riferiamo alla necessità di identificare

un soggetto e riprenderlo poi, attraverso un pronome, nella frase

successiva. Ad esempio:

Beppe è un SEO smanettone. Lo becchiamo spesso a collaborare con dev e designer.

Per comprendere il discorso è necessario sapere che Beppe è la

persona a cui ci riferiamo con il pronome “Lo” nella seconda frase.

Il fenomeno prende tecnicamente il nome di anafora, ma può anche

verificarsi di avere bisogno della frase successiva per comprendere

quella in questione (catafora).

  • Analisi Semantica

Questo piano di analisi della lingua si focalizza sul significato dei

segni linguistici. Le difficoltà si riscontrano già a partire dalla

definizione di “significato”, concetto astratto nonchè punto d’incontro

tra lingua, mente umana e mondo esterno. L’analisi semantica esamina

alcuni aspetti del lessico (insieme di parole o “lessemi”, le unità di

analisi minime per il livello semantico). I problemi di contesto in

questo caso riguardano le occorrenze di omonimia e polisemia : lessemi con lo stesso significante (segno grafico) e diversi significati.

  • Analisi Pragmatica

Studia le modalità in cui il contesto influisce sul significato, in

modo ancora più ampio della Discourse Integration. Tocca infatti

l’ambiguità legata all’enuciazione (cercata più o meno intenzionalmente

dai parlanti), che è già difficile da gestire per un essere umano,

figuriamoci per un computer.

Come risulta dalle osservazioni del paragrafo precedente, l’aspetto

più difficile del replicare una conversazione umana riguarda il

contesto; i linguisti da sempre cercano di definire un metodo efficiente

per analizzare il significato della comunicazione a partire dal

contesto e da questi studi sono emerse delle teorie, tra cui la Speech Act Theory , Teoria degli Atti Linguistici (J.L. Austin, 1962 e J.R. Searle, 1969).

Questa implica il fatto che ogni enunciato non solo presenta

informazioni, descrive una situazione o ne sostiene la veridicità, ma

comporta il compimento di azioni concrete sulla base di un influsso

comunicativo latente.  Ad oggi il punto debole del NLP è infatti l’utilizzo degli elementi pragmatici della conversazione

(con conseguenze a livello pratico, concreto) per contribuire alla

comprensione del linguaggio nelle macchine: il vero problema è

identificare e modellare gli Speech Act , atti linguistici.

La teoria si inserisce nell’ambito della linguistica pragmatica, che

si fonda sull’uso contestuale della lingua come azione reale e concreta,

cioè l’uso di un determinato linguaggio in una data situazione

comunicativa: il contesto.

Qualsiasi enunciato linguistico è sempre contestualizzato e ha come

scopo la messa in atto di una determinata azione per ottenere un preciso

risultato. Approfondiamo meglio…

Austin delineò la propria teoria facendo notare che per ogni singolo

enunciato ci troviamo in presenza di tre tipi di atti linguistici, e

cioè locutorio, illocutorio e perlocutorio.

  • L’atto locutorio è una pura successione di elementi

    linguistici portatori di significato: consiste nella susseguirsi di

    fonemi che formano le parole, a loro volta disposte secondo le norme

    sintattiche di una lingua.
  • L’atto illocutorio è l’azione che si compie nel dire qualcosa (promessa, ordine, consiglio…). Per fare un esempio concreto, l’enunciato

Mara è appassionata di montagna ,

rivolto al collega di lavoro che vuole farle un regalo, può essere

visto come un consiglio ad acquistare dell’abbigliamento tecnico per

escursioni.

  • L’atto perlocutorio rappresenta l’effetto che si produce dicendo qualcosa: il risultato dell’enunciato

Mara è appassionata di montagna

potrebbe quindi essere l’acquisto di una maglia termica da parte del collega in cerca del regalo perfetto per Mara.

È chiaro quindi come sia frequente dover fare riferimento al contesto

situazionale per la corretta interpretazione di un enunciato.

Noi umani ce la caviamo bene nelle conversazioni: siamo capaci di

comprendere il sarcasmo, spesso riusciamo a leggere tra le righe e

sfruttiamo costantemente le informazioni contestuali quando diamo una

risposta al nostro interlocutore. I bot non ancora del tutto. Non

possono contenere informazioni contestuali per più di alcune battute

della chat e prima o poi finiranno per perdere traccia di ciò che

l’utente stava dicendo prima di porre la domanda.

Fanno appunto eccezione quelli alimentati dalla tecnologia di

elaborazione del Linguaggio Naturale: i progressi dell’AI nel NLP sono

notevoli. Ad oggi, però, la capacità di un chatbot di situarsi, intento

dopo intento, nel contesto corretto sta principalmente nell’accuratezza di chi lo progetta e lo sviluppa , nella minuziosità che permette di isolare circostanze e risvolti conversazionali attraverso una logica decision-tree .

Logica che deve tenere chiaramente conto delle implicazioni

linguistiche che potrebbero emergere in ciascuno scenario e applicabili

solo attraverso un accurato lavoro di programmazione.

È bene tenere presente che questo lavoro non riguarda solamente la fase di progettazione. La lingua cambia costantemente e il monitoraggio delle conversazioni

risulta fondamentale per il training del chatbot. È necessario un

aggiornamento continuo di parole ed espressioni, che per il bot

risultino ancora sconosciute.

La vera sfida non è creare un chatbot, ma più che altro mantenerlo e perfezionarlo con cura e costanza, affinchè evolva nell’assistente virtuale che ogni cliente sogna.

Loading...