Document Warehousing: l‘analisi multidimensionale applicata a sorgenti testuali

II parte: Un prototipo basato su tool opendi e e

In questo articolo della serie descrive un case-study relativo al dominio dell‘Health Management per sistemi aerospaziali, nell‘ambito del quale è stato realizzato un prototipo di sistema di Document Warehousing basato su tool open source. Vedremo l‘architettura del prototipo, i tool utilizzati e i compiti che essi svolgono.

Introduzione al prototipo di Document Warehousing

Nel precedente articolo è stato introdotto l'ambiente di Document Warehousing [1] che rappresenta un sistema avanzato di analisi che permette di interrogare mediante tecnologia OLAP, in maniera user-friendly, grandi corpora documentali, ottenendo informazioni di sintesi, che comprendono

  • il contenuto dei documenti
  • i metadati dei documenti
  • i raggruppamenti dei documenti stessi

Questo comporta un vantaggioso risparmio di memoria: il documento continua a risiedere nel repository originale; nel Document Warehouse sono memorizzate, invece, soltanto le informazioni estratte da esso e un puntatore al documento stesso. È stata, inoltre, approfondita la fase di alimentazione del Document Warehouse che si basa sul paradigma dell'ETL testuale (Extraction, Transformation, Loading) [2].

 

 

 

Figura 1 - Descrizione del sistema di Document Warehousing

 

Allo scopo di approfondire le funzionalità che caratterizzano il sistema di Document Warehousing, è stato realizzato un prototipo che viene presentato nei dettagli in questo secondo articolo. Per il prototipo è stata utilizzata una serie di tool open source (figura 2) che ci hanno permesso di realizzare a grandi linee le funzionalità principali per l'ETL testuale, l'applicazione web per le interrogazioni multidimensionali, la definizione dell'ipercubo dei metadati e l'implementazione del Document Warehouse. Sono stati utilizzati, quindi, tool open source che permettono di creare lo schema a stella e di definire l'ipercubo dei metadati.

Il prototipo realizza un case-study relativo al dominio dell'Health Management per il sistema aerospaziale; le prove sono state effettuate utilizzando articoli selezionati in rete, in lingua inglese e disponibili in 3 formati molto diffusi: .txt, .doc, .pdf.

Descrizione dei tool open source

In questo paragrafo vengono descritti i tool open source che sono stati utilizzati per la realizzazione del prototipo e che vengono presentati nella figura 2. In particolare, per effettuare l'ETL testuale sono stati impiegati i tool Rapidminer 5 [3], Netbeans 6.8 [4] e le librerie Java Tika [5]. L'output della fase di ETL testuale è stato memorizzato nella base di dati open source MySql 5.2 [6], il cui workbench è stato impiegato per la definizione dello schema a stella del Document Warehouse. L'ipercubo dei metadati, costituito da un file XML, è stato costruito utilizzando Mondrian Workbench 3.2 [7]; Mondrian 3.2 è il server OLAP che è stato utilizzato per effettuare le interrogazioni multidimensionali. Infine, si è fatto uso delle librerie Java JPivot [8] per formulare le query multidimensionali e visualizzare i loro risultati sotto forma di tabelle.

 

 

 

Figura 2 - Prototipo Document Warehousing: i tool open utilizzati.

 

Rapidminer

Rapidminer è un software open source di data mining, fornito di una interfaccia grafica molto intuitiva, attraverso la quale l'utente può combinare i diversi operatori messi a disposizione per effettuare le sue analisi di data mining. È possibile aggiungere funzionalità al tool attraverso numerose estensioni, tra cui quella che permette di effettuare l'analisi testuale. In particolate, il plug-in Text Extension consente di accedere ai testi di input e di definire un processo di trasformazione dei documenti, mettendo a disposizione vari operatori di text processing, che l'utente può combinare secondo la modalità richiesta dal processo di analisi che intende condurre. Combinando i diversi operatori di text processing, l'utente può definire un processo che consente di ottenere una rappresentazione vettoriale dei documenti di input: i testi, cioè, vengono rappresentati solo dalle parole ritenute ad alto contenuto informativo. L'output del processo di trasformazione dei documenti è fornito da Rapidminer in termini di tabella Termini/Frequenze, dove le righe individuano i documenti di input, mentre le colonne sono costituite dalle keyword estratte dai testi che sono ritenute ad alto contenuto informativo. Per i valori dei campi, invece, Rapidminer consente di scegliere tra diversi tipi di frequenza, come la frequenza relativa di una parola in un documento o l'indice TFxIDF [9], oppure il numero assoluto di occorrenze di una parola. La tabella di output può anche essere caricata in una base di dati tramite i connettori disponibili. La tabella 1 mostra quali sono le funzionalità di Text Processing che il tool mette a disposizione.

 

 

