Natural Language Generation, come andare oltre i chatbot e gli assistenti vocali

Natural Language Generation è uno strumento utile per convertire dati strutturati in un linguaggio naturale, informazioni nella lingua scritta e parlata dagli esseri umani e rende disponibili sistemi che producono contenuti testuali senza l’intervento umano. I vantaggi sono risparmio di tempo, creazione di contenuti in modo automatico e scalabile, in tempo reale. [...]
Paolo Dotti

Aton It

Natural Language Generation
  1. Home
  2. Intelligenza Artificiale
  3. Natural Language Generation, come andare oltre i chatbot e gli assistenti vocali

Il Natural Language Processing, nell’insieme delle applicazioni, va ben oltre i chatbot e gli assistenti vocali, dove comunque trova una immediata applicazione e soprattutto le motivazioni e una fonte di evoluzione continua. Tra tutte le tecnologie e gli algoritmi racchiusi nel NLP, un sottoinsieme di queste serve a costruire testi in linguaggio naturale, che siano più familiari all’essere umano e che possibilmente siano anche più comprensibili di un semplice testo composto da frasi precostituite e codificate: il Natural Language Generation.

Cos’è il Natural Language Generation

Per Natural Language Generation intendiamo l’insieme di tecniche e algoritmi per la generazione automatica di informazioni scritte in linguaggio naturale che è quello della lingua parlata, quello naturale per gli esseri umani; nel caso applicativo di chatbot e assistenti vocali fa parte dell’ultima fase del processo in cui prima viene compreso un input in linguaggio naturale, viene trasformato in un insieme di dati strutturati, ne viene elaborata una risposta o un’azione e infine l’output viene trasformato in un linguaggio simile a quello di input che spesso è la lingua parlata e a volte tradotto in un’altra lingua per i sistemi più evoluti.

A questo proposito non si può ignorare uno dei trend di ricerca per lo sviluppo di sistemi che, nel campo degli assistenti vocali, possano fare la traduzione simultanea di un discorso elaborando tutta la catena di processo in tempo reale, dall’ascolto del messaggio in lingua parlata, la trasformazione in strutture dati, la comprensione semantica, l’elaborazione e la traduzione in un’altra lingua, la generazione del testo tradotto e la trasformazione da testo in lingua parlata (Text To Speech).

In “Breeding Gender-aware Direct Speech Translation Systems” si può trovare una ricerca fatta in contesti di traduzione simultanea (senza trascrizione intermedia) con l’analisi della voce e del riconoscimento del genere in input e la riproduzione del genere in output. Adesso però abbandoniamo un momento il contesto principale trainante e ampiamente conosciuto per citare alcune tra le applicazioni interessanti e utili che il Natural Language Generation rende possibili. La sfida che viene affrontata nei diversi scenari applicativi è partire da testi strutturati e molto complessi per generare una rappresentazione in linguaggio naturale anche in più lingue con un livello di complessità adeguato al lettore o all’ascoltatore. Al momento sembra che GPT-3 sia il modello che garantisce i risultati migliori, ma qui ci focalizziamo principalmente sui contesti applicativi più che sul modello utilizzato.

natural language generation

Supporto nella composizione di testi

Un sistema come quello offerto da Google, Gmail’s Smart Compose, lo “smart composer” nella mail, permette di avere i suggerimenti durante la scrittura di testi, non limitati alla singola parola come avviene sullo smartphone; infatti, suggerisce la frase completa e apprende a ogni messaggio le caratteristiche del linguaggio usate dalla persona, così che gradualmente risulta in grado di completare le frasi adeguandosi allo stile di chi sta scrivendo. Siamo in un caso di utilizzo in tempo reale e in modalità interattiva; il sistema NLG propone una composizione di testo in base a uno stile appreso precedentemente.

Non è un caso isolato, ci sono sistemi che sostituiscono l’essere umano nella creazione di testi, come per esempio il seguente.

