Non è strano notare quanto si stia evolvendo la tecnologia del riconoscimento del linguaggio naturale e dell’analisi dei testi scritti in linguaggio naturale. Alla portata di tutti e in evidenza sul mercato, ampiamente pubblicizzati, sono ormai ben diffusi le chatbot o assistenti virtuali e soprattutto gli assistenti vocali, con i loro kit di integrazione con diverse applicazioni e dispositivi domestici; si può tranquillamente avere una casa domotica gestita tramite un assistente vocale e in questo campo i limiti sono solo la fantasia e la creatività. Alla base di queste tecnologie affascinanti ci sono almeno due pilastri fondamentali di comprensione del linguaggio naturale, il Natural Language Processing (NLP), in particolare la sua parte Natural Language Understanding (NLU), e Automatic Speech Recognition (ASR).
Definizioni di NLP, NLU e ASR
Per NLP intendiamo l’insieme di tecniche e algoritmi per il trattamento automatico delle informazioni scritte in linguaggio naturale; per NLU intendiamo la parte di NLP che si occupa della comprensione del significato di un testo andando oltre la classificazione; per ASR si intende il riconoscimento della lingua parlata e la sua trascrizione in testo.
Senza dubbio chatbot e assistenti vocali sono gli esempi più in vista e più popolari basati su NLP ma oltre questo primo strato molto popolare si trovano pubblicazioni scientifiche e progetti di ricerca con un enorme valore innovativo in un vasto insieme di scenari applicativi; in questo articolo vediamo alcuni esempi basati su pubblicazioni recenti; i primi esempi di applicazioni sono abbastanza giustificati in una società in evoluzione, gli ultimi sono più elaborati e ricercati con applicazione in ambiti apparentemente estranei alle tecnologie usate, ma con un grande futuro. Alla base c’è sempre l’analisi di un testo scritto, proveniente da fonti social, da libri, da ogni sorta di pubblicazione o documento oppure dalla trascrizione di un parlato, ma è sorprendente la quantità di contesti in cui si riescono ad applicare queste tecniche. Il NLP può essere il cuore del sistema oppure può essere affiancato ad altri metodi basati su Machine Learning e su reti neurali con lo scopo di ottenere risultati migliori.
La voce del web
Uno degli utilizzi già abbastanza diffuso è quello che si può chiamare l’ascolto e l’analisi della “voce del web”; si tratta di raccogliere, sempre in modo legale, testi dal web tramite alcuni canali tra cui i social, le testate giornalistiche, i commenti sui blog per estrarre opinioni, valutazioni e il “sentiment” dei post. Queste informazioni proprio perché provenienti dal web sono in gran parte alla portata di tutti, gratuite e oltretutto con una debole protezione rispetto alle leggi sulla protezione dei dati e sulla privacy. Lo scopo delle aziende che fanno attività di opinion mining è quello di fornire supporto alle aziende clienti per migliorare le strategie commerciali e di marketing, per capire l’opinione della clientela relativa a un marchio o a un’azienda, per capire le tendenze di mercato o le preferenze della popolazione e lanciare nuovi prodotti o scegliere in modo ottimale le zone di espansione. Saper interpretare l’orientamento e le opinioni della popolazione, le recensioni online, fornisce una posizione di vantaggio per azioni di marketing di successo.
Classificazione di fake news e bullismo tramite Natural Language Processing
I siti social sono un terreno fertile per notizie fasulle, espressione di diversi sentimenti sia nel bene sia nel male; all’aumentare dell’utenza di internet e dei siti social è inevitabile un aumento di situazioni di cyberbullismo. Questi sono i motivi per cui è diventato importante implementare e continuare a perfezionare la rilevazione di fake news, la rilevazione di eventi di cyberbullismo [1], l’identificazione del sarcasmo [2] e di altri sentimenti. Ma si può andare un po’ oltre e per esempio [3] effettuare una selezione di pochi argomenti di discussione e focalizzarsi sull’analisi dei tweet di contenuti relativi al COVID-19 e a teorie cospiratorie sulla tecnologia 5G per intercettare la diffusione di disinformazione. Le tecniche NLP in questi casi sono usate insieme a reti neurali basate su grafi (GNN, Graph Neural Networks) che si prestano bene alla modellazione della struttura di un social network; l’analisi dei testi può essere fatta con diversi metodi specifici di NLP e anche tramite strumenti già evoluti come Bert. La modellazione con reti GNN, analizzando i dati strutturali della rete, permette la distinzione di differenti teorie cospiratorie legate al COVID-19.
Natural Language Processing in campo medico e farmaceutico
Ecco uno dei casi in cui l’analisi di testi scritti apparentemente non produce valore aggiunto, invece ci sono evidenze di lavori e soprattutto attività di ricerca in cui si compiono grossi passi nella comprensione della scienza. Sono state sperimentate tecniche di NLP e di Computer Vision per identificare testi e immagini da documenti Pdf riguardanti ricerche biomediche ed estrarre informazioni sui metodi sperimentali descritti; data la quantità di pubblicazioni scientifiche di settore, la classificazione manuale di informazioni specifiche diventa onerosa mentre con l’uso delle giuste tecniche può essere molto facilitata. [4]
Una situazione analoga si ha nel caso delle compagnie farmaceutiche che ricevono annualmente una notevole quantità di informazioni sulle interazioni tra i medicinali, gli effetti indesiderati o collaterali, l’efficacia del trattamento; estrarre manualmente una conoscenza generale ad alto livello da tali informazioni è un compito arduo. Le informazioni sono disponibili in formato testo e provengono da diverse fonti, sia esperti in materia sia da pazienti, così che il risultato è un insieme di testi non strutturati, non omogenei e con diversi stili di scrittura e vocabolario. L’insieme di tecniche prese da machine learning e Natural Language Processing sembra uno strumento promettente per estrarre conoscenza da questo insieme di testi non strutturati [5]. Le stesse tecniche sono state usate ampiamente in campo medicale soprattutto in relazione all’EHR (Electronic Health Record) per l’identificazione degli eventi clinici. Gli argomenti estratti da queste analisi sono risultati di rilevante interesse per gli esperti e promettono miglioramenti nella cura dei pazienti.
La maggior parte dei dati prodotti dagli esseri umani sono in formato testo e principalmente sui social media, così che l’analisi delle instabilità e dei conflitti in tali aree diventa il terreno ideale su cui applicare le tecniche di NLP. In alcuni lavori [6] viene dimostrata l’applicabilità delle tecniche di NLP per ricerche in psicologia quantitativa, in particolare per studiare situazioni di conflitto, disagio e instabilità sociale. In altri casi [7] lo studio di testi provenienti dai post sui social di studenti e giovani adulti durante la pandemia da Covid è alla base dell’analisi dei problemi comportamentali riportati dagli stessi utenti nei loro post. L’analisi dei contenuti è stata orientata all’estrazione dei fattori che inducono stress, facendo emergere come fattori di stress la didattica a distanza, la perdita di lavoro, isolamento dagli amici e famiglie violente. Lo studio è stato condotto su diverse comunità nella piattaforma Reddit in quanto molte persone che soffrono di depressione o sintomi correlati si esprime liberamente su tale piattaforma. Durante lo studio è emerso che un allarmante numero di post proveniva dagli studenti.
![Natural Language Processing](https://www.ai4business.it/wp-content/uploads/sites/11/2020/12/technology-4905258_1920-678x381.jpg)
Analisi dei mercati
Da molti anni si fanno analisi e previsioni sui mercati finanziari studiando le serie storiche degli indici di borsa, ma si è consapevoli che i mercati si muovono anche, o forse soprattutto, in base al mondo che ci circonda, agli eventi sociali e alla politica. Non c’è da stupirsi quindi che da alcuni anni allo studio degli indici finanziari sia stato affiancato qualcos’altro. Un ambito di ricerca che si sta espandendo è l’utilizzo della Sentiment Analysis per la previsione della volatilità dei mercati per l’ottimizzazione del portafoglio e la gestione del rischio; si analizzano notizie giornalistiche e commenti sui social per rilevare il livello di confidenza degli investitori. Viene studiata la correlazione tra il sentiment delle notizie di un giorno e l’andamento del mercato il giorno successivo. Il sentiment ricavato dai titoli delle notizie può essere un buon predittore del ritorno del mercato, mentre l’analisi dei tweet risulta un buon predittore per la volatilità del mercato [8]. In altri casi si utilizzano modelli ibridi realizzati tramite reti neurali e il cosiddetto “attention mechanism” in NLP per fare previsioni di mercato ai fini di massimizzare i profitti di investimento; il meccanismo dell’attenzione, o attention mechanism, riconosce la semantica di una frase estraendo informazioni aggiuntive sotto forma di parole chiave così che riesce a identificare le parti importanti di un testo e ad attribuire loro un adeguato peso.[9]
Natural Language Processing e cybersecurity
Il NLP trova applicazione nei sistemi di protezione da attacchi informatici, oltre che nei sistemi di classificazione delle mail di spam anche in contesti ben più critici. Sono stati proposti framework di analisi delle caratteristiche di un codice eseguibile tramite NLP; vengono analizzate le funzioni a livello di linguaggio assembly e i risultati sono passati ad algoritmi di machine learning per rilevare i ransomware [10]. I risultati raggiunti in termini di accuratezza sono notevoli, il massimo ottenuto è 99,54%.
In altri lavori si sviluppano modelli che tramite il NLP eseguono l’analisi dinamica di codice benevolo e di codice malevolo lavorando direttamente sulle istruzioni in linguaggio assembly; gli autori di tale lavoro sostengono che ci sono similarità tra le regole grammaticali del linguaggio naturale e gli schemi complessi delle istruzioni assembly. Il trace dell’esecuzione di un codice viene modellato come linguaggio naturale. In questo modo si costruiscono due dataset: uno considerando le istruzioni riga per riga, un secondo considerando blocchi di istruzioni [11]. Ai dataset creati vengono applicati altri algoritmi di machine learning e deep learning per classificare il codice come malevolo o benevolo; i risultati ottenuti con il dataset costruito con blocchi di istruzioni, anche in questo caso sono notevoli, raggiungendo il 99,26% di accuratezza.
Esplorazione semantica di un catalogo di libri
Siamo arrivati al punto in cui una tecnologia viene profondamente compresa e utilizzata in modo esteso in contesti di ampie vedute. Si tratta di un progetto tutto italiano, finanziato [12], realizzato in collaborazione tra più enti e aziende tra cui l’Università degli Studi di Roma “La Sapienza”, l’azienda Aton It e la casa editrice L’Erma di Bretschneider, che ha fornito i testi in formato digitale per la sperimentazione. La piattaforma si chiama ARCA (Academic Research Creativity Archive) ed è basata principalmente su tre tecnologie: Named Entity Recognition (NER), Named Entity Linking (NEL) e Knowledge Graph (KG).
![](https://www.ai4business.it/wp-content/uploads/sites/11/2021/01/arca-300x86.png)
Le prime due sono parte del NLP; il NER permette di identificare e classificare le entità all’interno di un testo in categorie predefinite, il NEL permette di disambiguare e definire le relazioni tra le entità. Il KG permette la rappresentazione tramite grafo dei concetti e delle entità che sono collegati tra loro da relazioni semantiche. Il progetto realizza un sistema di ricerca visuale che permette l’esplorazione semantica all’interno di un catalogo digitale dove i contenuti statici e non strutturati diventano interattivi, consultabili e con concetti interconnessi [13].
Navigando un knowledge graph si può partire da un concetto all’interno di un dominio di conoscenza e scoprire le entità e le informazioni semanticamente associate ad esso ma di altri contesti geografici e disciplinari; sorgenti multidisciplinari possono essere connesse e rappresentate su un grafo. Quello che manualmente richiederebbe un notevole sforzo e soprattutto una profonda e ampia padronanza e conoscenza multidisciplinare, viene coadiuvato da un sistema basato sul linguaggio naturale; la frontiera della conoscenza si allarga.
Conclusioni
Risulta sorprendente la varietà di contesti in cui vengono applicate le tecniche di elaborazione del linguaggio naturale. Quelli appena accennati non sono che una parte degli scenari applicativi dello studio del linguaggio naturale; la creatività e la forza di osare ci porteranno a sperimentare applicazioni al momento impensabili. Solo per citare un’ultima applicazione [14], che apparentemente è superflua ma in realtà risulta di notevole successo, è l’analisi dei documenti di specifica dei requisiti del software per estrarre in modo automatico le caratteristiche e le funzionalità, informazioni che manualmente sarebbero recuperabili, ma con un notevole dispendio di risorse con esperienza in merito. Chi lo avrebbe mai detto? Qualcuno ci ha pensato.
Ci sono poi esempi applicativi di generazione di testi in linguaggio naturale, ovvero l’aspetto opposto a quello appena presentato: partendo da testi strutturati ma molto complessi, generare una rappresentazione in linguaggio naturale, anche in più lingue, con un livello di complessità adeguato al lettore o all’ascoltatore.
Riferimenti
[1] Cyberbullying Detection using Deep Learning and Word Embedding Analysis
[2] A Term Weighted Neural Language Model and Stacked Bidirectional LSTM Based Framework for Sarcasm Identification
[3] Fake News Detection in Social Media using Graph Neural Networks and NLP Techniques: A COVID-19 Use-case, https://arxiv.org/abs/2012.07517
[4] MELINDA: A Multimodal Dataset for Biomedical Experiment Method Classification, https://arxiv.org/abs/2012.09216
[5] Discovering key topics from short, real-world medical inquiries via natural language processing and unsupervised learning
[6] Social Media Unrest Prediction during the COVID-19 Pandemic
[7] Identifying pandemic-related stress factors from social-media posts — effects on students and young-adults
[8] A Sentiment Analysis Approach to the Prediction of Market Volatility
[9] Dynamic adjustment of stock position based on hybrid deep neural network
[10] AI-Powered Ransomware Detection Framework
https://ieeexplore.ieee.org/document/9308387
[11] Malicious Code Detection: Run Trace Output Analysis by LSTM
Output Analysis by LSTMhttps://ieeexplore.ieee.org/document/9314007
[12] ARCA (POR FESR Lazio 2014–2020 – Avviso pubblico “Creatività 2020”, domanda prot. n. A0128-2017-17189)
[13] A Streamlined Pipeline to Enable the Semantic Exploration of a Bookstore
https://link.springer.com/chapter/10.1007/978-3-030-39905-4_8
[14] Automated Features Extraction from Software Requirements Specification