Tabella 1 - Funzionalità Rapidminer.

 

Di seguito viene riportato un esempio di processo Rapidminer (figura 3) in cui i documenti di input vengono caricati attraverso l'operatore Process Documents From Files, al cui interno sono stati inseriti gli operatori che effettuano la trasformazione dei testi di input: le parole vengono dapprima trasformate in minuscolo, poi viene effettuata la tokenizzazione che è seguita dalla eliminazione delle stopwords, dallo stemming e dalla generazione degli n-grams. L'operatore Extract Information consente di introdurre delle regular expressions, che possono essere definite anche con l'operatore Filter Tokens che, invece, permette di filtrare i tokens sulla base di una o più condizioni.

 

 

Figura 3 - Esempio processo Rapidminer.

 

In particolare, nell'ambito del prototipo, per generare Regular Expressions è stato utilizzato il tool RegexBuddy [10], che offre la sintassi necessaria alla definizione di espressioni regolari che consentono di individuare all'interno di un testo indirizzi e-mail, date, conti bancari, codici fiscali etc.

 

 

Figura 4 - Esempio di regular expression per estrarre dai testi indirizzi mail.

Mondrian

Il software open source Pentaho Mondrian Analysis è un motore per On Line Analytical Processing (OLAP), sviluppato in Java. Il tool implementa le funzionalità indispensabili all'analisi dati (aggregazione, drill-down, drill-through, slicing, dicing) ed è in grado di eseguire query espresse in linguaggio MultiDimensionaleXpression (MDX) [7], leggendo i dati da un RDBMS. Il linguaggio MDX presenta analogie con il linguaggio SQL, ma a differenza di quest'ultimo permette di gestire un numero arbitrario di dimensioni sia sulle righe che sulle colonne.

La connessione alla base di dati avviene via JDBC, il che rende indipendente Mondrian dal particolare RDBMS utilizzato. Lo schema logico della base dati può essere sia a stella che a fiocco di neve, e la sua struttura gerarchica è contenuta in un file XML che viene interpretato dal server OLAP. In particolare il workbench di Mondrian mette a disposizione un'interfaccia user-friendly che consente all'utente di costruire semplicemente l'ipercubo dei metadati che è rappresentato da un file XML, in cui vengono definiti i seguenti tag MDX:

  • : rappresenta una collezione di dimensioni e misure;
  • : rappresenta un attributo o un insieme di attributi in base ai quali è possibile dividere le misure in sottocategorie;
  • : rappresenta una proprietà numerica che nell'ambito dell'analisi che si vuole condurre può interessare misurare;
  • : rappresenta una struttura gerarchica;
  • : rappresenta un insieme di elementi che hanno la stessa distanza dalla radice della gerarchia.

 

 

Figura 5 - Mondrian workbench.

 

Per la dimensione temporale, Mondrian possiede un tipo particolare, type="TimeDimension" [7]; il ruolo di ciascun livello in una dimensione temporale è indicato dall'attributo levelType, i cui possibili valori sono i seguenti:

  • TimeYears: il livello è un anno;
  • TimeQuarters: il livello è un trimestre;
  • TimeMonths. Il livello è un mese;
  • TimeDays: il livello rappresenta i giorni.

I risultati delle query effettuate con Mondrian vengono presentati in forma multidimensionale per mezzo di API Java.

JPivot

Per il prototipo sono state utilizzate le librerie Java JPivot, che permettono di interrogare Mondrian con query MDX e di visualizzare graficamente i risultati sotto forma di tabelle. In particolare, effettuata una query OLAP, JPivot permette all'utente di visualizzare il codice MDX della query ed eventualmente di modificarlo, attraverso l'editor messo a disposizione (figura 6). Tramite dei pulsanti, l'utente può attivare, oltre all'editor MDX, anche altre funzionalità come quella che consente di scegliere le dimensioni e le misure da visualizzare o quella che permette di eliminare dalla tabella dei risultati le righe vuote. Cliccando su altri bottoni, presenti sulla parte alta della pagina in (figura 6) JPivot consente anche di visualizzare i risultati delle query sotto forma di diversi grafici, di stamparli o di esportarli in un file Excel. Inoltre esiste un apposito pulsante che consente di attivare la funzionalità di drill-through, che permette di visualizzare la parte della tabella dei fatti corrispondente ai risultati della query effettuata.

 

 

