TECH | 19 Ott

Si può ricavare valore da dati non strutturati?

Con il Natural Language Processing, tecniche e algoritmi a metà strada tra Computer Science e Linguistica

Anni Novanta, inizia la rivoluzione digitale. È il declino della carta, dei faldoni e dei moduli a caselle, degli schedari e delle firme in calce; o almeno questo si promette. Griglie virtuali scalzano registri di inchiostro e cellulosa; eppure non tutta l’informazione si riduce a database, non tutto è “struttura”: la comunicazione umana è fatta di documenti, titoli, pagine e layout.

Aumentano i contenuti. Aumentano in modo inarrestabile. I documentali digitali dilagano e con essi i motori di ricerca. Prospera la scienza dell’Information Retrieval: ora l’informazione può essere codificata, indicizzata, recuperata. Basta ricordare le parole giuste e tradurle in un pattern di caratteri e simboli. Questo è il pilastro di Internet: chi meglio indicizza controlla l’informazione e quindi il web. Sotto il cofano dei motori di ricerca c’è un distillato di statistica e computer science: chi cerca bene, trova ciò di cui ha bisogno. Nell’arena dei motori di ricerca è una lotta all’ultimo sangue. È in questo contesto che si impone Google, distinguendosi per la qualità dei risultati che propone.

Anno dopo anno, non solo il volume, ma anche la varietà di dati non strutturati cresce vertiginosamente. Si tratta di manuali, report, post, pagine e documenti privi di schemi fissi, non incasellabili fra le righe e colonne di un database.  I contesti si diversificano. Nasce il concetto di Big Data. Su Internet, grazie a mail, blog e social network tutti hanno la possibilità di esprimersi, anche coloro che non sono nient’affatto abituati a ragionare per query ed espressioni regolari.

Un nuovo bisogno: rappresentare dati complessi

Sta sorgendo un nuovo bisogno: non sono più solo necessari sistemi che recuperino l’informazione, ma che l’estraggano, la comprendano e la sintetizzino, che creino quindi rappresentazioni efficaci di contenuti diversi, complessi ed estesi. Tutti gli ambiti della comunicazione digitale ne sono coinvolti: dopo tanti anni è impossibile ricordare come quel collega avesse espresso quel concetto fondamentale che oggi sarebbe così tanto utile ritrovare; all’utente che chiede supporto, le caselle di testo e le gerarchie dei portali web vanno sempre più strette, perché occorre spiegare; occorre mettere ordine, creare knowledge bases, standardizzare l’organizzazione del sapere. Inoltre, la possibilità di accedere a nuovi contenuti crea il bisogno di cercare risposte a nuove domande, piuttosto che cercare risposte esistenti.

Se ne può uscire? La soluzione nasce da una branca della ricerca di base da anni in incubazione, a metà strada tra Computer Science e la Linguistica. Si chiama Natural Language Processing (NLP): un insieme di tecniche e algoritmi che, integrato alle piattaforme di analisi tradizionali, consente di ricondurre testo libero a informazione strutturata, rendendolo quindi analizzabile e comprensibile (per questo è stata introdotta anche l’espressione di Natural Language Understanding, che per semplicità tralasceremo).

Il Natural Language Processing

La filosofia che sta alla base dell’integrazione tra NLP e tecnologie tradizionali fa della semplicità di accesso all’informazione un valore essenziale: l’utente, esprimendosi nel linguaggio che più gli è consono, ha l’opportunità di accedere alla più vasta quantità possibile di informazioni. Grazie al NLP è possibile “istruire” una macchina a classificare contenuti, documenti, messaggi, richieste, sia in base a categorie definite a priori, sia in base ad analogie semantiche e concettuali. Non spetta più all’utente specificare i criteri di somiglianza tra documenti: è il software ad apprendere come associare un contenuto a una categoria. È l’algoritmo infatti a “suggerire”, in base alla semantica stessa, una classificazione coerente del testo. Questo è un punto cruciale, in quanto solleva l’autore dal seguire rigidamente regole di tagging e classificazione, permettendogli di dedicarsi alla creazione di contenuti. Negli ultimi cinque anni le tecniche di NLP hanno fatto passi da gigante e, mutuando tecniche di Machine Learning e di Deep Learning, sono diventate anche una delle pietre angolari dei sistemi di intelligenza artificiale e di Advanced Analytics.

La Sentiment Analysis e l’Opinion Analysis sono fra le tecniche più note basate sul Natural Language Processing. Da anni hanno trovato ampio successo nelle analisi di mercato e di opinione sui social, in quanto consentono di dedurre l’inclinazione emotiva dell’autore a partire dallo stile e dal linguaggio con cui il testo è scritto.

Conoscere il linguaggio permette anche di “generare” nuovi contenuti: a partire da una richiesta è possibile produrre domande simili, o meglio formulate, di quella cercata, cercando di “indovinare” ciò che l’utente ha solo parzialmente espresso. Anche i chatbot mutuano algoritmi di NLP per comprendere e rispondere alle domande dell’utenza e fornire delle risposte quanto più possibile coerenti.

È la filosofia open source che permette a queste tecniche di imporsi. Gli algoritmi sono tradotti nei linguaggi open source per eccellenza – Python in testa, ma anche Java e Scala. Vengono distribuiti in librerie modulari e gratuite, integrabili e componibili sia su piattaforme tradizionali che Big Data. Il Natural Language Processing diventa una componente essenziale delle soluzioni integrate. La scelta di rendere le librerie pubbliche, consente a sviluppatori e scienziati di migliorarle, documentarle, sostenerle e produrne innumerevoli, efficacissime varianti.

Eppure, possedere librerie di funzioni non è sufficiente per avere successo, in particolare nel campo del NLP, in cui le strategie di analisi cambiano profondamente a seconda del tipo di documenti, delle sorgenti dati e dei volumi in gioco.

Nemmeno la conoscenza degli algoritmi fa la differenza se non è accompagnata dall’abilità nel saperli coniugare e adattare a seconda del contesto di business, degli obiettivi e delle risorse di calcolo a disposizione. Al Data Scientist spetta il delicato compito di scegliere e sviluppare Analytics di successo, in modo che gli algoritmi siano perfettamente integrati con i flussi di dati esistenti e con le necessità di progetto.

Il Data Scientist sa che il presupposto per produrre valore a partire dai dati è quello di rendere la tecnologia accessibile all’utilizzatore finale, sia esso l’analista, l’archivista, l’utente di un sito web, o semplicemente ciascuno di noi, quando volessimo semplicemente mettere ordine fra i nostri scatoloni virtuali.

Michele Gabusi