Se state pensando ai tweet automatici o ai post sui social, è un caso reale ma azzardiamo di più; parliamo di “robot journalism” che in alcuni casi è utilizzato per produrre tweet con contenuti quotidiani e a volte ripetitivi in base a dei template (Development of Robot Journalism Application) ma in altri casi è un sistema in grado di filtrare le fake news, produrre contenuti automatici scritti in modo da attrarre l’attenzione dei lettori. I contenuti possono essere notizie costruite sulla base di risultati sportivi, notizie meteo ed eventi naturali, sommari di articoli scritti giornalisti per la ripubblicazione su siti web, riscrittura di articoli da diverse fonti per creare un’informazione neutra. Questo utilizzo non sarà concorrenziale al lavoro di giornalista ma piuttosto sarà un sistema che fa da assistente virtuale alla creazione di contenuti in modo più fruibile e adatto sia al lettore sia al mezzo di diffusione, stampa o web.

Analisi e descrizione di codice

Un caso particolare dell’analisi di un testo e della produzione di una descrizione più comprensibile è quello in cui il testo strutturato è un codice sorgente. Rispetto al linguaggio naturale, un linguaggio di programmazione è molto astratto inoltre contiene molte dipendenze da moduli di terze parti che ne rendono difficile la comprensione. Ci sono ricerche di settore in cui ci si preoccupa della descrizione di frammenti di codice in linguaggio naturale. Nel lavoro “A Multi-Module Based Method for Generating Natural Language Descriptions of Code Fragments” si utilizza un metodo unico rispetto ad altri precedenti, in quanto si focalizza su interi blocchi di codice invece che sulla singola riga. Nella descrizione di un codice sono stati rilevati tre aspetti critici:

  1. logica: la descrizione in linguaggio naturale deve rispettare la logica e la modalità di lettura umane;
  2. sintesi: il testo generato non deve essere troppo lungo altrimenti si ridurrebbe lo scopo del lavoro;
  3. completezza: parte dell’informazione potrebbe essere persa nella traduzione da codice a testo, si presuppone che tale informazione non sia fondamentale per la comprensione. I risultati di esperimenti fatti su diversi codici mostrano che si riescono a generare descrizioni con prestazioni migliori in termini di accuratezza e semplicità rispetto ad altri modelli esistenti.

Alcuni casi di applicazione del Natural Language Generation

Health care

Il settore salute e sanità offre moltissimi campi di applicazione dell’intelligenza artificiale e dell’elaborazione del linguaggio naturale e sebbene possa sembrare strano, l’argomento non è nuovo e già da almeno vent’anni si era a conoscenza e si discuteva della sua importanza (Journal of the American Medical Informatics Association Natural Language Generation in Health Care).

La qualità della comunicazione tra persone esperte tra esperto e paziente è fondamentale; l’uso di terminologie differenti anche tra esperti del settore per descrivere uno stesso argomento può rendere difficile la comunicazione globale e la creazione di report adeguati. Nella pubblicazione citata sono state studiate le tecniche per produrre, partendo dagli stessi dati strutturati, documenti con diversi stili, terminologia e contenuti per soddisfare le diverse esigenze informative in ambito sanitario. Sono riportati alcuni esempi di applicazioni:

  • Produzione di descrizioni di sistemi esperti e apparecchiature in modo sufficientemente esaustivo e dedicato alla diffusione; lo scopo è raccomandare l’utilizzo di sistemi esperti a destinatari esperti di settore; la descrizione deve fornire motivazioni razionali all’adozione di tali sistemi oltre alle caratteristiche tecniche.
  • Produzione di materiale informativo per i pazienti con lo scopo di ridurre stati di ansia da informazioni non chiare e dubbi, migliorare l’adattamento spontaneo del paziente a cure e comportamenti, abituare il paziente a gestire situazioni croniche e soprattutto semplicemente migliorare la soddisfazione del paziente. La convinzione è che se i pazienti sono meglio informati ci siano minori dispersioni di tempo e denaro oltre a una salute migliore.
  • Generazione di report contenenti le informazioni sui progressi di un paziente soprattutto in casi di passaggio di informazioni tra diversi professionisti e strutture.
  • Produzione di descrizioni di concetti medici che di solito sono espressi in linguaggio molto tecnico; questo è un caso in cui se la descrizione è disponibile in più lingue lo sforzo viene ampiamente ripagato.