Figura 6 - Editor JPivot per query MDX.

 

Tika

Il toolkit Apache Tika, utilizzato nel prototipo, è un progetto open source che ha come obiettivo l'estrazione del contenuto testuale e dei metadati da vari tipi di formati di dati (quali ad esempio documenti Word, PDF, Excel, ma anche da immagini e file audio), il tutto utilizzando delle librerie di parsing esterne, cioè già sviluppate e pronte all'uso. Tra le altre funzionalità del toolkit, vi è quella di poter riconoscere il tipo di formato di file che si sta analizzando e la lingua utilizzata.

Netbeans

Nell'ambito del prototipo, per creare classi Java, è stato utilizzato NetBeans, il noto ambiente di sviluppo integrato (IDE), multi-linguaggio e scritto interamente in Java.

MySql

Come base di dati, per il prototipo è stato utilizzato il ben noto MySql, che è un Relational database management system (RDBMS), composto da un server e un client con interfaccia a caratteri.

Progettazione del Document Warehouse

Nell'ambito del prototipo è stato progettato lo schema di fatto (figura 7) che include una dimensione ordinaria (Keyword), quattro dimensioni di metadati (Autore, Lingua, Soggetto e Titolo) e tre dimensioni di categorie (Classificazione ACM, Data di pubblicazione e Tipo di pubblicazione). Questi particolari tipi di dimensioni, caratteristici del Document Warehouse, sono stati dettagliatamente descritti nel nostro primo articolo. È stata, inoltre, utilizzata un'ulteriore dimensione Documento che contiene il path di ciascun documento di input; nel Document Warehouse, infatti, non viene caricato il documento, ma vengono memorizzate tutte le informazioni semantiche e di sintesi relative al suo contenuto, e un puntatore al documento stesso, che consente di rintracciare il file di input, permettendo così un gran risparmio di memoria.

 

 

Figura 7 - Schema di fatto per il prototipo.

 

Dimensione ordinaria

La dimensione ordinaria è costituita da keywords/concetti inerenti al dominio dell'Health Management aerospaziale, estratti dai documenti di input. A tal proposito, è stato realizzato un vocabolario di termini inerenti al dominio scelto, per i quali sono stati aggiunti dei sinonimi.

Il vocabolario è costituito da una lista di ventuno keywords:

  • Aerospace: Aeronautics
  • Association Rules
  • Avionics Central Unit: ACU
  • Clustering
  • Confusion Matrix
  • Data Mining Evaluation
  • Data Mining Method: data mining technique, data mining algorithm, Data mining applications, Knowledge Discovery applications, Applications, data mining model, pattern mining, sequence pattern mining
  • Decision Tree: inductive decision tree, prune tree, non prune tree
  • Diagnostics
  • Fault Identification
  • Fault Isolation
  • Fault Tolerance
  • Hardware in the loop: HWIL
  • Health Management: System Health Monitoring, System Health Management, Aerospace Health management, HM, Health Management System, HMS, Health Monitoring System, Health Management Demonstrator, HMD
  • Integrated Model Vehicle: IVM
  • Integrated Vehicle Health Management: IVHM, Integrated Health Management, IHM  International Space Station
  • Prognostics
  • Roc Curve
  • Sequence Analysis
  • Symptom Tree Analysis: STA

Le keyword relative al dominio dell'Health Management sono state poi organizzate in una struttura gerarchica per creare una tassonomia (figura 8). I nodi della tassonomia individuata sono stati utilizzati per popolare la dimensione ordinaria, essi quindi costituiscono la gerarchia della dimensione Keyword.

 

 

Figura 8 - Tassonomia delle keywords relative al dominio dell'Health Management Aerospaziale.

Nella fase di alimentazione del Document Warehouse, cioè nella fase di ETL testuale, quello che viene fatto è l'individuazione all'interno di ciascun testo delle parole presenti nel vocabolario costruito per il dominio dell'Health Management aerospaziale, per assegnare così il documento a uno o più nodi della gerarchia che costituisce la dimensione ordinaria.

Dimensioni di metadati

