Text Mining : aspetti applicativi in campo bio-medico Introduzione Nel seguito approfondiremo l’apporto che tecniche di text mining possono dare all’analisi della letteratura biomedica. Le osservazioni che seguono hanno portato alla costruzione di un prototipo per un sistema di text mining on-line, MedMole, disponibile su http://medmole.cineca.it/. Analisi della letteratura biomedica Esistono principalmente due tipi di approccio all’analisi dei testi: l’information extraction, che ha come obiettivo quello di produrre una rappresentazione strutturata dell’informazione testuale, e il text mining, che ha come obiettivo l’individuazione automatica di pattern di parole che consentano la creazione di gruppi tematici. Il primo richiede che entità e relazioni da ricercare nei testi siano predefinite (ad esempio le entità possono essere proteine e farmaci e le relazioni attivazione, inibizione, …), il secondo non richiede alcuna definizione a priori e consente di individuare nuovi concetti e nuove relazioni. Il primo comprende tecniche che utilizzano sia l’analisi sintattica che l’analisi semantica, il secondo opera solamente a livello sintattico. Questi due approcci non sono completamente separati: l’information extraction genera databases che possono essere analizzati utilizzando le tecniche di data mining, mentre il text mining può trarre vantaggio dalla presenza di informazione specifica di dominio estratta con tecniche di I.E., come di seguito sarà mostrato. L’esempio di applicazione di text mining che segue percorre le fasi classiche di un processo di estrazione di conoscenza. La fonte da cui sono stati estratti i documenti è Pubmed e la selezione è stata effettuata in modo 1) Individuazione delle diverse parti di ciascun documento da ottenere l’insieme completo delle (tagging) ed assegnazione di un numero identificativo pubblicazioni che trattano di ciclo cellulare (cell cycle OR cell proliferation OR cell death OR Affiliation (AD) TITLE (TI) Date (EDAT) oncogenes OR tumor suppressor OR apoptosis TEXT (AB) Journal (TA) OR PARP OR caspase OR CDK OR PCNA OR Publ.Type (PT) Country (CY) Fas ligand OR cytochrome C), per un totale di circa 400 mila testi. parte testuale metainformazione La preparazione dei documenti è stata effettuata attraverso tre fasi. Innanzitutto l’individuazione 2) Analisi grammaticale (e lemmatizzazione) 3) Information Extraction delle diverse parti del documento ha consentito di separare l’informazione testuale dalla metainformazione (organismo di appartenenza, data e rivista di pubblicazione, tipo di pubblicazione, paese, ecc…). Sulla parte testuale è stata quindi effettuata un'analisi grammaticale e sono successivamente state applicate tecniche di information extraction. Il processo di analisi L’analisi grammaticale consente di individuare Fase 2: analisi grammaticale la funzione di ciascun termine e di ricondurlo alla propria radice, o forma canonica, o lemma. Poiché, all’interno di un discorso, i sostantivi sono generalmente i termini con maggiore contenuto semantico, dalla lista dei termini lemmatizzati che si ottiene, per ogni documento, come risultato di questa fase, si selezionano tutti i sostantivi. Questi vengono a costituire l’insieme di parole chiave che caratterizza e descrive ciascun documento. È sulla base di queste parole chiave che verrà giudicato il grado di somiglianza tra i documenti. Tutte le altre parti del discorso (aggettivi, verbi e nomi propri) vengono mantenute come informazioni aggiuntive, così come la meta-informazione che era stata estratta durante la prima fase, di tagging. Identificazione automatica di: SOSTANTIVI AGGETTIVI VERBI NOMI PROPRI Poiché nell’ambito della ricerca biologica è molto importante poter identificare i nomi dei geni, e poiché l’analisi grammaticale li classifica, genericamente, come nomi propri, è necessaria un’ulteriore fase di analisi del testo per estrarre questo tipo d’informazione. Questa fase, cosiddetta di information extraction, in quanto l’obiettivo è l’estrazione di termini specifici (e predefiniti) dal testo, è stata effettuata utilizzando un dizionario contenente nomi ufficiali di geni ed alias (vedremo successivamente più in dettaglio come è stato ottenuto questo dizionario). Occorre precisare che non si tratta di I.E. vera e propria, in quanto, al momento, nessuna analisi semantica opera sul testo, per l’estrazione dei termini. Al termine di questa fase, per ogni documento si è ottenuta della meta-informazione aggiuntiva, data dalla lista dei nomi di geni (solo nomi ufficiali) che erano presenti nel testo (o come tali, o sotto forma di alias). Fase 3: information extraction Gene “Dictionary”: gene name alias CDKN1B IFI27 P27 P27KIP1 P27 P27 20000219 gene CDKN1B 20000219 gene IFI27 20000219 gene P27 Il documento finale, al termine della fase di preparazione, è formato da un elenco composto da tre elementi: l’identificativo del documento, il nome della variabile (nell’esempio NN indica sostantivo, cioè parola chiave, JJ aggettivo, VV verbo, NPRO nome proprio, AD “affiliation”, PD data di pubblicazione, … GENE nome di gene) e il valore, o contenuto, della variabile, anche detto attributo del documento. Questo formato consente di rappresentare l’informazione in una matrice binaria che contiene, sulle righe, ciascun documento, sulle colonne, ciascun sostantivo, e all’interno i valori 1 o 0 ad indicare la presenza di una determinata parola chiave in un determinato documento oppure la sua assenza (la metainformazione è rappresentata in maniera analoga). Documento finale 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN NN 20000219 gene CDKN1B 20000219 gene IFI27 20000219 gene P27 astrocyte brain case cell control disease distribution expression frequency glioma grade index lesion pattern process proliferation rat specimen staining subset tumor 20000219 A D 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 20000219 PD E DA T TA PT NP RO NP RO NP RO NP RO NP RO NP RO NP RO NP RO NP RO JJ JJ JJ JJ JJ JJ JJ JJ JJ JJ JJ Departm ent of Neuros urgery , S higa Univers ity of M edic al S c ienc e, O hts u,Japan 1999 1999 B rain Tum or P athol Journal A rtic le as troc y tic as troc y tom as im m unohis toc hem ic a M IB -1 nonneoplas tic p27 p27K ip p27k ip1 p27-pos itive anom alous heterogeneous high-grade hum an low m alignant norm al reac tive rec iproc al s urgic al uniform Text Mining – aspetti applicativi in campo bio-medico 2 Siamo così giunti alla fase di data mining vera e clustering propria che si concretizza nell’applicazione di un N =Σ x x algoritmo di clustering. Poiché l’informazione Doc i N = Σ x (1-x ) disponibile è tutta di tipo qualitativo, si è scelto Doc j un algoritmo partitivo basato sull’analisi N = Σ (1-x ) x relazionale. Questo metodo consente di N = Σ (1-x ) (1-x ) Indice di Somiglianza confrontare tutte le coppie di documenti e di aN Condorcet a=b=1 c=1/2 s(i,j) = b N + c (N +N ) calcolare, per ogni coppia, un indice di Dice a=b=1 c=1/4 Soglia di Somiglianza somiglianza basato sul numero di co-occorrenze α in [0,1] se s(i,j) > α Doc e Doc sono simili delle parole chiave. default: α = 0.5 Sistema di ponderazione I cluster vengono formati in modo da w =1/x N = Σ x x w (N =.. N =...) w = log( N / x ) massimizzare la somiglianza complessiva dei documenti raggruppati e minimizzare la somiglianza dei documenti che vengono separati. Su questo processo si può intervenire agendo attraverso alcuni parametri (la soglia di somiglianza ed il sistema di ponderazione). m W1 W2 ... Wm 1 1 1 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 0 1 11 k=1 ik jk m 10 k=1 ik jk m 01 k=1 ik jk m 00 k=1 ik ik 11 11 10 01 i j m 11 k=1 ik jk k 10 01 k k .k .k Per consentire al ricercatore di effettuare analisi su una selezione di documenti di interesse (anziché su tutti i 400 mila disponibili) e di utilizzare i parametri più opportuni, questa fase di data mining è stata messa on-line. Esempio di risultati Supponiamo di essere interessati alle eventuali interazioni tra due geni, RET e BRCA1, e selezioniamo tutti i documenti che contengono almeno uno di questi geni. Con la query “RET <OR> BRCA1” otteniamo 1981 documenti (naturalmente è possibile selezionare i documenti anche in base alla patologia, utilizzando le opportune parole chiave, es: “breast cancer”, o con altri criteri). Poiché questi documenti sono già stati preparati secondo il procedimento precedentemente descritto, può essere lanciata un’analisi di data mining, che, in tempo reale, confronta le parole chiave dei documenti selezionati (in quanto questi sono gli attributi descrittivi che abbiamo deciso di usare per il clustering) e li raggruppa secondo i pattern individuati. I gruppi ottenuti vengono presentati in ordine di dimensione e sono descritti dalle parole chiave che maggiormente li caratterizzano. Questa descrizione automatica non sempre è sufficientemente chiara per capire il contenuto del cluster. Bisogna, in questo caso, entrare nel cluster (cliccando il simbolo sotto “docs”) per visualizzare l’elenco dei titoli (ed eventualmente il testo completo) dei documenti che contiene. La “cluster map” fornisce una visione d’insieme dei clusters e dei loro legami (nella partizione finale dei documenti possono rimanere dei residui di somiglianza tra documenti che sono stati assegnati a gruppi diversi: questi residui sono rappresentati da linee). Anche da questa mappa è possibile entrare in ciascun gruppo, seguendo in questo caso un percorso che è suggerito dai legami, piuttosto che dalla dimensione. Esempio risultati: RET <OR> BRCA1 Text Mining – aspetti applicativi in campo bio-medico 3 In questo esempio, la mappa mette in evidenza un gruppo di clusters (nell’immagine si trova in alto a sinistra, cerchiato di rosso) che sono collegati tra di loro, ma separati da tutti gli altri clusters. Se andiamo a vedere il loro contenuto, ci accorgiamo che tutti questi gruppi condividono alcune parole chiave quali “woman”, “history”, “age”, “test”, “risk”, … pur trattando di argomenti separati. Se andiamo a vedere la metainformazione (ciccando il simbolo sotto “report”), e, in particolare, i nomi di geni estratti da questi documenti, vedremo che RET non è mai presente. Un modo ancora più rapido per visualizzare la metainformazione è dato da “histogram”. In questa immagine, ogni barra rappresenta un cluster (tranne la prima che indica la distribuzione dei geni su tutti i documenti selezionati) e l’estensione di ciascun colore indica la percentuale di documenti che, all’interno del gruppo, contiene un particolare nome di gene (indicato dalla legenda). Ovviamente questa rappresentazione grafica ha dei limiti, per esempio solo i geni più frequenti vengono visualizzati. Per avere l’informazione completa occorre esaminare i report. Dall’immagine è comunque evidente che i documenti selezionati tendono a trattare dei due geni separatamente, come era prevedibile, dato che un gene è implicato nel tumore al polmone e l’altro nel tumore al seno e che le interrelazioni dovrebbero essere minime. Viceversa si può notare che, quando compare BRCA1 (colore rosso), spesso compare anche BRCA2 (colore giallo), quindi tra questi due geni deve esserci una interrelazione. Tornando al gruppo di clusters individuato sulla mappa, possiamo notare che si tratta proprio di quei clusters che fanno riferimento solamente a BRCA1 (il colore verde, che rappresenta RET, non compare nemmeno in piccola percentuale). I gruppi di documenti che, al contrario, trattano unicamente del gene RET (barre dove il colore rosso è assente) sono anch’essi evidenziabili sulla mappa come un insieme riconoscibile (nella mappa è stato cerchiato di verde) anche se non totalmente separato dagli altri. In questo caso sono le parole chiave “man”, “thyroid”, “thyrosine”, … a comparire più frequentemente. Gli altri due gruppi di clusters (cerchiati con tratteggio giallo, nella mappa), trattano prevalentemente di BRCA1, ma anche di RET. Le parole chiave sono infatti più generiche: in un gruppo troviamo “domain”, “protein”, “function”, “transcription”, “amino”, “acid”, …, nell’altro troviamo “chromosome”, “loss”, “marker”, … Esempio risultati: RET <OR> BRCA1 Di questi due gruppi, il primo contiene documenti di pubblicazione più recente, come si può vedere dall’istogramma che rappresenta la variabile anno di pubblicazione. I clusters 11, 18 e 24 sono infatti quelli nei quali l’area occupata dai colori del 2000-2001 è più estesa e tutti e tre appartengono al su menzionato primo gruppo. Questa analisi ha quindi individuato delle sequenze di parole chiave che sono condivise da più documenti e li ha raggruppati. Ogni cluster Text Mining – aspetti applicativi in campo bio-medico 4 rappresenta un diverso argomento. I macro argomenti sono comunque stati individuati attraverso i legami tra clusters. Così gli abstract che trattano del gene BRCA1, seppur da punti di vista diversi, sono (quasi tutti) collegati tra loro. Tutto ciò è stato ottenuto automaticamente. L’utente può però intervenire sul processo di clustering, selezionando le “advanced options” che sono disponibili, assieme al tasto “cluster”, dopo la selezione dei documenti. Esempio risultati: RET <OR> BRCA1 Se, nell’esempio precedente, modifichiamo il con “Nb cluster max” = 10 parametro # massimo di clusters portandolo a 10, avremo una rappresentazione ancora più sintetica dei nostri 1981 documenti. In questo caso tutti i documenti che trattano solo di RET sono raggruppati in un unico cluster separato da tutti gli altri, mentre quelli che trattano esclusivamente di BRCA1 sono raggruppati in due clusters collegati tra loro. Anche la modifica manuale dei pesi è spesso utile: quando, per esempio, da una prima elaborazione si evidenziano parole chiave di scarso significato (come “cell”). Attribuire peso zero a queste parole chiave consente di avere clusters più significativi. L’insieme delle parole con peso zero è anche detta lista di stop words. Attualmente non è possibile selezionare gli attributi che devono avere ruolo attivo nella formazione dei clusters e i patterns sono ricercati solo all’interno delle parole chiave, costituite, come si è visto dall’insieme dei sostantivi presenti nel testo. Teoricamente è possibile utilizzare per il clustering anche altre parti del discorso e/o la meta-informazione. Risultati interessanti si potrebbero infatti ottenere raggruppando i documenti in base ai nomi di geni che contengono, oppure in base a sostantivi e a nomi di geni, … Il processo di riconoscimento dei nomi di geni Il riconoscimento dei nomi di geni presenti all’interno degli abstract di Medline (terza ed ultima fase di preparazione dei documenti) è stato fatto sulla base di un “dizionario”. Questo processo è stato chiamato di information extraction in quanto con le tecniche di I.E. condivide almeno l’obiettivo finale ed inoltre si prevede di integrare questa fase con l’esecuzione di regole che attengono all’analisi semantica. Il “dizionario” è stato derivato dalla banca dati Locus Link, in quanto risulta essere la fonte più stabile e completa di informazioni sui geni finora individuati (le cui sequenze sono memorizzate nella banca dati collegata RefSeq). Locus Link deriva da UniGene ed associa a ciascun gene un numero identificativo univoco. Attualmente il processo si compone di tre parti: filtro, indicizzazione e generazione della metainformazione. Il filtro consente di estrarre dai record di Locus Link solo le informazioni di interesse e cioè OFFICIAL_SYMBOL ed ALIAS_SYMBOL, selezionare i termini di almeno tre caratteri e Filtro gene alias A1BG A2M A2MP NAT1 NAT1 NAT2 NAT2 AACP AACP SERPINA3 SERPINA3 SERPINA3 AADAC AADAC AAMP AANAT AANAT AANAT AARS AAVS1 AAVS1 ABAT ABAT A1BG A2M A2MP NAT1 AAC1 NAT2 AAC2 AACP NATP SERPINA3 ACT AACT AADAC DAC AAMP AANAT SNAT AA-NAT AARS AAVS1 AAV ABAT GABAT Indice A1BG 18650110 45822308 69800214 A2M 78121104 74300722 51024679 A2MP … Text Mining – aspetti applicativi in campo bio-medico Metainformazione 20000219 gene CDKN1B 20000219 gene IFI27 20000219 gene P27 5 creare le coppie GENE/ALIAS per la successiva indicizzazione dei documenti. L’indicizzazione viene fatta ricercando ciascun termine che compare nella colonna “alias” nel testo dei documenti e registrando il termine ufficiale corrispondente (che compare nella colonna “gene”), insieme al numero identificativo del documento che contiene l’alias. Questo elenco viene successivamente pulito dalle ridondanze e viene ordinato per identificativo del documento. Per ogni documento si ottiene così l’elenco dei nomi ufficiali di geni che vi compaiono, sia come tali, sia come alias. Questo consente di generare la meta-informazione nel formato precedentemente visto e di integrarla con le altre informazioni estratte dal documento originale. Occorre notare che questo uso degli alias non sempre porta ad una sintesi nei nomi di geni, vi sono infatti termini che risultano alias di più nomi ufficiali. È il caso del documento di esempio precedentemente visto in cui i nomi di alias individuati nel testo erano due (P27 e P27KIP1) mentre i nomi ufficiali assegnati al documento sono tre in quanto P27 è sia nome ufficiale, sia alias di IFI27. La ricerca all’interno dei testi è stata fatta cercando un match esatto con il termine della colonna “alias”. Nei casi in cui questo termine ha anche un significato compiuto nella lingua inglese (es: FAR, GAS, RED, …), per evitare di riconoscere come nomi di geni termini di tutt’altro significato, si è inibita la ricerca oppure la si è vincolata alla presenza dei termini “gene” oppure “protein” oppure “product” in un intorno di sei parole. Approcci alternativi di information extraction e di clustering Per quanto riguarda il riconoscimento di nomi di geni negli abstract, il semplice uso di dizionari può creare problemi dovuti sia alla presenza di termini di significato compiuto nella lingua inglese (ambiguità), sia dovuti al grado di aggiornamento e di completezza del dizionario (che è comunque un dizionario aperto, in continua espansione). Gli approcci alternativi al problema sono principalmente di due tipi: uno basato su regole Test Testinincampo campobiologico biologico geni(DNA) proteine proteine semantiche, sintattiche e morfologiche scritte ad Codifica manuale della conoscenza* geni(DNA) 96,7 96,7 hoc per l’applicazione specifica e l’altro basato Metodi di apprendimento su metodi di apprendimento. Maximum entropy * * ----------------Il primo richiede un grande sforzo in termini di Hidden Markov models * 47,2 75,9 47,2 75,9 risorse umane per codificare la conoscenza in un Decision trees * * 17,8 83,417,8--44,6 44,6 83,4-87,5 87,5 84,4 84,5 Naive Bayes * determinato dominio ed ha lo svantaggio che il 84,4 84,5 Metodi “statistici” risultato di questa attività è difficilmente 83,8 70,3 83,8 70,3 naive Bayes + “word lists”* riutilizzabile in contesti diversi. Nel caso dei Metodi ibridi * * * nomi di geni, inoltre, è particolarmente arduo ----------------LTG (Language Technology Group) individuare delle regole. F-score F-score==2*P*R/(P+R) 2*P*R/(P+R) * training * uso dizionari * regole hand coded Il secondo richiede di avere a disposizione un certo numero di documenti (da studi precedenti si può affermare che 100 abstract non sono sufficienti) già annotati, nei quali cioè i nomi di geni sono stati già individuati. Questo costituisce il corpus di addestramento che consente l’apprendimento automatico di regole. Lo schema riporta alcuni di questi metodi con a fianco, ove disponibile, un indicatore di successo nel riconoscimento di termini biologici (proteine o geni). Tale indicatore, l’F-score, è calcolato come sintesi di due ben noti indicatori nell’ambito dell’information retrieval: il grado di precision (quanti tra i termini individuati sono effettivamente nomi di geni) e il grado di recall (quanti, tra i nomi di geni presenti negli abstract, sono stati effettivamente individuati). riconoscimento termini - approcci Text Mining – aspetti applicativi in campo bio-medico 6 Queste informazioni sono state tratte da alcuni articoli scientifici (si veda, a questo proposito, la bibliografia allegata). Per quanto riguarda il clustering, alternative al metodo presentato si possono cercare nell’ambito della rappresentazione vettoriale che del documento viene fatta, nell’ambito della metrica scelta per misurare il grado di “prossimità” dei documenti, ed infine, nell’ambito dell’algoritmo. La rappresentazione del documento riguarda sia la scelta degli elementi descrittivi (nel nostro caso sostantivi, ma come abbiamo visto, anche altre scelte sono possibili) sia la modalità di rappresentazione vera e propria. Questa può essere binaria (come nel metodo che è stato presentato, dove l’attributo è presente oppure assente) ma può anche essere quantitativa (per esempio la frequenza con cui ogni sostantivo appare nel testo). La metrica dipende in parte dalla rappresentazione. Oltre all’indice di somiglianza, altre metriche molto utilizzate nell’analisi testuale sono la distanza Euclidea e il coseno dell’angolo compreso tra i vettori (entrambe utilizzabili solo nel caso di informazioni quantitative). L’algoritmo può essere principalmente di due tipi: gerarchico o partitivo. Di quest’ultimo tipo, oltre a quello visto, esistono anche le K-medie, le Self Organizing Maps, Autoclass, … Il metodo utilizzato costituisce, a nostro avviso un buon punto di partenza per la sperimentazione delle tecniche di text mining in ambito biologico. L’obiettivo è quello di creare uno strumento di effettiva utilità per il ricercatore, in questo senso l’unico indicatore di successo può essere quanto tempo fa risparmiare e/o quante nuove “scoperte” consente di fare. Bibliografia [1] Hamphrays, K., et al. (2000): Two Applications of Information Extraction to Biological Science Journal Articles: Enzyme Interactions and Protein Structures, in Proceedings of Pacific Symposium on Biocomputing, pp 72-80, World Scientific Press [2] Milward, T., et al. (2000): Automatic Extraction of Protein Interactions from Scientific Abstracts, in Proceedings of Pacific Symposium on Biocomputing, pp538-549, World Scientific Press. [3] Rindflesch, T. C. et al. (2000), “EDGAR: Extraction of Drugs, Genes and Relations from the Biomedical Literature”, PSB'2000 [4] Iliopoulos, et al., « TEXTQUEST : Document Clustering of Medline Abstracts for Concept Discovery in Molecular Biology» [5] Stapley, B.J. et al., « Biobibliometrics : Information Retrieval and Visualization form Co-occurrences of Gene Names in Medline Abstracts» [6] Jeffrey T. Chang et al., « Including Biological Literature Improves Homology Search » [7] Leung, S. et al., « Basic Gene Grammars and DNA-ChartParser for language processing of Escherichia Coli promoter DNA sequences » [8] Andrade, M. A. Et at., « Automatic extraction of keywords from scientific text: application to the knowledge domain of protein families » [9] Marcotte, E. M. et al., « Mining literature for protein-protein interactions » [10] Masys, D. R. et al., « Use of keyword hierarchies to interpret gene expression patterns » Text Mining – aspetti applicativi in campo bio-medico 7 [11] Eckman, B. A. et al., « The Merck Gene Index browser: an extensible data integration system for gene finding, gene characterization and EST data mining » [12] Fukuda, et al., (1999): “Toward Information extraction: Identifying protein names from biological papers”, PSB 98 [13] Collier, N., Nobata, C., and Tsujii, J. (2000), “Extracting the Names of Genes and Gene Products with a Hidden Markov Model”, COLING-2000 [14] Nobata, C., et al.(1999): “Automatic Term Identification and Classification in Biology Texts”, in Proceeding. of 5th Natural Language Processing Pacific Rim Symposium [15] Borthwick, A. et al. (1998), “Exploiting Diverse Knowledge Sources via Maximum Entropy in Named Entity Recognition”, Proceedings of the Sixth Workshop on Very Large Corpora, pp 152-160. [16] Hatzivassiloglou, V. et al., « Disambiguating Proteins, Genes, and RNA in Text : A Machine Learning Approach» [17] Mikheev, A. Et al., « Description of the LTG System used for MUC-7 » [18] Andrade, M. A. Et at., « Automatic Annotation for Biological Sequences by Extraction of Keywords from Medline Abstracts. Development of a prototype system. » Text Mining – aspetti applicativi in campo bio-medico 8