Risulta evidente la necessità di descrizioni in linguaggio naturale di informazioni strutturate e se circa vent’anni fa lo sforzo non valeva il risultato con la tecnologia e la capacità computazionale attuali, la situazione si è rovesciata e i risultati ottenibili valgono ampiamente lo sforzo richiesto in termini di tempo e risorse.

natural language generation

Sistemi di raccomandazione

I sistemi di raccomandazione (Recommendation System) sono da anni in campo soprattutto in e-commerce, per suggerire prodotti e dare consigli per acquisti, investimenti, attività e quant’altro. Il salto prestazionale di un tale sistema si ha con una espressione testuale personalizzata che aiuti a capire i dettagli, che sia trasparente e persuasiva (Generate Natural Language Explanations for Recommendation). Per generare i consigli per gli acquisti si possono adottare due principali modi di procedere:

  • Per template: le parole chiave, ovvero gli interessi del cliente sono modellati secondo le caratteristiche dei prodotti e vengono inserite in template predefiniti. Questo metodo limita il potere espressivo di un consiglio personalizzato e generalmente richiede un intervento umano.
  • Per raccolta di informazioni (Information Retrieval): questi metodi si basano sull’utilizzo di informazioni inserite nei siti web da altri utenti come recensioni e su abitudini di altri utenti arricchendo la diversità espressiva nelle frasi di descrizione dei prodotti.

Nel lavoro citato viene implementato un meccanismo di attenzione che dia più peso alle caratteristiche a cui è più sensibile un utente e quindi ad alcune parole chiave, per migliorare il livello di personalizzazione dei messaggi; il sistema inoltre è in grado di generare messaggi in più frasi trasmettendo una maggiore sensazione di linguaggio naturale.

Nella pubblicazione “Distinctive Slogan Generation with Reconstruction” ci si concentra più in particolare sulla costruzione di slogan a partire dalla descrizione di un articolo; lo scenario applicativo è quello di un e-commerce dove oltre agli articoli in vendita sono presenti consigli per gli acquisiti, in generale messaggi per attrarre più visitatori e per evidenziare alcuni prodotti.

Cos’è il Natural Language Generation persuasivo

Il “Persuasive NLG” è un sistema che può creare discorsi focalizzati alla persuasione di un utente su uno specifico argomento. Alcune ricerche (Persuasive Natural Language Generation) dimostrano che modelli pre-addestrati come per esempio GPT-3, possono raggiungere risultati sensazionali; tali modelli consentono di creare testi come se fossero scritti da esseri umani e di ottimizzarne il contenuto in modo da indurre persuasione in chi li legge o li ascolta. Il contesto applicativo va dalla semplice pubblicità di successo all’azione psicologica e forse curativa dei soggetti destinatari. Non ci sarebbe da stupirsi se un giorno avremo uno psicologo virtuale ottimizzato sul carattere del paziente.

Già in passato, nel 1966, Joseph Weizenbaum creò un software che avrebbe potuto essere un utopico psicologo virtuale, si tratta di Eliza. In realtà lo stesso autore disse che il software realizzava una parodia delle domande di uno psicoterapeuta inoltre era realizzato con l’utilizzo di espressioni regolari sostituendo parole chiave in frasi già preparate o modificando la frase di input in output sostituendo solo alcune parole e ripetendo il concetto; ma i risultati degli attuali sistemi di NLG, realizzati con algoritmi basati su reti neurali, sono molto più efficienti nella simulazione di un dialogo umano.

Conclusioni

Il Natural Language Generation è uno strumento utile per convertire dati strutturati in un linguaggio naturale, informazioni nella lingua scritta e parlata dagli esseri umani; è possibile disporre di sistemi che producono contenuti testuali senza l’intervento umano.

Tra i vantaggi nell’uso di NLG possiamo trovare risparmio di tempo, creazione di contenuti in modo automatico e scalabile il tutto in tempo reale. Tra le possibili applicazioni pensiamo ai contesti in cui in sostituzione di un report o di una comunicazione schematica si può produrre un documento nel linguaggio naturale più familiare e comprensibile; messaggi informativi nel settore della logistica, nel settore trasporti, nelle diverse branche della medicina, nella fruizione di contenuti web, nell’esplorazione di basi di dati. La necessità e la creatività determinano i limiti applicativi.

Video: Natural Language Generation – Google

FacebookTwitterLinkedIn