Per la scelta delle dimensioni di metadati si è deciso di seguire lo standard del Dublin Core Metadata [11], che rappresenta un sistema di metadati costituito da un nucleo di elementi essenziali per la descrizione di qualsiasi materiale digitale accessibile via rete informatica. In particolare per il prototipo si è deciso di utilizzare come dimensioni di metadati la lingua del contenuto del documento e il titolo, l'autore e il soggetto definiti tra le proprietà del file (figura 9).

 

 

Figura 9 - Metadati scelti tra le proprietà di un file PDF.

 

Dimensioni di categoria

Per quanto riguarda le dimensioni di categoria, si è scelto di usare la data di pubblicazione, il tipo di pubblicazione (gli articoli vengono classificati tra quelli pubblicati su rivista o presentati a conferenza) e parte della classificazione standard usata da ACM per le sue riviste. ACM [12], la più grande "educational and scientific computing society" del mondo, mette a disposizioni tassonomie per effettuare la classificazione degli articoli scientifici da pubblicare; il sistema di classificazione proposto da ACM è gerarchicamente strutturato in quattro livelli:

  • sezione
  • categoria
  • sottocategoria
  • argomento

Per la dimensione Classificazione ACM, quindi, sono stati selezionati nodi di tassonomie e sottoalberi ritenuti affini con il dominio dell'Health Management Aerospaziale (figura 10).

 

 

Figura 10 - Nodi di tassonomie ACM affini al dominio dell'Health Management Aerospaziale.

 

Misure

Le due misure, definite per il case-study considerato, sono numeriche come quelle utilizzate nel caso dei dati strutturati: il conteggio dei documenti e il conteggio delle keyword contenute nei testi di input.

Schema a stella

Individuate le dimensioni dello schema di fatto, è stato costruito lo schema a stella associato (figura 11), utilizzando il workbench del database open source di MySql 5.2.

 

 

Figura 11 - Schema a stella costruito con il workbench di MySql.

 

Ipercubo dei metadati

Utilizzando il workbench di Mondrian è stato poi costruito il file XML che rappresenta l'ipercubo dei metadati (figura 12). Nel file vengono specificati quali sono lo schema, la tabella dei fatti, le tabelle delle dimensioni, e vengono definite le misure; sono inoltre specificate le gerarchie delle dimensioni, definendo i vari livelli.

 

 

Figura 12 - File XML per l'ipercubo dei metadati.

 

ETL testuale per alimentare il Document Warehouse

In questo paragrafo viene descritto in che modo è stato realizzato l'ETL testuale nell'ambito del prototipo, tenendo presente che la fase di alimentazione del Document Warehouse è caratterizzata dal vincolo di integrità referenziale: nel caricamento dello schema a stella è necessario che la tabella dei fatti venga popolata solo dopo che sono state caricate tutte le tabelle delle dimensioni.

Come è stato dettagliatamente discusso nel primo articolo della serie, con il termine ETL si indica il processo di estrazione, trasformazione e caricamento dei dati in un sistema. L'ETL testuale consente di estrarre informazioni strutturate da sorgenti non strutturate per alimentare il Document Warehouse.

 

 

Tabella 2 - Tool utilizzati per le varie fasi dell'ETL testuale.

 

La tabella 2 mette in evidenza i tool che sono stati utilizzati per realizzare le varie fasi dell'ETL testuale; di seguito viene descritto in che modo questi tool sono stati impiegati per alimentare le dimensioni dello schema a stella definito per il prototipo.

Relativamente alla dimensione ordinaria dello schema a stella, per estrarre le keywords dai documenti di input è stato utilizzato il tool Rapidminer 5; combinando gli operatori di text processing messi a disposizione dal tool, è stato definito un processo che consente di estrarre dai documenti di input le keywords relative al dominio dell'Health Management aerospaziale e appartenenti a una startlist, rappresentata dal vocabolario di dominio costruito per il prototipo.

Oltre alle keywords, Rapidminer consente di estrarre anche alcuni metadati, relativi a ciascun file di input:

  • il nome del file
  • il path del file
  • la data dell'ultima modifica del file

Per popolare le dimensioni di metadati, si è deciso di utilizzare il toolkit Java Apache Tika, che consente di estrarre numerosi metadati da documenti in vari formati. Se è semplice estrarre i metadati da un documento MS Office utilizzando Tika, per i PDF, invece, il toolkit presenta delle criticità: per esempio la data è estratta solo se è in un determinato formato, inoltre se tra le proprietà del file ci sono due autori viene estratto solo il primo e non è possibile distinguere il nome dal cognome. In particolare, per il prototipo, Tika è stato utilizzato per estrarre il titolo, l'autore, la lingua e il soggetto, definiti tra le proprietà dei file di input.

