Luglio 2010

Textual Analytics: Business Intelligence from a Textual Foundation

Le soluzioni per l’analisi dei dati sono in circolazione sin dai tempi in cui fu scritto il primo programma per computer. Quando poi le aziende hanno iniziato a produrre dati in quantità, analisti finanziari, esperti nelle vendite e nel marketing si sono resi immediatamente conto che si potevano utilizzare quei dati in modo creativo e argomentativo. All’inizio era difficile estrarre dati dalle applicazioni e i tool che gli analisti utilizzavano per l’accesso e l’analisi erano ancora grezzi. Con il passare del tempo, e con la progressiva espansione del volume dei dati prodotti, le soluzioni mirate all’analisi iniziarono a rappresentare una nuova opportunità per essere competitivi sul mercato.
Alla fine si scoprì il datawarehouse ed esso divenne la componente strategica del processo di analisi. Il datawarehouse conteneva dati storici, integrati e granulari che venivano estratti dai sistemi legacy e si confermò come il fondamento ideale per l’analisi dei dati. Questi ultimi erano prevedibili e facili da accedere. Non solo, ma grazie alla loro caratteristica di granularità, si prestavano a essere strutturati in forme diverse a seconda degli obiettivi che si volevano raggiungere.

Il limite dei dati numerici

In seguito ci si accorse che l’analisi del business in chiave analytics aveva una forte limitazione: poteva essere utilizzata soltanto con dati numerici. Sebbene l’analisi sui dati numerici si dimostrasse estremamente utile, le aziende si accorsero che al loro interno cresceva progressivamente la quantità di dati non strutturati: grandi volumi di dati testuali, rappresentati da e-mail, record sanitari, call center, documenti relativi a contratti, garanzie, e poi report e altro ancora. Le stime indicano che l’80% dei dati di un’azienda sono oggi in forma testuale e non numerica. E quei dati non strutturati di proprietà dell’azienda, rappresentano un’informazione primaria. Il problema è quindi riuscire a trattare dati non strutturati. Problema di non semplice soluzione, soprattutto per il fatto che essi non possono essere organizzati in modo così ordinato e di facile accesso come nel caso dei dati numerici. L’anarchia dei dati testuali rende infatti vano, o quanto meno molto difficoltoso, qualsiasi tentativo di compiere un’analisi che possa in qualche modo produrre un esito significativo. Tuttavia esiste una tecnologia, disponibile già oggi, creata apposta per l’analisi dei dati testuali ed è il software Textual Foundation della Forest Rim Technology. Per la prima volta un Ids è progettato per consentire a un’organizzazione di fare dell’analisi testuale.

Analisi testuale e motori di ricerca

Quando si solleva la questione dell’analisi testuale sorge spontaneo pensare a motori di ricerca come Google o Yahoo!. Ma queste soluzioni rappresentano una forma primitiva di analisi testuale in quanto eseguono una semplice ricerca sul testo grezzo. Di conseguenza il loro utilizzo ai fini analitici ha delle forti limitazioni. Per potere effettuare un’analisi sofisticata i dati non strutturati devono innanzitutto essere integrati. Se non viene soddisfatta questa condizione la ricerca non può produrre risultati di qualità. Il primo passo da compiere in un contesto di analisi testuale prevede perciò una strutturazione del testo grezzo in forma integrata. Per fare in modo che il tutto sia coerente con questo tipo di analisi si devono per esempio censire le differenti terminologie in modo che si possano produrre risultati consistenti, individuare le possibili alternative lessicali e ortografiche di un dato nome o parola, ordinare le query in base alle radici comuni, greche o latine, del vocabolario e così via.

Integrazione del testo grezzo

In breve, se si vuole mirare a un’analisi di qualità, si deve procedere a un’organizzazione, razionalizzazione e integrazione del testo. L’analisi testuale deve infatti poter essere svolta confrontandosi con un testo integrato, organizzato in modo tale da poter costituire una valida base dati per ottenere informazioni di qualità. La differenza sostanziale tra un motore di ricerca e un motore analitico sta nel fatto che il primo esegue una ricerca su dati grezzi, mentre il secondo opera su dati che sono stati oggetto di un processo di integrazione.
La necessità dell’integrazione testuale può non essere così ovvia a tutti. Per comprendere l’importanza dell’integrazione testuale si pensi a un archivio sanitario che deve essere analizzato. Supponiamo che il termine da ricercare sia “ha”. Con una ricerca ordinaria si possono ottenere molti risultati. Ma “ha” significa poco o nulla al profano. Quindi è discutibile procedere a una ricerca per “ha”. Ma se i dati grezzi vengono prima integrati, il termine “ha” potrà avere un significato diverso a seconda della persona che esegue la ricerca: per tutti i cardiologi (stiamo attualmente ragionando in un contesto anglosassone) al termine “ha” sarà associato il termine “heart attack”; per tutti gli endocrionologi l’associazione sarà invece “hepatis A”; e per tutti i medici generici la conversione potrà avere come riferimento “head ache”. La conversione permette quindi di gestire al meglio i singoli termini così che pazienti affetti da attacchi di cuore, mal di testa ed epatite A siano raggruppati differentemente.
Da questo semplice esempio ci si rende conto come l’integrazione del testo sia indispensabile per un’efficace analisi testuale. Ma questa non è la sola ragione che indica la necessità di avere l’integrazione testuale come fondamento delle ricerche analitiche.