Per quanto riguarda l'alimentazione delle dimensioni di categoria, per il prototipo si è scelto di effettuare la categorizzazione dei documenti di input automaticamente. È stato, allora, creato un form mediante l'utilizzo del tool Netbeans 6.8  (figura 13).

 

 

Figura 13 - Form Netbeans creato per effettuare la categorizzazione dei documenti.

 

Il form è stato costruito inserendo due combo box, attraverso le quali l'utente può scegliere la categoria da assegnare a ciascun documento di input, relativamente al tipo di pubblicazione e all'argomento nella classificazione ACM. Infine nel form è stato inserito un jFormattedTextField per permettere all'utente di modificare la data di pubblicazione degli articoli di input, qualora essa non fosse stata impostata tra le proprietà del file: in questo caso, infatti, Tika carica la data di default 1-gen-1970.

Applicazione web per le interrogazioni multidimensionali

Per la realizzazione del prototipo è stata implementata anche un'applicazione web per le interrogazioni multidimensionali. A tal proposito è stato utilizzato il server OLAP Mondrian 3.2 e il software open source Tomcat 7 [13], un web container in grado di gestire e supportare le pagine JSP.

 

 

Figura 14 - Selezione delle dimensioni con JPivot.

 

Per effettuare le query multidimensionali (figura 14) e visualizzare i risultati graficamente sotto forma di tabelle (figura 15), invece, sono state usate le librerie JPivot.

 

 

Figura 15 - Visualizzazione dei risultati della query sottoforma di tabella con JPivot.

 

Conclusioni

In questo secondo articolo è stato presentato un esempio applicativo della metodologia indicata nel primo articolo della serie, descrivendo il prototipo che è stato realizzato per verificare le funzionalità del sistema di Document Warehousing. Per il prototipo è stato scelto come dominio di applicazione quello dell'Health Management aerospaziale ed è stata utilizzata una serie di tool open source di cui vengono messe in evidenza le funzionalità.

Riferimenti

[1] Frank S.C. Tseng, Annie Y.H.Chou, "The concept of Document Warehousing for multi-dimensional modeling of textual-based Business Intelligence", Decision Support System 42, pag.727-744, 2006

 

[2] W.H. Inmon, A. Nesavich, "Tapping into unstructured data. Integrating Unstructured Data and Textual Analytics into Business Intelligence", Prentice Hall, 2007

 

[3] Rapid-I

http://rapid-i.com/

 

[4] Netbeans

http://netbeans.org/

 

[5] Apache Tika

http://tika.apache.org/

 

[6] MySql

http://www.mysql.it/

 

[7] Mondrian

http://mondrian.pentaho.com/

 

[8] JPivot

http://jpivot.sourceforge.net//

 

[9] Michael Wurst, Ingo Mierswa, The Word Vector Tool and the Rapidminer Text Plugin, 2009

 

[10] RegexBuddy

http://www.regexbuddy.com/

 

[11] Dublin Core

http://dublincore.org/

 

[12] ACM

http://www.acm.org/

 

[13] Tomcat

http://tomcat.apache.org/

 

 

 

 

Condividi

Pubblicato nel numero
164 luglio 2011
Assuntina Cembalo è nata a Caserta nel 1982. Laureatasi in Matematica presso l‘Università degli studi di Salerno nel novembre del 2008, ha lavorato da gennaio 2009 ad aprile 2010 per la Nous Informatica come sviluppatore software ETL. Da aprile 2010 svolge attività di consulenza presso il CIRA (Centro Italiano Ricerche…
Francesca Maria Pisano è nata a Bellevue (WA) nel 1976. Ha conseguito la laurea in Fisica (1999) e il dottorato in Matematica Applicata ed Informatica presso l’Università degli Studi di Napoli “Federico II” (2002). Dal 2003 lavora presso il CIRA - Centro Italiano Ricerche Aerospaziali in qualità di ricercatrice. Svolge…
Gianpaolo Romano ha conseguito la laurea in Ingegneria Aeronautica presso l‘Università degli Studi di Napoli "Federico II". Ricopre il ruolo di Responsabile del Laboratorio SoftComputing del CIRA. Ha maturato esperienza nella gestione di progetti software-based e del relativo ciclo di vita, avvalendosi di avanzate metodologie di software project management. Inoltre,…
Articoli nella stessa serie
Ti potrebbe interessare anche