Ricerca per categorie di testo

Ipotizziamo che il testo abbia a che fare con la gestione di un allevamento. Una parte del testo potrà farà riferimento a mucche: razza, età, maturità, sesso. Supponiamo ora che vi sia il bisogno di eseguire un’elaborazione analitica nei confronti di un documento o un insieme di documenti sull’allevamento e compiere una ricerca che abbia come oggetto le mucche. Se si utilizza un search engine si può pensare di ricercare le informazioni digitando i vari nomi che identificano i diversi tipi di mucca. Ricercare informazioni di vario tipo in stile search engine può essere pertanto un lavoro molto laborioso. Un approccio migliore è invece quello al testo integrato che permette di identificare tutta l’informazione sulle mucche attraverso la ricerca di una categoria comune. In questo caso, quando si vogliono avere informazioni sulle mucche basta digitare una query sulla categoria mucche in modo che vengano esposte tutte le informazioni relative ai termini che rientrano in quella categoria. Con l’integrazione dei dati grezzi l’analista riesce perciò a organizzare i dati per un’efficace ed efficiente elaborazione analitica testuale.

Riorganizzazione dei dati testuali

Come abbiamo visto i dati testuali grezzi possono essere preprocessati e riorganizzati in forma integrata in modo da impostare le basi per un’efficiente elaborazione analitica. Esistono molte forme di integrazione testuale. Una di queste è riconoscere l’esistenza di ortografia multipla per alcune date parole, soprattutto in riferimento a nomi. Prendiamo, per esempio, il nome Osama Bin Laden: può essere scritto in modi differenti (Osama bin Laden, Usama bin Laden, Osama ben Ladeen e così via). Il processo di integrazione può quindi prevedere che più ortografie del nome possano essere incluse nella ricerca. L’analisi, di conseguenza, non trascurerà i casi in cui Osama Bin Laden viene scritto in modo diverso dall’originale. Se si utilizzasse un motore di ricerca tradizionale il risultato, per il semplice fatto che viene utilizzato una variante del nome, potrebbe invece non riportare informazioni importanti su Osama Bin Laden.

Regole grammaticali omogenee

La necessità del testo integrato così come descritto finora attraverso questi semplici esempi non è che l’inizio. Un altro modo in cui si può effettuare l’integrazione è in termini di radici latine o greche delle parole. Le parole di origine latina tendono a essere simili, ma ad avere scrittura differente. Se viene fatta una ricerca letterale essa non è in grado di associare una parola a un’altra, pur avendo una radice comune. Come esempio si consideri la parola inglese move. Alcune delle possibili differenti forme di move possono essere move, moving, mover, remove, removed. Ecco quindi che l’analista può intervenire nella fase di integrazione associando alla radice move una molteplicità di vocaboli che hanno un’alta probabilità di attinenza in termini di informazioni che possono essere generate. A dire il vero vi sono molte altre considerazioni che riguardano la disciplina dell’integrazione del testo. Alcune di queste includono la capacità di fare uno screening del testo così come tecniche di rimozione della punteggiatura, case sensitivity (o insensitivity) e così via.

L’estensione della ricerca e dell’analisi

Una delle sfide con cui si confrontano i motori di ricerca è l’ampiezza del volume del materiale cui si deve accedere attraverso le query. Un motore di ricerca è in grado di effettuare operazioni su un ampio raggio di fonti informative (come è il caso di Internet). Un tool di analisi testuale accede invece a dati cui si è stabilito un accesso predeterminato, dati sui quali è possibile compiere delle manipolazioni. In altre parole l’analisi testuale consente una notevole attività di preprocessing dei dati, al fine di compiere un’integrazione, e viene effettuata su un volume di dati molto più limitato rispetto a un motore di ricerca. La ricerca effettuata con un tool analitico avviene infatti all’interno di un perimetro di dati di proprietà aziendale.

Simple query

Con l’analisi testuale, oltre alle query standard, possono essere create intere classi di query. Una delle più semplici è la query per classi di dati. In questo caso l’analista sottomette un’interrogazione relativa alla categoria di informazione. L’interrogazione può includere termini molto differenti, ciascuno dei quali ha una sua attinenza all’argomento, e i risultati consentono di individuare un qualsiasi termine associato alla categoria. Questo tipo di interrogazione viene a volte chiamato interrogazione indiretta o query per categoria.

Query sofisticate – Snippet

Un importante tipo di query che può essere sottomessa dall’analista testuale è quella che prende in considerazione tutte le occorrenze di una specifica parola, includendo le occorrenze che precedono e seguono la parola stessa. I riferimenti testuali così ottenuti si definiscono “snippet”. Gli snippet sono per lo più utili per determinare il contesto di una particolare parola.

Ricerca per prossimità

Un altro tipo di query che gli analisti testuali qualche volta hanno necessità di creare è la query di prossimità. In questo caso, la query è formulata per ricercare più parole che sono tra loro in prossimità su uno o più documenti, ovvero parole che coesistono entro uno spazio predeterminato. L’analisi di prossimità può essere fatta sia per liste di parole sia per singole parole.