INDICE. Introduzione 1 Indice 3 Capitolo 1: Analisi dei Documenti Testuali 7

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "INDICE. Introduzione 1 Indice 3 Capitolo 1: Analisi dei Documenti Testuali 7"

Transcript

1 Introduzione Negli ultimi 20 anni una delle discipline della computer science che ha registrato lo sviluppo maggiore è stata senza dubbio la language engineering, la cui definizione secondo Cunningham è la disciplina o azione dei sistemi software dell ingegneria che realizza attività coinvolgendo l elaborazione del linguaggio umano. Sia il processo di costruzione che il suo output sono misurabili e predicibili. I motivi di questo forte progredire sono associabili al continuo avanzamento delle tecniche relative al Web, che in questo lasso di tempo partendo da zero sono riuscite a creare un rapporto inossidabile con l uomo. Il misurarsi quotidianamente con una infinità di testi completamente diversi l uno dall altro ha fatto emergere nell uomo il bisogno di un aiuto da parte dei computer nello scremare e scegliere le informazioni di cui effettivamente ha bisogno. Da qui la nascita della language engineering e del NLP, Natural Language Processing (Elaborazione del linguaggio naturale), ovvero quel processo di estrazione di informazioni semantiche da espressioni del linguaggio umano, scritte o parlate, tramite l elaborazione di un computer. Nel dominio della biomedicina, i ricercatori stanno facendo affidamento sui progressi dell informatica nella gestione dell informazione testuale e sperano di poter presto ottenere strumenti che permettano di affrontare il problema del sovraccarico informativo (information overload). La recente decodifica del genoma umano ha portato ad un esponenziale aumento del numero di pubblicazioni biomediche disponibili online, basti pensare che il database Medline (http://www.ncbi.nlm.nih.gov), che rappresenta il più grande repository relativo alla letteratura della ricerca in biomedicina, contiene approssimativamente dodici milioni di abstract di articoli biomedici e sta crescendo con più di diecimila entrate per settimana dall anno L informazione biomedica contenuta in database di testi come Medline rappresenta la più vasta fonte di informazione sulla ricerca in genomica accumulata attraverso gli anni. Queste risorse sono essenziali per i ricercatori in biomedicina nelle loro attività giornaliere. Diventa quindi sempre più difficile per loro tenere il passo con i progressi della ricerca senza l aiuto di strumenti automatici. In verità i ricercatori spesso hanno qualche database proprietario interno progettato per i loro specifici argomenti di ricerca, questo comunque non basta, in quanto i database richiedono modifiche 1

2 periodiche al fine di registrare le pubblicazioni sulle ultime ricerche del campo al fine di allineare i loro risultati con quelli dello stato dell arte. Aspetti critici, per i ricercatori, sono la necessità di individuare i sottoinsiemi di documenti rilevanti rispetto ad un particolare bisogno informativo e la necessità di accedere alle informazioni contenute in specifiche parti di documenti. A complicare le cose, questa domanda cresce e muta con l evoluzione degli scopi della ricerca biomedica: dopo il sequenziamento del primo genoma umano, una delle principali sfide nello studio del genoma, è identificare il ruolo dei geni e delle proteine nel metabolismo e nelle regulation networks. Molta della conoscenza utile a questi scopi non è facilmente recuperabile. In questa tesi viene descritto lo studio di tre sistemi di Named Entity Recognition (NRE), una tecnica di Information Extraction(IE) nel Text Mining(TM), sviluppati al fine di eseguire clustering, indicizzazione per un motore di ricerca semantico e estrazione di relazioni verbali con l ausilio di un database deduttivo partendo da un insieme di abstract di pubblicazioni scientifiche in cui sono presenti geni candidati e responsabili della sordità ereditaria non sindromica. 2

3 INDICE Introduzione 1 Indice 3 Capitolo 1: Analisi dei Documenti Testuali La scoperta di conoscenza nel testo Elaborazione del linguaggio naturale (NLP) Text Mining Information Extraction vs Information Retrieval La Bioinformatica Banche Dati Strumenti Bioinformatici Principali Applicazioni della Bioinformatica Ambito della tesi Named Entity Recognition per un task di Textual Profile Clustering Named Entity recognition per un task di Semantic Search Engine Template Filling con strutture Predicato-Argomento per un task di Pattern Discovery 20 Indice delle figure 22 Riferimenti bibliografici 22 Capitolo 2: Information Extarction Definizione e Storia Scenari Applicativi Cinque tipi di IE Named Entity recognition (NE) Coreference resolution (CO) Template Element construction (TE) Template Relation construction (TR) Scenario Template production (ST) Complessità vs Specificità Template filling Il modello spaziale 35 3

4 2.5.2 L architettura di un sistema per il template filling 40 Indice delle figure 42 Riferimenti Bibliografici 42 Capitolo 3: Named Entity recognition per un pattern di Textual Profile Clustering Metodi intelligenti per il calcolo di profili testuali Normalizzazione delle entità nominate Pre-elaborazione degli articoli Tokenizer FS Gazetteer Risoluzione dei conflitti tra le annotazioni Sostituzione dei sinonimi Normalizzazione del testo Analisi dei risultati Progettazione dei test Risultati dei test 59 Indice delle figure e delle tabelle 60 Capitolo 4: Named Entity recognition per un task di Semantic Search Engine Metodi e algoritmo di Information Retrieval di tipo semantico Etichettatura di Entità Nominate Pre-Elaborazione articoli, Tokenizer e FS Gazetteer Semantic Tagger Risoluzione dei conflitti tra le annotazioni Normalizzazione delle occorrenze Analisi dei risultati Progettazione dei test Risultati dei Test 76 Indice delle figure e delle Tabelle 78 Capitolo 5: Template Filling con strutture Predicato-Argomento per un task di Pattern Discovery Studio Statistico della co-occorrenza di relazioni tra Entità Nominate Le specifiche PasBio 85 4

5 5.3 Template Filling con strutture PasBio Normalizzazione dei documenti Estrazione di Relazioni Verbali dai Testi con MontyLingua Filtraggio delle Relazioni di Interesse Tokenizer ed FS Gazetteer Template Filling Trasformazione dei PAS in fatti Prolog 93 Indice delle Figure 100 Riferimenti bibliografici 100 Capitolo 6: Guida utente e Documentazione Tecnica (Il Database Relazioni) Naned Entity Recognition per il Task di Textual Profile Clustering Le risorse del sistema Input e Output del Sistema Lanciare l applicazione Named Entity Recognition per un task di Semantic Search Engine Le risorse del sistema Input e Output del Sistema Lanciare l applicazione Template Filling con strutture Predicato-Argomento per un task di Pattern Discovery Le risorse del sistema Input e Output del Sistema Lanciare l applicazione Il Database RELAZIONI Analisi dei Requisiti Specifica dei Requisiti Progettazione Trasformazione dello schema concettuale in schem a logico 119 Indice delle figure e delle tabelle 125 APPENDICE A : GATE: General Architecture for Text Engineering 126 A.1 Processing Resources ANNIE 127 5

6 A.2 Utilizzare GATE in un programma Java 133 A.3 JAPE 137 Indice delle figure 141 Riferimenti bibliografici 141 6

7 Capitolo 1 Analisi di Documenti Testuali 1.1 La scoperta di conoscenza nel testo Il percorso che porta dal testo alla conoscenza dei suoi contenuti passa attraverso diverse aree di ricerca che interagiscono tra loro. La strutturazione di un testo può essere fatta rispetto a diversi requisiti (sintattici, morfologici, strutturali, ecc.) ed avranno tanto più successo, quanto più riescono a tener conto della semantica di questi. Le grandi quantità di dati in gioco, rendono di particolare rilevanza la misura del tempo con cui si arriva al risultato, la capacità di recuperare l informazione adeguata in tempi ridotti non è il solo aspetto d interesse, infatti, ad esso va affiancato il saper gestire le informazioni e la conoscenza raccolta in modo da determinare una elevata usabilità delle risorse, per garantire il successo di imprese economiche, lo sviluppo sociale o il progresso scientifico. La natura non strutturata di questa informazione richiede per la sua gestione da una parte la selezione dei documenti rilevanti rispetto alle necessità specifiche dell utente; dall altra l estrazione dell informazione da testi per garantirne l impiego in altre applicazioni. Particolare esigenza dei ricercatori è, inoltre, l accesso alle informazioni contenute in specifiche parti dei documenti. La difficoltà dei ricercatori dell area dell Information Extraction risiede nel fatto che molta della conoscenza non è facilmente recuperabile e non esistono standard comuni o criteri di valutazione condivisi che permettano di confrontare i diversi approcci presentati. La mole di dati cresce esponenzialmente e il volume di informazioni da essi derivante, si scontra con l assenza di sistemi efficienti per le gestioni di grandi quantità di dati di dominio pubblico. L Information Overflow è il fenomeno 12 con cui s impatta a causa della difficoltà di estrarre e manipolare informazioni utili dal mare di informazioni proveniente da sorgenti di testo distribuite ed eterogenee. Un aiuto nella gestione delle risorse testuali proviene dagli sviluppi recenti della linguistica computazionale e del Natural Language Engineering i quali portano con loro l evoluzione tecnologica a poter migliorare la ricerca e gestione intelligente dell informazione contenuta nei documenti. Queste nuove tecnologie permettono di accedere al contenuto di un testo digitale mediante il Trattamento Automatico della Lingua (TAL) o tramite Natural Language Processing (NLP). Quest ultima è l area principale area di riferimento nella gestione automatica dei testi: si basa sull estrazione di informazioni (IE) che trasforma testi da non strutturati a strutturati permettendo di 7

8 codificare queste informazioni e salvarle eventualmente in un database. Catturare la semantica nascosta di un testo in linguaggio naturale è di per sé una meta ancora molto lontana, ci si deve concentrare sulle operazioni fondamentali di estrazione dell informazione dai testi di un ristretto dominio applicativo rispetto alle necessità specifiche dell utente. 1.2 Elaborazione del linguaggio naturale (NLP) Il Natural Language Processing (NLP) è un processo per l elaborazione e la gestione dell informazione testuale il cui fine ultimo è analizzare sintatticamente e comprendere il linguaggio naturale. Tipicamente si compone dei seguenti passi: Tokenization: divide il testo sorgente in unità chiamate token di cui ciascuna è una parola, un numero, una punteggiatura, una data, o altro. In generale il confine dei token è rappresentato dallo spazio bianco (spazio, tabulatore, inizio di riga), ma tale informazione non è sempre disponibile né sufficiente. La tokenizzazione è uno dei primissimi passi nei processi di analisi del linguaggio. Stemming: processo che estrae la radice di una parola, rimuovendo suffissi e desinenze. Lemmatization: processo che cerca il lemma (voce da vocabolario) a partire da una parola con desinenza. Rispetto allo stemming deve risolvere in più il problema di disambiguare tra le diverse forme base. Finding Collocations (Term Extraction): una collocation è un espressione, dotata di significato, che consiste di più parole caratterizzata dal fatto che il suo significato non può essere dedotto dal significato delle singole parti (es. machine learning). N-grams: è una sequenza generica di n parole e rappresentano costruzioni sintattiche comuni (es. <preposizione> + <articolo>), non sono necessariamente portatori di informazione semantica. Word Sense Disambiguation: questo compito consiste nel determinare quale dei significati di una parola ambigua è chiamato in causa in una particolare occorrenza. 8

9 Anaphora Resolution: l anafora è una relazione tra un espressione linguistica, detta appunto anafora, e un altra che la precede e ne determina il riferimento. Part Of Speech (POS) Tagging: etichetta mediante tag ogni parola di una frase con la sua corretta parte del discorso. Decide se una parola è un articolo, un nome, un aggettivo, ecc. Solitamente i sistemi POS forniscono supporto a processi più complessi quali, ad esempio, l Information Extraction. 1.3 Text Mining Il Text Mining indica la disciplina scientifica che si occupa di estrarre informazione e conoscenza dal testo, si basa su una serie di discipline correlate, come l Information Retrieval (IR), la linguistica computazionale e il Pattern recognition. Il termine Text Mining viene erroneamente usato per indicare il processo di Knowledge Discovery in Text (KDT) che è un processo di identificazione di pattern validi, nuovi, potenzialmente utili e comprensibili da dati testuali non strutturati. Un pattern può essere considerato come una regola che descrive un sottoinsieme di dati. TM in realtà è una fase del processo di KDT ed ha come obiettivo l analisi dell informazione contenuta in un testo non strutturato per scoprirne una strutturazione, o un messaggio nascosto nel testo. Il processo di KDT consta di quattro fasi: 1) IR: individuazione dei documenti rilevanti per un obiettivo; Si raccolgono tutti gli abstract delle pubblicazioni scientifiche inerenti ad una particolare malattia, o tutti gli annunci di lavoro pubblicati in un determinato periodo di tempo o tutte le cartelle cliniche in un ospedale. Questa fase può prevedere anche la digitalizzazione di documenti cartacei. 2) Pre-elaborazione dei documenti selezionati (NPL e IE) In questa fase viene effettuata la parte di analisi linguistica e tutto ciò che serve per arrivare ad una rappresentazione vettoriale del documento. In particolare l'identificazione (POS tagging) e la selezione dei termini, la lemmatizzazione, la ponderazione, la definizione delle stop-words, l'eventuale riduzione di dimensionalità, l'integrazione con eventuale metainformazione. 3) TM vero e proprio 9

10 Viene applicato un algoritmo di data mining specifico per l'obiettivo da raggiungere. Generalmente si tratta di machine learning (per la classificazione automatica) come per esempio un algoritmo di clustering (per il raggruppamento tematico). 4) Visualizzazione dei risultati. Infine vi è la fase valutazione che consiste nel calcolo di misure di efficacia e/o nell'interpretazione dei risultati ottenuti e nella presentazione dei dati ai committenti. Esistono sei diverse tecniche di TM ciascuna delle quali mira a risolvere problemi diversi in dipendenza alle esigenze informative che guidano il processo di analisi dei dati: 1. Classificazione: simile al TC, mira a estrarre una funzione o modello che assegni a un insieme di testi una categoria di appartenenza rispetto a un insieme predefinito di categorie; 2. Clustering o classificazione non supervisionata: mira a descrivere un insieme di testi scoprendo raggruppamenti in un insieme di categorie in conformità a misure di similarità; 3. Scoperta di trend (andamenti) in un insieme di documenti collezionati in istanti temporali diversi; 4. Scoperta di regole di associazione: mira a descrivere un insieme di testi scoprendo regolarità sulla base delle co-occorrenze ad esempio tra concetti; 5. Summarization: mira a riassumere un insieme di testi in modo tale da non compromettere il significato generale; 6. Scoperta di dipendenze: mira a descrivere un insieme di testi scoprendo dipendenze ad esempio tra concetti che occorrono nei testi. 10

11 1.4 Information Extraction vs Information Retrieval Il processo di Text Mining comprende tra l altro un task molto importante chiamato Information Extraction (IE) che si colloca nella fase di Pre-elaborazione. E molto importante distinguere il task di IE da quello di Information Retrieval (IR) che costituisce un altra tecnica applicata nell analisi dei testi Un sistema di IR è un sistema che accetta come input un insieme di documenti (denominato corpus ) e una query (insieme di parole chiave rappresentative dell argomento d interesse) e restituisce solo quei documenti appartenenti al corpus che considera rilevanti in accordo con la query, cioè i documenti nei quali è più probabile che sia contenuto il dato specificato. Abitualmente, in aggiunta ai documenti in output, viene restituita per ognuno di essi una misura caratteristica della rilevanza (score): esistono diverse metriche per quantificare tale rilevanza, ma di sicuro la più immediata è quella di collocare i documenti più rilevanti come primi nell output. L output di un sistema di IR è costituito da una collezione di documenti composti da insiemi di termini disordinati o meglio non strutturati. Sarà compito dell utente leggere il testo contenuto nel documento ed estrarne le informazioni di cui necessita. Diverso è il comportamento di un sistema di IE: questa è una tecnologia basata sull analisi del linguaggio naturale che permette l estrazione di frammenti di informazioni. Questo processo presenta gli stessi input dell IR ma restituisce in output dati poco ambigui in un formato prestabilito. Questi dati possono poi essere fatti visualizzare all utente oppure immagazzinati in un database o foglio di calcolo per un analisi successiva, o ancora usati come indici in applicazioni IR. Immaginiamo uno scenario in cui un ricercatore nel campo biomedico abbia bisogno di conoscere la scheda tecnica di un gene appartenente al genoma umano. Egli usa il motore di IR sull insieme di documenti presenti sul word wide web formulando la query con il nome del gene di interesse. Il sistema restituisce l insieme dei documenti in cui è presente con maggiore rilevanza il gene dato in input. Con buona probabilità in quell insieme è presente il documento di cui i ricercatore ha bisogno. Immaginiamo invece lo scenario in cui il ricercatore voglia farsi un idea di ciò che è stato pubblicato nella banca di dati Medline in merito alle relazioni che un dato gene ha con una malattia e con altri geni. In questo caso con l ausilio di un sistema di IR il ricercatore deve leggere tutti i documenti in cui i termini appartenenti alla query vengono ritenuti rilevanti e estrarre manualmente le informazioni che cerca. Se si considera la quantità di documenti presenti nel database si possono 11

12 facilmente immaginare le difficoltà che si presentano innanzi al ricercatore. Lavori di questo tipo sono molto onerosi in termini monetari e temporali. Intere equipe di ricercatori, durante la fase di progettazione di esperimenti sul genoma, esegue questo tipo di analisi. Il sistema di IR sarebbe molto più efficiente se fosse in grado di restituire dei dati risultanti da analisi sulla semantica dei testi. Per raggiungere un simile obbiettivo sarebbe necessario che l informazione contenuta nei testi fosse strutturata rispetto a possibili associazioni e relazioni tra i termini e il loro significato semantico. Un sistema di IE si occupa proprio di eseguire un processo che riconduce un testo ad una rappresentazione standard prefissata che consenta di esprimere la medesima informazione. Il tipo di informazione che tecniche di IE mirano ad estrapolare dipende dal contesto applicativo e dallo specifico interesse del destinatario di tale informazione. Attualmente, molti compiti di IE vengono eseguiti manualmente da esperti umani, che leggono i documenti sorgente e costruiscono le corrispondenti rappresentazioni strutturate da memorizzare nei database. 1.5 La Bioinformatica La bioinformatica e una nuova disciplina che si occupa dello sviluppo e dell'integrazione delle applicazioni della scienza dell informazione al servizio della ricerca scientifica in campo biotecnologico. Per fare ciò utilizza strumenti informatici per analizzare i dati biologici che descrivono sequenze di geni, composizione e struttura delle proteine, processi biochimici nelle cellule, etc. Disciplina ultima arrivata nel campo delle bioscienze, la bioinformatica costituisce l'ambizioso tentativo di descrivere dal punto di vista numerico e statistico i fenomeni biologici: storicamente ed epistemologicamente la biologia ha sempre sofferto di una carenza in tal senso rispetto a discipline come la fisica e la chimica, ma oggi la bioinformatica tenta di supplire a questa lacuna fornendo ai risultati tipici della biochimica e della biologia molecolare un corredo di strumenti analitici e numerici davvero promettente. 12

13 La bioinformatica principalmente si occupa di: Fornire modelli statistici validi per l'interpretazione dei dati provenienti da esperimenti di biologia molecolare e biochimica al fine di identificare tendenze e leggi numeriche; Generare nuovi modelli e strumenti matematici per l'analisi di sequenze di DNA, RNA e proteine la fine di creare un corpus di conoscenze relative alla frequenza di sequenze rilevanti; Organizzare le conoscenze acquisite a livello globale su genoma e proteoma in basi di dati al fine di rendere tali dati accessibili a tutti, e ottimizzare gli algoritmi di ricerca dei dati stessi per migliorarne l'accessibilità Banche Dati Una delle attività principali dei bioinformatici consiste nella progettazione, costruzione e uso di banche dati di interesse biologico. Una banca dati raccoglie dati e informazioni derivati da esperimenti di laboratorio, da esperimenti in silico (cioe utilizzare il dato informatico come punto di partenza per gli esperimenti in vitro. Si dice "in silico", in quanto i processori dei calcolatori sono costituiti da silicio) e dalla letteratura scientifica. Le banche dati sono progettate come contenitori costruiti per immagazzinare dati in modo efficiente e razionale al fine di renderli facilmente accessibili a tutti gli utenti: ricercatori, medici, studenti, etc. Le banche dati possono essere di due tipi: primarie o specializzate. Le banche dati primarie contengono informazioni e annotazioni delle sequenze nucleotidiche e proteiche, strutture del DNA e proteine e dati sull espressione di DNA e proteine. Le principali banche dati primarie sono: la EMBL datalibrary, la GenBank e la DDBJ. La EMBL datalibrary è la banca dati europea costituita nel 1980 nel laboratorio Europeo di Biologia Molecolare di Heidelberg (Germania). La GenBank è la corrispondente banca americana costituita nel 1982 e la DDBJ è la corrispondente Giapponese. Fra le tre banche dati è stato stipulato un accordo internazionale per cui il contenuto dei dati di sequenza presenti nelle tre banche dati è quasi 13

14 del tutto coincidente in quanto gli aggiornamenti quotidiani apportati in ciascuna banca dati vengono automaticamente trasmessi alle altre due. Le banche dati specializzate si sono sviluppate successivamente e raccolgono insiemi di dati omogenei dal punto di vista tassonomico e/o funzionale disponibili nelle Banche dati Primarie e/o in Letteratura, o derivanti da vari approcci sperimentali, rivisti e annotati con informazioni di valore aggiunto Strumenti Bioinformatici Una volta che i dati sono stati archiviati nelle banche date biologiche è necessario utilizzare alcuni strumenti bioinformatici in modo tale da ricavarne informazioni. Essi si sono sviluppati in base a questi tre processi biologici fondamentali: la sequenza del DNA determina la sequenza aminoacidica della proteina (mediante il processo della sintesi proteica); la sequenza aminoacidica determina la struttura tridimensionale della proteina; la struttura tridimensionale della proteina ne determina la funzione. La bioinformatica ha focalizzato la sua analisi su dati relativi a questi processi, e di conseguenza le banche dati costituiscono un potente supporto per una vasta gamma di ricerche quali, ad esempio: data una sequenza di acidi nucleici o proteica trovare una sequenza simile in banca dati; data una struttura proteica trovare, in banca dati, una struttura simile ad essa; data una sequenza proteica prevedere una possibile struttura tridimensionale. 14

15 I principali strumenti possono essere cosi organizzati: Ricerca di sequenze simili Sequenze omologhe sono sequenze che hanno un gene ancestrale comune. Il grado di similarità fra due sequenze può essere misurato mentre l omologia è un dato qualitativo. Esistono una serie di strumenti (es BLAST) che possono essere utilizzati per identificare similarità fra nuove sequenze con funzione e struttura sconosciuta e sequenze (archiviate nelle banche dati) la cui struttura e funzione sono note. Studio delle funzione delle proteine Questo gruppo di programmi (es. PROSITE, SMART) permette di utilizzare una sequenza per estrarre informazioni su motif, domini strutturali dalle banche dati specializzate. Questo potrebbe essere di aiuto per avere informazioni sulla funzione della proteine ignota. Analisi delle strutture Questi strumenti permettono di comparare una struttura con una banca dati di strutture note. Molto spesso proteine con struttura simile hanno una stessa funzione, quindi determinare la struttura secondaria/terziaria e cruciale per capire la funzione. (es. EBIMSD). Analisi della sequenza primaria Identificare/analizzare l evoluzione, identificare mutazioni, regioni idrofobiche o altre proprietà che permettano di capire la funzione della proteina. (es. ENSEMBL) Principali applicazioni della Bioinformatica Numerose possono essere le applicazioni della bioinformatica. Qui citeremo solo un aspetto della medicina molecolare. Si ritiene che molte malattie siano associate ad una componente genetica. La malattia, infatti, può essere ereditaria (sono note circa malattie genetiche come la fibrosi cistica, alcune forme di diabete, etc) oppure essere il risultato di fattori ambientali che causano alterazioni del genoma (tumori, malattie cardiache, ecc). Una branca della bioinformatica studia quali geni siano associati a diverse malattie per capirne più chiaramente le basi molecolari con lo scopo di migliorarne la prevenzione e la cura. 15

16 1.6 Ambito della Tesi Questa tesi si colloca all interno di un progetto a cui partecipano il L.A.C.A.M. (Laboratorio per l Acquisizione della Conoscenza e Apprendimento nelle Macchine) del Dipartimento di Informatica dell Università degli Studi di Bari e MBLab (Molecular Biodiversity LABoratory) una iniziativa iniziata nel 2007 e parzialmente fondata da MUR (Ministero dell Università e della ricerca). Obbiettivo della collaborazione è la realizzazione di un workflow per eseguire gene prioritization; si cerca di scoprire in maniera automatica, basandosi su un insieme di abstract di pubblicazioni scientifiche inerenti ad una data malattia, quali sono i geni maggiormente coinvolti. Tale attività è di evidente supporto ai biologi che avrebbero a disposizione uno strumento per la selezione dei geni candidati agli esperimenti, capace di tenere conto di tutte le pubblicazioni relative a tali geni, non dovendo più, in tal modo, consultarle manualmente (lavoro molto dispendioso vista la mole di dati da analizzare). L ambito di studio della tesi è la progettazione, la realizzazione e la misurazione del livello di precisione di tre componenti del workflow che dato un insieme composto da oltre 90'000 abstract di pubblicazioni scientifiche in lingua inglese inerenti alla sordità ereditaria non sindromica, si pongono i seguenti obbiettivi: Normalizzazione dei testi con lo scopo di rendere più efficace un algoritmo di pesatura delle entità biomediche in essi contenute. Formattazione dei testi secondo il formato standard IOB-2 al fine adattare i testi alle specifiche di input di un motore di ricerca semantico che si occupa di indicizzare i contenuti degli articoli rispetto alle entità di interesse. Estrazione di relazioni verbali tra entità biomediche presenti nei documenti e template filling di queste, in istanze di strutture dette PasBio (Predicate Argument Structure applicate al campo BIOmedico) al fine di adattarle alle specifiche di input di un database deduttivo per lo studio della co-occorrenza di tali relazioni nell insieme dei testi. 16

17 1.6.1 Nemed Entity Recognition per un task di Textual Profile Clustering Negli ultimi anni sono stati sviluppati molti metodi ed algoritmi per l'estrazione di elementi rilevanti da testi di interesse biomedico. Molti di questi metodi riguardano il riconoscimento di entità di interesse nei testi che trattano malattie, geni o qualunque unità sperimentale biologica. Altri metodi puntano a scoprire relazioni tra entità biologiche partendo dalle descrizioni testuali di queste entità negli articoli scientifici. La maggior parte di questi metodi riguardano il singolo abstract o il documento scientifico integrale durante l'elaborazione ignorando le relazioni esistenti in una collezione di articoli scientifici. Nel contesto del gene scoring, queste relazioni posso rivelarsi fondamentali nello scoprire la priorità di un gene rispetto ad un altro. Su questa base, recentemente sta emergendo una nuova tipologia di analisi dei testi riguardanti i geni che si basa sul profilo testuale (textual profile) del gene. Il profilo testuale è una rappresentazione del gene costituita dai termini più significativi che lo descrivono in una collezione di testi scientifici che lo riguardano in maniera rilevante, cioè gli articoli scientifici che presentano i risultati più importanti su quel particolare gene. Alla base di tale analisi vi sono degli algoritmi di pesatura dei geni rispetto alla collezione dei documenti. Tanto migliore è l algoritmo e tanto più efficace risulterà l analisi. Durante i mesi passati le attività svolte nell ambito di questo progetto hanno riguardato la messa a punto di un nuovo metodo di pesatura dei termini di un documento combinando calcoli statistici come il tf-idf, la posizione di un termine nell'articolo e la pesatura dell'etichetta (titolo, abstract o corpo) a cui il termine appartiene. Questo nuovo algoritmo di pesatura permette di generare dei profili testuali semantici con i termini più importanti che riguardano un certo gene. Prima di effettuare la pesatura è necessario applicare agli articoli un processo di normalizzazione dei testi. Gli articoli scientifici di partenza costituiscono una descrizione narrativa della investigazione scientifica condotta, pertanto consistono di documenti testuali scritti in linguaggio naturale tipicamente caratterizzati da occorrenze di nomi canonici di entità biomediche e nomi alternativi delle medesime entità. Infatti, nelle discipline biomediche è frequente l uso di varianti di simboli di geni o proteine (e.g., CX26 piuttosto che Connexin 26) e di acronimi o abbreviazioni del nome esteso (e.g. HHL piuttosto che Hereditary Hearing Loss). Generare il profilo testuale per ciascuna delle entità senza considerare tali aspetti significherebbe rendere inverosimili sia le pesature dei termini, sia gli scores assegnati ai geni candidati. 17

18 Il primo sistema realizzato prevede normalizzazione dei testi indirizzata ai seguenti obbiettivi: Sostituzione di sinonimi con termini canonici (e.g., tutte le occorrenze di Connexin 26, Cx26, connexin26, ecc.. vengono rimpiazzate con il termine canonico GJB2); Sostituzione di caratteri blank con dei trattini bassi nei termini multi token (Hereditary Hearing Loss diventa Hereditary_Hearing_Loss); Eliminazione delle ripetizioni tra parentesi e separate da slash (la sezione di testo Connexin26 (Cx26) diventa GJB2, mentre Connexin30/Cx30 diventa GJB3 ); Eliminazione di slash tra termini non sinonimi tra loro (GJB2/GJB3 diventa GJB2 GJB3) Named Entity Recognition per un task di Semantic Search Engine L'attività del progetto prevede tra gli obiettivi lo studio di strumenti che consentano di interrogare banche dati contenenti dati biologici annotati sulla base di metadati che incapsulano la conoscenza dell'esperto del dominio. In questa ottica, sono state studiate e approfondite le tecniche di Information Retrieval (IR) basate su approcci statistici che permettono il ritrovamento di dati biologici. Affinché un sistema di IR possa recuperare in modo efficiente ed efficace i documenti è necessario che disponga di una rappresentazione logica del contenuto informativo di ciascun oggetto. Sebbene le capacità di memorizzazione dei moderni sistemi di IR siano dell ordine di terabyte, una rappresentazione completa del documento in cui vengono utilizzati tutti i termini che lo compongono (full text) richiede un elevato sforzo computazionale. Si preferisce adottare rappresentazioni logiche che prendano in considerazione solo una parte dei termini del documento: i termini indice (index term). L utilizzo dei termini indice si basa sul presupposto che la semantica del documento e i bisogni informativi dell utente possano essere espresse attraverso un insieme ristretto di termini del dizionario rispetto a tutte le parole del documento. Per ridurre i termini rappresentativi del documento si rendono necessarie operazioni di trasformazione del testo (text operation). Una iniziale operazione di trasformazione del documento testuale e l annotazione e rappresentazione in un formato standard. 18

19 A tale scopo è stato implementato un sistema che si occupa di: 1. Riconoscere entità biomediche di interesse presenti all interno di ciascun documento; 2. Fornire un annotazione in forma di Label di dominio a ciascuna entità riconosciuta; 3. Rappresentare le annotazioni generate nel formalismo IOB-2. Considerando il Token come una entità biomedica riconosciuta dal sistema, indipendentemente dal fatto che essa sia composta da più parole o gruppi di sequenze di simboli alfanumerici maiuscoli o minuscoli e una Label come l annotazione relativa al dominio di appartenenza del Token, il formato standard IOB-2 prevede la seguente rappresentazione delle coppie di Token Label: Un Token singolo viene rappresentato nel formato: Token \t B Label; Un Token composto da più gruppi di simboli alfanumerici separati da uno spazio viene rappresentato nel formato: gruppo1 \t B etichetta gruppo2 \t I gruppo3 \t I Un Token al quale non è stata associata nessuna Label viene rappresentata ne formato: Token \t O 19

20 La figura 1 mostra un esempio di output del sistema di annotazione: Figura Template Filling con strutture Predicato-Argomento per un task di Pattern- Discovery Terzo obbiettivo del progetto è la definizione di un metodo che consenta di riassumere gli abstract dei documenti tramite regole di associazione che descrivono regolarità all interno degli stessi. Tali regolarità fanno riferimento ad una rappresentazione strutturata del testo in termini di strutture predicato-argomento. Il fine ultimo è quello di effettuare un analisi statistica sulla co-occorrenza delle relazioni verbali tra entità biomediche all interno dei testi avvalendosi dell utilizzo di SPADA. L algoritmo SPADA (Spatial Pattern Discovery Algorithm) scopre pattern frequenti nello spazio dei dati sfruttando un approccio basato su tecniche di ILP (Inductive Logic Programming). A tale scopo è stata implementata nell ambito di questa tesi una pipeline per l estrazione delle relazioni verbali dagli abstract delle pubblicazioni e la trasformazione di questi in fatti Prolog, ammessi come input da SPADA. 20

21 Tale pipeline si compone dei seguenti passi: 1. Normalizzazione dei documenti per mezzo del sistema descritto nel paragrafo 1.6.1; 2. Estrazione di relazioni verbali tra entità biomediche dai testi mediante l utilizzo del sistema MontyLingua; 3. Filtraggio delle relazioni di interesse rispetto al dominio biomedico; 4. Template filling delle relazioni in istanze di strutture predicato-argomento secondo le specifiche PASBIO. 5. Trasformazione delle strutture predicato argomento in fatti Prolog. 21

22 Indice delle Figure Figura 1: Output del sistema di annotazione presentato secondo il formalismo IOB-2 Riferimenti Bibliografici Giulio Pisani - Analisi, Progettazione E Sviluppo Di Un interfaccia Per Il Template Filling In Compiti Di Information Extraction Da Testi Biomedici Tesi di Laurea Dipartimento di Informatica dell Università degli studi di Bari, a.a Antonello Falcone - Progettazione e realizzazione di un text processor per l estrazione e rappresentazione logica di strutture predicato-argomento Tesi di Laurea Dipartimento di Informatica dell Università degli studi di Bari, a.a Simone Ferrari - Information Extraction: il rapport, GATE - Named Entity Recognition Tesi di Laurea Facoltà di Ingegneria Informatica, sede di Modena, a.a Luca Cannone - Interfacciamento di WISDOM++ a un modulo per l Information Extraction Tesi di Laurea - Dipartimento di Informatica dell Università degli studi di Bari, a.a Andrea Piemintese - Estrazione dell Informazione per Pratiche Cliniche da Linee Guida Testuali Tesi di Laurea - Dipartimento di Informatica dell Università degli studi di Bari, a.a

23 CAPITOLO2 Information Extarction 2.1 Definizione e Storia In generale, il termine Information Extraction si riferisce al problema di trovare informazioni utili da un insieme di testi e codificarle in un formato tale da permettere la loro immissione in un database. In breve, la IE è vista come un processo che riconduce un testo ad una rappresentazione standard prefissata che consenta di esprimere la medesima informazione. L IE nel senso discusso qui in precedenza nasce alla fine degli anni 80 inizio anni 90 intorno alle Message Understanding Conferences (MUCs) (Grishman and Sundheim (1996); Sundheim (1995); Chincor (1998)). Questi eventi furono particolarmente distintivi perché impiegarono una precisa e diretta procedura di valutazione quantitativa dove diversi istituti di ricerca prima definivano una precisa attività, poi implementavano sistemi competitivi che venivano confrontati con i dati annotati dall uomo. Sebbene questo tipo di procedura sperimentale sembra ovvia in molti altri rami della scienza, il suo utilizzo prima di MUC era insolito in molti contesti di language processing (probabilmente dovuto alle prime associazioni tra il lavoro e i campi fenomenologici come la linguistica, in opposizione alla sperimentazione empirica o all ingegneria). Il ciclo sperimentale di MUC guidò verso grandi progressi nell IE fino alla canonica definizione che illustreremo in seguito (sezione 2.4). Seguendo questo approccio, i lavori riguardanti l IE presero parecchie direzioni. Attualmente una delle applicazioni più rilevanti dell Information Extraction è quella del web semantico, ovvero, secondo il significato di questo termine coniato dal suo ideatore Tim Berners- Lee, la trasformazione del World Wide Web in un ambiente dove i documenti pubblicati (pagine HTML, file, immagini, e così via) siano associati ad informazioni e dati (metadati) che ne specifichino il contesto semantico in un formato adatto all'interrogazione, all'interpretazione e, più in generale, all'elaborazione automatica. In questo contesto il processo di estrazione di informazioni da una sorgente informativa, e strutturazione delle stesse, prende il nome di wrapping, mentre gli strumenti software preposti a tale scopo prendono il nome di wrapper. 23

24 2.2 Scenari Applicativi Gli ambiti di impiego dell Information Extraction sono diversi. Riporto alcuni scenari d esempio: Analisi finanziaria Il Web contiene numerose indicazioni di come una compagnia è vista, e quello o no che ci si aspetta che attui fortemente nel breve periodo. Alcuni di questi dati sono già altamente analizzati, come per esempio la notizie finanziarie scritte in inglese. Altri dati, scritti in altre lingue o provenienti da sorgenti esaminate meno bene, sono voluminosi ed oscuri. L IE può permettere all analisi di rispondere a domande del tipo Quante istanze che predicono una forte performance ci sono per una determinata compagnia? Negli anni passati come è cambiato il profilo di predizione per questa compagnia? Quanti giudizi positivi/negativi sono stati espressi nei confronti della compagnia? Strategia di marketing La correzione dinamica agli investimenti di marketing è resa sempre più difficile dall insufficienza di metriche che indichino l impatto degli elementi della campagna. L IE può sostenere la campagna di oggi basandosi sui risultati di ieri, producendo un output del tipo Il 7% degli articoli della stampa di oggi relativa all Information Technology parla della sua compagnia. La proporzione media degli articoli direttamente riferiti alla sua compagnia è il 33%. Le citazioni per gli altri concorrenti chiave nel suo settore sono riassunte nella seguente tabella... In modo molto simile, possiamo misurare il volume delle citazioni dovute ad eventi di pubblicizzazione: La compagnia Y espone a Bari. Nella settimana seguente l esposizione il 20% della stampa che copre Bari ha menzionato Y. Lavori di Public Relations Lo staff di Public Relations è interessato ad individuare il più in fretta possibile gli eventi che comportino un feedback negativo in modo tale da rispondere. L IE può essere configurato per restituire il seguente tipo di output: La tabella seguente riassume 12 citazioni negative riguardanti la compagnia Y nelle ultime 24 ore delle notizie italiane 24

25 2.3 Cinque tipi di IE Nel 1998, anno in cui terminò il progetto del MUC, si giunse alla definizione di IE suddivisa in cinque attività: Named Entity recognition (NE) Trova e classifica nomi, posti, organizzazioni, ecc; Coreference resolution (CO) Identifica le relazioni d identità tra entità; Template Element construction (TE) Aggiunge informazioni aggiuntive ai risultati del NE (usando CO); Template Relation construction (TR) Trova relazioni tra entità TE; Scenario Template production (ST) Trasferisce i risultati del TE e TR in uno specifico scenario d evento. Consideriamo questa frase: The shiny red rocket was fired on Tuesday. It is the brainchild of Dr. Big Head. Dr. Head is a staff scientist at We Build Rockets Inc. Il NE scopre che le entità in gioco sono rocket, Tuesday, Dr. Head e We Build Rockets Inc. CO individua che it si riferisce a rocket. TE comprende che il rocket è shiny red ed è una brainchild del Dr. Head. TR scopre che il Dr. Head lavora per la We Build Rockets Inc. 25

26 ST capisce che c è stato un evento di lancio nel quale le varie entità sono state coinvolte. Lo studio finalizzato al raggruppamento dei documenti e quello finalizzato alla loro indicizzazione utilizza solo il processo di Named Entity Recognition, invece lo studio per estrazioni delle relazioni verbali utilizza solo le prime tre. Di seguito è riportata una breve descrizione dei cinque processi tecniche Named Entity recognition (NE) La tecnologia IE più semplice e più affidabile è Named Entity recognition. I sistemi NE identificano tutti i nomi di persona, i posti, le organizzazioni, le date, le quantità di soldi ecc. Nonostante le categorie del NE siano predefinite, ci sono varie opinioni su quali categorie debbano essere viste come named entities e quanto ampie queste categorie debbano essere. Alcune convenzioni emersero, e le entità sono comunemente evidenziate in accordo con il formato XML descritto nelle MUC. I tag ENAMEX sono usati per i nomi; NUMEX per le entità numeriche; TIMEX per le entità temporali. Per esempio la frase Jim bought 300 shares of Acme Corp. in 2006 viene analizzata come illustrato in figura 2 da un sistema IE, mentre il corrispondente codice XML è: <ENAMEX TYPE="PERSON">Jim</ENAMEX> bought <NUMEX TYPE="QUANTITY">300</NUMEX> shares of <ENAMEX TYPE="ORGANIZATION">Acme Corp.</ENAMEX> in <TIMEX TYPE="DATE">2006</TIMEX>. Le categorie di base sulle quali si è convenuto includono le seguenti tipologie di annotazioni: 1) Names (enamex) Organization Person Location 26

27 2) Times (timex) Date Time 3) Numbers (numex) Money Percent La figura 1 riporta l output di un tool di NPL sulla frase di esempio rispetto al processo di NER. Figura 2 Le categorie di metadati da associare a delle entità possono comunque variare in base ai requisiti del progetto in cui viene applicato il processo. Nell ambito dello studio condotto in questa tesi le etichette utilizzate sono i nomi dei dizionari di appartenenza delle entità biomediche. 27

28 Nonostante NER sia la tecnica più semplice di IE presenta delle difficoltà dovuta al fatto che dei termini possono essere etichettati come appartenenti a più categorie di dati. E quindi necessario un lavoro di risoluzione dei conflitti tra le etichette generate Coreference resolution (CO) La Coreference resolution comporta l identificazione delle relazioni d identità tra le entità presenti nel testo. Queste entità possono essere quelle identificate dal NE recognition e riferimenti anaforici a quelle entità. Per esempio, nella frase Alas, poor Yorick, I knew him Horatio la CO collegherebbe Yorick con him (e I con Hamlet, se sono presenti informazioni sufficienti nel testo circostante). Questo processo è meno rilevante all utente rispetto alle altre attività dell IE; la vera utilità dell output di questa fase è di essere di importante appoggio per gli altri processi quali Template Element Construction e Template Relation Construction. CO rende disponibile l associazione di informazioni descrittive sparse per tutto il testo con le entità alle quali si riferisce. Essa si occupa di due sottoproblemi: Risoluzione Anaforica ad esempio nella frase Luisa lost her bag CO è capace di estrarre informazione sul fatto che Luisa e her si riferiscono alla medesima entità. Risoluzione dei nomi propri ad esempio CO potrebbe estrarre l informazione che le parti del testo IBM, IBM Europe e International Businnes Machines Ltd si riferiscono alla medesima entità. I sistemi CO sono imprecisi e la loro affidabilità dipende dal contesto. I risultati dell analisi di precisione di sistemi di Coreference Resolution sono molto variabili in quanto il processo è fortemente dipendente dal contesto. Possono essere considerati buoni dei risultati di precisione che si aggirano intorno al 50-60%. 28

29 2.3.3 Template Element construction (TE) Le attività TE vengono costruite su NE recognition e coreference resolution, associando informazioni descrittive con le entità. Per esempio, dal testo di figura 3 il sistema trova che Bush administration viene anche riportato come government officials, e questo viene aggiunto come un alias. L output del TE per il testo d esempio è riportato nella figura 4; il formato è arbitrario. La cosa da notare è che questo è essenzialmente un database record, e potrebbe benissimo essere formattato per operazioni di store in SQL, o inserito in un foglio di calcolo elettronico, o (con qualche processo aggiuntivo) reso disponibile per una presentazione multilingue. Le figura 2 e 3 mostrano un testo dato in input ad un sistema TE e un output del processo. Figura 3 29

30 Figura 4 Come nel NE recognition, anche i risultati del TE sono debolmente dipendenti dal dominio, per esempio cambiare l argomento Come descritto in Applet (1999), l attività di template relation richiede l identificazione di un piccolo numero di possibili relazioni tra i template elements individuati nell attività template element. Queste potrebbero essere il rapporto di lavoro tra una persona e una compagnia, una relazione di parentela tra due persone, una rapporto accessorio tra due compagnie. L estrazione di relazioni tra entità è una caratteristica centrale di quasi ogni attività di information extraction, sebbene le possibilità nelle attività di estrazione nel mondo reale siano senza fine.tr è un attività debolmente dipendente dal dominio. Buoni risultati di precisione si aggirano intorno al 75%. La figura seguente riporta un output del Template Relation construction. oggetto del testo da notizie finanziarie ad altri tipi di notizie comporta qualche cambiamento al sistema, e cambiare da notizie a riviste scientifiche comporta cambiamenti abbastanza ampi. Possono essere considerati buoni indici di precisione quelli che si aggirano intorno all 80%, considerando che una ricerca effettuata sull uomo mostra risultati del 95% 30

31 2.3.4 Template Relation construction (TR) Prima del MUC-7, le relazioni tra entità erano parte del template dell output delle valutazioni IE. Per permettere di catturare in modo largamente più vantaggioso le relazioni, MUC-7 introdusse l attività TR figura 4. Come descritto in Applet (1999), l attività di template relation richiede l identificazione di un piccolo numero di possibili relazioni tra i template elements individuati nell attività template element. Queste potrebbero essere il rapporto di lavoro tra una persona e una compagnia, una relazione di parentela tra due persone, una rapporto accessorio tra due compagnie. L estrazione di relazioni tra entità è una caratteristica centrale di quasi ogni attività di information extraction, sebbene le possibilità nelle attività di estrazione nel mondo reale siano senza fine. possono essere considerati buoni punteggi di precisione quelli che si aggirano intorno al 75%. TR è un attività debolmente dipendente dal dominio. Figura Scenario Template production (ST) Scenario templates (STs) sono l output prototipo dei sistemi IE, essendo l attività originale per la quale il termine fu coniato. Essi collegano insieme entità TE e relazioni TR creando delle descrizioni di evento. Per esempio, TE può aver identificato Isabelle, Dominique e Françoise come 31

32 entità persona presenti nell edizione Robert delle lettere d amore di Napoleone. ST può in seguito identificare avvenimenti come quello che Isabelle si trasferì a Parigi da Lione nel 1802 per stare più vicina al suo piccolo ragazzo, che Dominique diede alle fiamme gli appartamenti di Isabelle, che Françoise scappò via con un antenato di Gerard Depardieu. Un esempio un po più pertinente è presentato nella figura seguente, adattato da MUC-6 ARPA (1995). La figura 5 mostra l output di un sistema ST. Figura 6 ST è un attività IE difficile; i migliori sistemi MUC raggiungono prestazioni intorno al 60%. Il punteggio umano può aggirarsi intorno all 80%, che illustra la complessità implicita. Questi aspetti devono essere tenuti in considerazione quando si prendono in esame appropriate applicazioni in tecnologia ST. Da notare, comunque, che si può aumentare la precisione al prezzo di effettuare più chiamate: possiamo sviluppare sistemi ST che non commettono molti errori, ma che tralasciano molte occorrenze di scenari rilevanti. In alternativa possiamo aumentare il numero delle chiamate e diminuire le perdite di dati, ma al prezzo di commettere più errori. L attività ST è sia dipendente dal dominio sia, dalla definizione, collegata agli scenari di interesse degli utenti. Da notare che i risultati di NE, TR e TE vengono incamerati nel ST. Si noti in aggiunta che in MUC-6 e MUC-7 agli sviluppatori furono date le specifiche per l attività ST solo un mese prima che il sistema venisse analizzato in prestazioni. Questo perché non ci si accorse che un sistema IE che necessitasse di molte e lunghe revisioni per far fronte a nuovi scenari valesse meno rispetto ad uno che potesse andare incontro a nuove specifiche abbastanza rapidamente (see section about portable IE). Da ciò si può trarre che i punteggi in MUC-6 e MUC-7 furono probabilmente leggermente inferiori a quelli che sarebbero stati con un periodo di sviluppo maggiore. L esperienza dalle precedenti MUCs e dai lavori successivi suggerisce, comunque, che la tecnologia contemporanea ha difficoltà ad ottenere punteggi superiori al 60% in accuratezza per questa attività. 32

33 2.4 Complessità vs Specificità La differenza tra il progetto generale dell analisi del linguaggio(o comprensione) e la più ristretta impresa dell extraction è la risposta alle basse performance dell analisi nel caso generale. Per capire meglio ciò, immaginiamo di voler realizzare un applicazione che si serve dell analisi del linguaggio come supporto a qualcuna delle sue funzioni. Supponiamo che le informazioni che possono essere estratte varino in complessità (es. siamo interessati semplicemente ai nome di persona o ad eventi complessi che coinvolgono molti partecipanti) e in specificità (es. siamo interessati ad informazioni generali riportate in qualsiasi modo in qualsiasi testo, o a settori specifici riportati in un certo modo in alcuni tipi di testo). Se noi trasferiamo su un grafico di coordinate complessità-specificità delle informazioni che verranno estratte i livelli di performance accettabile dei componenti dell analisi, notiamo che esiste un trade-off (compensazione) tra le due variabili: maggiore è la complessità dei dati che devono essere estratti, più specifica deve essere la sfera del discorso; più sono semplici i dati, più in generale gli algoritmi di estrazione possono essere applicati. Questa visione bidimensionale delle performance dell IE nasconde una serie di delicati problemi. Per esempio, un testo che informa lo svolgimento di un seminario (testo molto specifico, molto semplice da analizzare per i sistemi IE) può essere più facile o difficile da processare a seconda del genere. Infatti, se il testo è riguardo una serie di seminari circa grandi uomini del passato, ci può essere ambiguità tra i nome di coloro che intervengono e quelli delle persone oggetto dei seminari. D altro canto, se i seminari riguardano le telecomunicazioni mobili, la regolarità e la specificità della terminologia tipica di questo ambito rende l analisi strutturale più semplice. Perciò dobbiamo anche considerare i parametri tipo di testo e oggetto(dominio): -tipo di testo: il tipo di testo con il quale stiamo lavorando, per esempio articolo di giornale, , romanzo, od output di un riconoscitore vocale. -dominio: l argomento oggetto dei testi, per esempio eventi mondiali, avvisi di seminari, riviste finanziarie, richieste di supporto tecnico, informazioni turistiche, e lo stile col quale sono scritti, per esempio formale o informale. Alla fine c è il problema di a quali informazioni l utente di IE è interessato: nomi di persona, lanci di missili, fusioni tra compagnie, problemi riscontrati con un particolare pacchetto software, o la descrizione di come localizzare una zona della città. 33

34 La figura 6 mostra il grafico complessità-specificità: Figura Template filling Secondo la terminologia stabilita dal MUC si intende per scenario l insieme delle caratteristiche estratte mediante un processo di IE e per template il formato tabulare di output delle informazioni estratte. La fase di template filling ha lo scopo di incanalare le informazioni estratte nelle istanze dei template, strutture precedentemente progettate al fine dell utilizzo delle informazioni estratte. I template rappresentano entità, eventi e relazioni ritenute significative ai fini del contesto e variano in base al dominio applicativo. Per ottenere il risultato voluto nella fase di riempimento di template bisogna assegnare ai vari template le istanze delle entità più opportune. Se le relazioni tra istanze e i corrispondenti elementi sono uno a uno, l assegnamento risulta semplice altrimenti si rende necessaria una strategia di ordinamento e configurazione intelligente. Anche se il sistema NE avesse una precisione e un richiamo ottimo pari al 100%, può accadere che vi sia una assegnazione sbagliata nei vari template. Per esempio se in un testo sono presenti due nomi di persone e due indirizzi, il primo nome deve essere associato al primo indirizzo, e il secondo nome deve essere associato al secondo indirizzo, 34

35 può accadere che nel riempimento del template venga assegnato il primo indirizzo al secondo nome, in questo caso il risultato della istanza del template ottenuto è inservibile. Inoltre bisogna considerare che normalmente il sistema di NE lavora con indici di precisione e richiamo inferiori al 100%. L utilizzo di informazioni aggiunte, quali dati spaziali relativi alla collocazione dei contenuti nel testo, possono migliorare le performance del processo di template filling. Nelle applicazioni della vita reale, i modelli dei template possono essere molto complicati poiché da derivare da esempi di elementi poco uniformi. Il riempimento dei template deve avvenire tenendo conto della risoluzione dei conflitti, di istanze multiple e cardinalità variabile di molti elementi presenti nei domini pratici. Di seguito viene descritto per sommi capi come dovrebbe essere effettuato un riempimento di template. Nel primo passo il TE riceve una lista di istanze estratte dal sistema NE. Prelevando una istanza dalla testa della lista il sistema TE tenta di inserirla in un template. Se non ci sono confitti nel riempimento dei template, l operazione continua procedendo nel considerare l istanza successiva presente nella lista. Se ci dovesse essere un conflitto, ad esempio più di una istanza è candidata per essere inserita in un template, il sistema dovrebbe risolverlo prendendo una decisione che consenta di assegnare la migliore istanza al template in questione. In molti problemi pratici dell IE abbiamo a che fare con due problemi derivanti dal riempimento dei template cioè la risoluzione dei conflitti e le multi istanze. Per il primo problema il sistema dovrebbe eliminare la istanza errata e tenere la più opportuna. Per risolvere questo problema abbiamo osservato che le sottorelazioni tra i vari elementi possono aggiungere informazione da poter sfruttare per la decisione. Per il secondo problema è stato sviluppato un modello spaziale che tiene conto delle correlazioni spaziali tra le caratteristiche per circoscrivere le multi-istanze Il modello spaziale Il modello spaziale è uno strumento che aiuta nel processo di template filling a rispettare le relazioni d ordine tra gli elementi da formattare. Il modello si adatta bene quando si estrae informazioni da sorgenti di dati strutturate o semistrutturate quali elenchi telefonici, biglietti da visita, ecc.. Di seguito sono riportati i task per l applicazione del modello spaziale nella risoluzione dei conflitti. La prima operazione da effettuare è la creazione manuale delle relazioni e dei vincoli spaziali basandosi sull osservazioni empiriche effettuate su un sottoinsieme di documenti. 35

36 Esistono 4 tipi di relazioni spaziali: (per caratteristica si intende una sezione di testo etichettata tramite NER) Direct Before(A, B): La caratteristica B deve stare immediatamente prima della caratteristica A; Direct After (A, B):La caratteristica deve stare immediatamente dopo la caratteristica A; Before(A, B): La caratteristica B deve stare da qualche parte prima della caratteristica A; After(A, B): La caratteristica B deve stare da qualche parte dopo la caratteristica A. Esistono inoltre 2 tipi di vincoli: Constraints: Correlazioni che non possono essere violate. (Weighted) Preferences: Correlazioni che potrebbero essere violate. A questa tipologia di vincoli viene associato un peso compreso tra 0 e 1, calcolato in maniera statistica su un sottoinsieme di documenti. Il passo successivo è la valutazione dell elenco delle caratteristiche estratto tramite NER, ordinato in base alla posizione che le sezioni di testo a cui le annotazioni si riferiscono occupano nel documento, usando il Greedy Voting Algorithm. Vengono rilevati i conflitti tra coppie di caratteristiche. E possibile imbattersi con tre categorie di conflitti: o Vengono trovate istanze multiple per una data caratteristica. o Le istanze di due differenti caratteristiche compaiono in un ordine diverso da quello previsto dai vincoli imposti. o Una data sezione di testo viene usata come base per più di un template. Per ogni conflitto viene calcolato il voto di entrambe le caratteristiche secondo la formula: Votes(F conf, i ) = Vote(F conf, i,f j ) dove i varia è l indice delle due caratteristiche in conflitto e j è l indice di tutte le altre caratteristiche della lista. 36

37 I valori che può assumere la funzione Vote(F conf, i,f j ) sono: o -1 se la correlazione spaziale tra F conf, i e F j viola un vincolo di tipo Constraints o +1 se la correlazione spaziale tra F conf, i e F j è conforme ad un vincolo di tipo Costraints o W se la correlazione spaziale tra F conf, i e F j viola un vincolo di tipo Preference, dove W rappresenta la somma dei pesi assegnati alla caratteristica nei vincoli che vengono violati. o +W se la correlazione spaziale tra F conf, i e F j è conforme ad un vincolo di tipo Preference, dove W rappresenta la somma dei pesi assegnati alla caratteristica nei vincoli che vengono violati. o else 0 Viene eliminata la caratteristica che ha il voto più basso. Cosa succede se la medesima caratteristica genera più di un conflitto? Siccome quando una caratteristica viene eliminata l operazione si propaga con la eliminazione del conflitto analizzato e di tutti gli altri conflitti in cui essa è coinvolta anche se questi non sono ancora stati valutati, si procede selezionando i conflitti da valutare in maniera casuale. E dimostrato da sperimentazioni che in tal modo si migliora, anche se di poco il livello di precisione e di richiamo dell applicazione della procedura di template filling rispetto a quando si valutano i conflitti in maniera non casuale. Di seguito è riportato un esempio di applicazione del modello: Su un insieme di documenti inerenti ad annunci di lavoro vengono definiti i seguenti vincoli: 1) After Title: Salry 2) After City: State 3) Direct After Title: Salary: Req_Exp_Year: ) Direct After City: State: ) Direct Before Req_Exp_Year: Title:

38 1) Vincolo di tipo Constraints: Immediatamente dopo una caratteristica di tipo Title ce ne deve essere una di tipo Salary; 2) Vincolo di tipo Constraints: Immediatamente dopo una caratteristica di tipo City ce ne deve essere una di tipo State; 3) Vincolo di tipo Preference:Non ci devono essere caratteristiche di tipo Salary prima di una caratteristica si tipo Title; 4) Vincolo di tipo Preference:Non ci devono essere caratteristiche di tipo Req_Exp_Year prima di una caratteristica si tipo Title; 5) Vincolo di tipo Preference:Non ci devono essere caratteristiche di tipo State prima di una caratteristica si tipo City; 6) Vincolo di tipo Preference:Non ci devono essere caratteristiche di tipo Title prima di una caratteristica si tipo Req_Exp_Year; NRE estrae la seguente lista di caratteristiche ordinata in base alla posizione nel testo: (Salary_1, Title_1, Req_Exp_Year_1, City_1, Salary_2) Dalla lista vengono rilevati 2 conflitti: 1) Conflict_1(Salary_1, Title_1) Una istanza della caratteristica Salary viene prima di una istanza di una caratteristica Title viene violato il vincolo 1. 2) Conflict_2(Salary_1, Salary_2) Esistono 2 istanze della caratteristica Salary 38

39 Calcolo dei voti per Conflict_1: Votes(Salary_1) = Vote(Salary_1, Req_Exp_Year_1) + Vote(Salary_1, City_1) + Vote(Salary_1, Salary_2) ; Vote(Salary_1, Req_Exp_Year_1): Non viola e non è conforme a nessun vincolo quindi il voto è 0; Vote(Salary_1, City_1): Non viola e non è conforme a nessun vincolo quindi il voto è 0; Vote(Salary_1, Salary_2) : Non viola e non è conforme a nessun vincolo quindi il voto è 0; Votes(Salary_1) = 0. Votes(Title_1) = Vote(Title_1, Req_Exp_Year_1) + Vote(Title_1, City_1) + Vote(Title_1, Salary2); Vote(Title_1, Req_Exp_Year_1): E conforme al vincolo 4 e al vincolo 6 quindi il voto è = 0.61; Vote(Title_1, City_1): Non viola e non è conforme a nessun vincolo quindi il voto è 0; Vote(Title_1, Salary2): E conforme al vincolo 1 e viola il vincolo 3 quindi il voto è = 0.67; Votes(Title_1) = = Conflict_1 viene rimosso mediante la eliminazione della caratteristca Salary_1 e questa operazione si propaga con la rimozione di conflict_2. 39

40 2.5.2 L architettura di un sistema per il template filling Una ulteriore vista delle funzionalità e dei passi che un sistema IE deve effettuare è rappresentata nella figura: Figura 8 L analisi locale del testo consente di estrarre dei singoli fatti dal documento in formato testuale dato in input. Si compone dei sottotask di : Analisi lessicale: per consentire l assegnamento di opportune proprietà alle singole parole o alle espressioni idiomatiche del testo. In questa fase vengono presi in considerazione gli 40

41 elementi del testo che possono essere parole, numeri, simboli, più in generale i token. Tramite un analizzatore morfologico si associa ad ogni token tutti i possibili ruoli grammaticali che una determinata parola può assumere (part-of-speech) eventualmente da disambiguare. Riconoscimento dei nomi: ha come obiettivo l identificazione di nomi ed altre strutture lessicali speciali (date, importi), usando pattern (espressioni regolari) rappresentati in termini di part-of-speech, caratteristiche sintattiche ed ortografiche. Analisi sintattica: lo scopo di questa fase è l identificazione di legami sintattici elementari fra i diversi elementi di una frase. Solitamente non viene determinato l albero sintattico completo di interpretazione della frase in favore di una interpretazione locale dei sintagmi (parole o insieme di parole con significato logico) di una porzione della frase stessa. A ciascun gruppo nominale viene assegnata una entità semantica. Pattern matching: ha come obiettivo l estrazione di eventi o relazioni rilevanti per lo scenario di interesse. Ha come risultato un testo marcato con eventi. L analisi del discorso ha come obbiettivo l integrazione dei fatti estratti al fine di ampliarli o produrne di nuovi. Si compone dei sottotask di: Analisi di coreferenza: ha come obiettivo la risoluzione dei riferimenti dei pronomi. Inferenza: riunisce mediante meccanismi inferenziali informazioni relative ad uno stesso evento presenti in frasi diverse. Tali meccanismi si possono ottenere tramite sistemi a produzione. La generazione dei template: consente di tradurre nel formato di output richiesto le entità riconosciute ed estratte dal documento in template di output formati da slot che vanno riempiti con i valori estratti. 41

42 Indice delle figure Figura 1: Output di un sistema Named Entity Recognition Figura 2: Input di un sitema Template Element Construction Figura 3: Output di un sitema Template Element Construction Figura 4: Output di un sistema Template Relation Construction Figura 5: Output di un sistema Scenario Template Production Figura 6: Grafico Complessità vs Specificità dei sistemi IE Figura 7: Vista di un sistema IE basata su Template Filling Riferimenti Bibliografici Vorgelet Von, Luo Xiao - INFORMATION EXTRACTION IN THE PRATICAL APPLICATIONS, SYSTEMS AND TECHNIQUES, Erlagen Giulio Pisani - ANALISI, PROGETTAZIONE E SVILUPPO DI UN INTERFACCIA PER IL TEMPLATE FILLING IN COMPITI DI INFORMATION EXTRACTION DA TESTI BIOMEDICI Tesi di Laurea Dipartimento di Informatica dell Università degli studi di Bari, a.a Simone Ferrari - Information Extraction: il rapport, GATE - Named Entity Recognition Tesi di Laurea Facoltà di Ingegneria Informatica, sede di Modena, a.a

43 CAPITOLO 3 Naned Entity Recognition per un task di Textual Profile Clustering 3.1 Metodi intelligenti per il calcolo dei profili testuali Negli ultimi anni sono stati sviluppati molti metodi ed algoritmi per l'estrazione di elementi rilevanti da testi di interesse biomedico. Molti di questi metodi riguardano il riconoscimento di entità di interesse nei testi che trattano malattie, geni o qualunque unità sperimentale biologica. Altri metodi puntano a scoprire relazioni tra entità biologiche partendo dalle descrizioni testuali di queste entità negli articoli scientifici. La maggior parte di questi metodi, durante l'elaborazione considerano solo il singolo abstract o il documento scientifico integrale ignorando le relazioni esistenti in una collezione di articoli scientifici. Nel contesto del gene scoring, queste relazioni possono rivelarsi fondamentali nello scoprire la priorità di un gene rispetto ad un altro. Su questa base recentemente sta emergendo una nuova tipologia di analisi dei testi riguardanti i geni che si basa sul profilo testuale (textual profile) del gene. Il profilo testuale è una rappresentazione del gene costituita dai termini più significativi che lo descrivono in una collezione di testi scientifici che lo riguardano in maniera rilevante, cioè gli articoli scientifici che presentano i risultati più importanti su quel particolare gene. Assumendo che la collezione degli articoli di un insieme di geni sia la stessa, la differenza nei metodi di analisi basati sul profilo testuale dipende dall'algoritmo di generazione del profilo. Molti di questi algoritmi si basano su calcoli effettuati sul tipo di rappresentazione del termine nella collezione dei testi. L'algoritmo di pesatura di un termine nel profilo testuale di un gene è il fattore fondamentale per la bontà di un metodo per l'analisi dei geni basato sul profilo. Durante i mesi passati, le attività svolte nell ambito del progetto hanno riguardato la messa a punto di un nuovo metodo di pesatura dei termini di un documento combinando calcoli statistici come il tf-idf, la posizione di un termine nell'articolo e la pesatura dell'etichetta (titolo, abstract o corpo) a cui il termine appartiene. Questo nuovo algoritmo di pesatura permette di generare dei profili testuali semantici con i termini più importanti che riguardano un certo gene. L'algoritmo viene utilizzato nello schema presentato nella figura 1. 43

44 Figura 9 Articoli scientifici riguardanti geni candidati e disease vengono estratti da EntrezGene dell NCBI che mappa in maniera affidabile ogni articolo ad un certo gene (EntrezGene e curato manualmente da esperti di valenza internazionale i quali valutano il contributo di un articolo su un certo gene). Gli articoli estratti riguardano articoli sia su geni disease, sia su geni candidati. Prima della pesatura dei termini, gli articoli scientifici sono sottoposti ad un processo di analisi del testo al fine di utilizzare nella pesatura entità riconosciute di interesse oppure termini di interesse particolare per i geni. Questo processo di analisi è applicato perche gli articoli scientifici di partenza costituiscono una descrizione narrativa della investigazione scientifica condotta pertanto consistono di documenti testuali scritti in linguaggio naturale tipicamente caratterizzati da occorrenze di nomi canonici di entità biomediche e nomi alternativi delle medesime entità. Infatti, nelle discipline biomediche è frequente l uso di varianti di simboli di geni o proteine (e.g., CX26 piuttosto che Connexin 26) e di acronimi o abbreviazioni del nome esteso (e.g. HHL piuttosto che Hereditary Hearing Loss). Generare il profilo testuale per ciascuna delle entità senza considerare tali aspetti significherebbe rendere inverosimili sia le pesature dei termini, sia gli scores assegnati ai geni candidati. Per affrontare tali vicissitudini l approccio generico di annotazione automatica definito nei precedenti mesi di attività è stato formalizzato eseguendo una pre-elaborazione di un insieme di 44

45 circa 90'000 abstract di articoli in lingua inglese inerenti alla sordità ereditaria non sindromica che mira ad una normalizzazione delle occorrenze di entità nominate presenti nei testi. 3.2 Normalizzazione delle entità nominate La metodologia di annotazione automatica adottata, implementa il tipo Named Entity Recognition del task di Information Extraction del Text Mining ed è in grado di: 1. Identificare nomi canonici, nomi varianti, acronimi ed abbreviazioni di geni umani specifici del dominio di sordità ereditaria non sindromica, locazioni genomiche, locazioni cromosomiche, geni umani e entità biomediche generiche; 2. Annotare ciascuno di essi con un univoco nome canonico; 3. Rappresentare ciascun abstract in input con le annotazioni individuate. La figura 2 mostra la pipeline delle tecniche di elaborazione del linguaggio naturale adottate per raggiungere lo scopo. 45

46 Figura 10 I sottoparagrafi seguenti descrivono il funzionamento della pipeline. 46

47 3.2.1 Pre-elaborazione degli articoli Per un insieme di articoli dato in input al sistema è necessaria una fase di pre-elaborazione in cui il sistema crea una cartella per ogni articolo e sposta gli articoli nelle loro omonime cartelle in modo da avere un articolo in ogni cartella. Ogni cartella andrà a costituire un corpus che il sistema di Named Entity Recognition (ANNIE di GATE) prenderà in input. Durante la fase di spostamento degli articoli nelle cartelle questi vengono ripuliti da alcune occorrenze di testo che non permettono al sistema di NRE di eseguire correttamente il suo lavoro Tokenizer Il Tokenizer divide il testo in semplici Token come numeri, segni di punteggiatura e parole di differente tipo. Per ogni Token viene generata una annotazione di tipo Token o Space Token, che contiene oltre che la stringa alla quale l annotazione si riferisce, alcune informazioni morfologiche sulla parte di testo come l offset iniziale e finale e informazioni sulla tipologia di stringa (se è una parola scritta in caratteri minuscoli, o maiuscoli, se si tratta di una cifra numerica o di un segno di punteggiatura, ecc..) Esempio: La figura 3 mostra le annotazioni di tipo Token che la componente ANNIE di GATE genera sul testo DFNA49, DFNA37 : Figura 11 47

48 3.2.3 FS Gazetter La risorsa di elaborazione Gazetteer di ANNIE genera delle annotazioni di tipo Lookup che si riferiscono a delle sequenze di Token e SpaceToken presenti nel testo. Se una sequenza di Token e SpaceToken corrisponde ad un termine presente in uno dei dizionari che vengono dati in input alla risorsa viene generata una annotazione che contiene informazioni riguardo l offset iniziale e finale del termine, i Token che la compongono e il dizionario di appartenenza del termine. La figura 4 mostra le annotazioni di tipo Lookup che vengono generate dal Gazetter dato come input il testo DFNA49, DFNA37 e un dizionario di nome Chromosomal_Locus che contiene i termini DFNA49 : Figura 12 L annotazione di tipo Lookup si basa sulle annotazioni generate dal Tokenizzatore e aggiunge informazioni riguardo al dizionario di appartenenza di un termine composto da una sequenza di Token; nella fattispecie la prima annotazione riportata nell elenco ci dice che dall offset 0 all offset 6 esiste una sequenza di simboli che compongono un termine appartenente ad un dizionario e che il nome di quel dizionario è Chromosomal_Locus. Per conoscere qual è la sequenza simboli che compongono il termine bisogna osservare le annotazioni di tipo Token e SpaceToken che hanno offset iniziali e finali compresi nell intervallo al quale si riferisce la Lookup(nel nostro caso sono la seconda e la terza annotazione). 48

49 La pipeline implementata contiene due Gazetter, uno per identificare i termini appartenenti al dominio specifico della sordità ereditaria non sindromica e l altro per identificare altri termini appartenenti al dominio biomedico generico. I dizionari utilizzati dai Gazetter sono: Per il dominio specifico della malattia: o Chromosomal_locus che contiene 119 termini; o Connexin che contiene 43 termini; o Gene_Name che contiene 48 termini; o Locus_name che contiene 100 termini; Per il dominio biomedico generico: o Anatomy che contiene 4412 termini; o Biological_Sciences che contiene 5450 termini; o Chemicals_and_Drugs che contiene termini; o Diseases che contiene termini; o Organisms che contiene 9152 termini; Oltre ai dizionari riportati ne è stato aggiunto un terzo chiamato HomoSapiensGene che aggiunge alla base di conoscenza altri termini Risoluzione dei conflitti tra le annotazioni Durante il processo di generazione delle annotazioni si possono verificare i seguenti casi di conflitto tra: Un termine appartiene a più dizionari In questo caso il sistema di NRE genera una annotazione per ogni dizionario che contiene il termine. Si rende necessaria una selezione di una sola tra annotazioni generate. Ad ogni dizionario è assegnata una priorità, quindi viene scelta l annotazione che si riferisce al dizionario con più alta priorità. Nella sessione sperimentale si è deciso di dare massima 49

50 priorità ai dizionari appartenenti al dominio specifico della malattia, priorità media al dizionario HomoSapiensGene e priorità minima ai dizionari appartenenti al dominio biomedico generico. Un termine di un dizionario contiene un altro termine Può accadere che una entità annotata con il nome di un dizionario contenga al suo interno un altra entità per la quale viene generata un altra annotazione. In questo caso il sistema provvede a selezionare l annotazione che ha l intervallo di offset più ampio. Un termine interseca un altro termine E un caso più raro, ma non poco frequente che possano essere generate due annotazioni di tipo Lookup che si riferiscono a termini tali che l offset iniziale del secondo termine sia inferiore all offset finale del primo e l offset finale del secondo sia superiore all offset finale del primo. Anche in questo caso il sistema deve essere in grado di scegliere una sola annotazione tra quelle in conflitto. Nel caso in cui le annotazioni si riferiscono a dizionari ai quali è associata differente priorità, viene scelta l annotazione che ha priorità più alta, mentre nel caso in cui le annotazioni si riferiscono a dizionari di eguale priorità viene selezionata l annotazione che si riferisce al termine che ha offset iniziale più basso, ovvero il termine che si trova a sinistra. La figura 5 mostra 2 casi di conflitto: Figura 13 50

51 Le prime due annotazioni si riferiscono allo stesso termine che è contenuto sia nel dizionario Gene_Name che in HomoSapiensGene; in questo caso il sistema scarta quella che si riferisce a HomoSapiensGene per preferire l altra in quanto appartiene ad un dizionario del dominio specifico e ha priorità massima. La decima annotazione si riferisce ad un termine contenuto in un altro termine per il quale è stata generata la settima; in questo caso il sistema seleziona la settima annotazione in quanto ha un intervallo di offsett più esteso Sostituzione dei sinonimi L obbiettivo di questo task della pipeline è quello di ridurre il numero di entità nominate presenti nell insieme dei documenti al fine di rendere più efficace ed efficiente l algoritmo di pesatura dei termini e di ottenere una diminuzione dei costi computazionali. Accade molto spesso che nel linguaggio naturale usato nelle pubblicazioni scientifiche gli autori si riferiscono alla stessa entità biomedica usando diversi termini sinonimi tra loro. In fase di progettazione del task per ognuno degli insiemi dei termini che identificano la stessa entità biomedica è stato scelto un termine canonico con il quale sostituire tutti gli altri dello stesso insieme. Ad esempio è stata presa la decisione di sostituire tutte le occorrenze dei termini sinonimi CONNEXIN26, CONNEXIN 26, CONNEXIN-26, CX26 considerati con il criterio not case sensitive con il loro termine canonico GJB2. Tali regole di sostituzione sono state elencate in dei dizionari dei sinonimi per essere dati in input al sistema, il quale controlla se è prevista una sostituzione per ognuna delle entità nominate ottenute nei task precedenti e in caso affermativo esegue la modifica al testo. Ogni regola di sostituzione appare in un dizionario su una singola riga ed è composta da una parte sinistra (LHS) contenente il termine che potrebbe occorrere nei testi, considerato con il criterio not case sensitive, ed una parte destra (RHS) contenete il termine canonico con cui l occorrenza del sinonimo deve essere rimpiazzata. LHS e RHS sono separate tra loro dal simbolo #. Ad esempio la regola CONNEXIN 26#GJB2 indica al sistema che tutte le occorrenze di CONNEXIN 26 vanno sostituite con GJB2. 51

52 La pipeline implementata nella sessione sperimentale condotta nell ambito della tesi esegue questo task basandosi sul set di dizionari dei sinonimi seguente: Connexin che contiene 39 regole di sostituzione; Anatomy che contiene 3329 regole di sostituzione; Organisms che contiene 6315 regole di sostituzione; Biological_Sciences che contiene 4096 regole di sostituzione; HomoSapiensGene che contiene regole di sostituzione; Disease che contiene regole di sostituzione; Chemical_and_Drugs che contiene regole di sostituzione; Normalizzazione del testo La sostituzione dei sinonimi con i loro termini canonici non è il solo task implementato al fine di migliorare efficacia, efficienza, e utilizzo delle risorse di calcolo dell algoritmo di pesatura dei termini. Anche altre normalizzazioni vengono effettuate: Sostituzione di spazi con trattini Esistono nei testi alcune entità biomediche identificati con termini multi-word, ovvero termini composti da più parole separate tra loro da uno spazio. In tali entità vengono sostituiti gli spazi con i trattini (Ad esempio dietary fats diventa dietary_fats ). Questo subtask si realizza in due momenti ben distinti. Nel caso in cui il termine multi-word è un termine canonico che viene sostituito ad un sinonimo, la sovrascrittura dei trattini agli spazi è già prevista nella regola di sostituzione presente in uno dei dizionari dei sinonimi; nel caso in cui il termine multi-word è invece una entità biomedica per la quale non è prevista alcuna sostituzione con termine canonico, la sovrascrittura dei trattini agli spazi avviene in una fase dedicata alla valutazione di tutte le annotazioni per tale scopo. Eliminazione dei sinonimi tra parentesi Quando nei testi è presente un termine appartenente ad un dizionario specifico di dominio ed esso è seguito da un suo sinonimo tra parentesi, nella stringa contenente tale occorrenza in questa fase il sistema si occupa di eliminare le parentesi e il termine in esse contenuto. 52

53 Per esempio la stringa Connexin 26 (Cx26) subendo prima la sostituzione dei sinonimi e poi la valutazione in questo sub task diventa GJB2. Eliminazione dei duplicati separati da slash Quando nei testi è presente un termine appartenente ad un dizionario specifico di dominio ed esso è seguito da uno slash che a sua volta è seguito da un sinonimo del termine precedente il sistema provvede in questa fase ad eliminare lo slash e il sinonimo. Per esempio la stringa GJB2/Connexin26/cx26 subendo prima la sostituzione dei sinonimi e poi la valutazione in questo task diventa GJB2. Sovrascrittura di spazi agli slash presenti tra due entità Quando nei termini è presente una qualsiasi termine appartenente ad un dizionario e questo è seguito da uno slash che a sua volta è seguito da un altro termine appartenente ad un dizionario e i due termini non sono sinonimi tra loro oppure se lo sono appartengono a dizionari generici, il sistema si limita a sovrascrivere lo slash con uno spazio. Per esempio la stringa connexin26/connexin30 diventa subendo prima la sostituzione dei sinonimi e poi la valutazione in questo task diventa GJB2 GJB3 3.3 Analisi dei risultati In questo paragrafo vengono descritti i criteri di valutazione della bontà dell algoritmo di normalizzazione usato. La componente realizzata è stata testata su un dataset ristretto di testi e i risultati sperati sono stati confrontati con quelli ottenuti al fine di calcolare due indici di valutazione: il richiamo e la precisione. Vengono fissati 4 parametri: TP (True Positive): numero di operazioni che vengono eseguite dal sistema e che ci si aspettava che venissero eseguite; FP (False Positive): numero di operazioni eseguite dal sistema che però non dovevano essere eseguite; 53

54 TN (True Negative): numero di operazioni che il sistema non esegue, ma che in realtà avrebbe dovuto eseguire; FN (False Negative): numero di operazioni che il sistema non esegue e che effettivamente non avrebbe dovuto eseguire. Sulla base di questi valori vengono calcolati i seguenti indici: Precisione: è il rapporto tra le operazioni correttamente eseguite e tutte le operazioni eseguite P = (TP)/(TP + FP) Richiamo: è il rapporto tra le operazioni correttamente eseguite e la somma tra le operazioni correttamente eseguite e quelle che non andavano eseguite e che effettivamente non sono state eseguite. R = TP/(TP + FN) Progettazione dei test I test sono stati effettuati su un dataset composto da articoli che coprono tutti i casi d uso per cui il sistema è stato pensato. Il dataset si compone di 20 articoli, 10 sono artificiali, ovvero costruiti appositamente per coprire i casi duso e 10 sono stati estratti dal dataset delle pubblicazioni scientifiche. Artificiali L Articolo1 contiene: Termini per i quali è prevista la sostituzione dei sinonimi appartenenti ai dizionari generici; Termini multi token appartenenti ai dizionari generici per i quali è prevista la sostituzione degli spazi con i trattini; 54

55 Sezioni di testo composte da sequenze di temini appartenenti a dizionari generici, separati da slash per i quali è prevista la eliminazione degli slash. L Articolo2 contiene: Termini appartenenti ai dizionari specifici per i quali è prevista la sostituzione dei sinonimi Sezioni di testo composte da: o Sequenze di termini appartenenti a dizionari specifici separati da slash, sinonimi tra loro per i quali è prevista la eliminazione degli slash e dei sinonimi o Termini appartenenti a dizionari specifici seguiti da un loro sinonimo tra parentesi per le quali è prevista l eliminazione del sinonimo tra parentesi o Sequenze di termini appartenenti a dizionari specifici separati da slash, non sinonimi tra loro per le quali è prevista l eliminazione degli slash L Articolo3 contiene: Termini appartenenti al dizionario homosapiensgene per i quali è prevista la sostituzione dei sinonimi. Termini multi token appartenenti ai dizionario homosapiensgene per i quali è prevista la sostituzione degli spazi con i trattini Sezioni di testo composte da: o Sequenze di termini appartenenti dizionario homosapiensgene separati da slash, non sinonimi tra loro per le quali è prevista l eliminazione degli slash L Articolo4 contiene: Termini per i quali è prevista la sostituzione dei sinonimi appartenenti ai dizionari generici Termini multi token appartenenti ai dizionari generici per i quali è prevista la sostituzione degli spazi con i trattini Sezioni di testo composte da sequenze di temini appartenenti a dizionari generici, separati da slash per i quali è prevista la eliminazione degli slash Termini appartenenti ai dizionari specifici per i quali è prevista la sostituzione dei sinonimi Sezioni di testo composte da: 55

56 o Sequenze di termini appartenenti a dizionari specifici separati da slash, sinonimi tra loro per i quali è prevista la eliminazione degli slash e dei sinonimi o Termini appartenenti a dizionari specifici seguiti da un loro sinonimo tra parentesi per le quali è prevista l eliminazione del sinonimo tra parentesi o Sequenze di termini appartenenti a dizionari specifici separati da slash, non sinonimi tra loro per le quali è prevista l eliminazione degli slash L Articolo5 contiene: Termini per i quali è prevista la sostituzione dei sinonimi appartenenti ai dizionari generici Termini multi token appartenenti ai dizionari generici per i quali è prevista la sostituzione degli spazi con i trattini Sezioni di testo composte da sequenze di termini appartenenti a dizionari generici, separati da slash per i quali è prevista la eliminazione degli slash Termini appartenenti al dizionario homosapiensgene per i quali è prevista la sostituzione dei sinonimi. Termini multi token appartenenti ai dizionario homosapiensgene per i quali è prevista la sostituzione degli spazi con i trattini Sezioni di testo composte da: o Sequenze di termini appartenenti dizionario homosapiensgene separati da slash, non sinonimi tra loro per le quali è prevista l eliminazione degli slash L Articolo6 contiene: Termini appartenenti ai dizionari specifici per i quali è prevista la sostituzione dei sinonimi Sezioni di testo composte da: o Sequenze di termini appartenenti a dizionari specifici separati da slash, sinonimi tra loro per i quali è prevista la eliminazione degli slash e dei sinonimi o Termini appartenenti a dizionari specifici seguiti da un loro sinonimo tra parentesi per le quali è prevista l eliminazione del sinonimo tra parentesi o Sequenze di termini appartenenti a dizionari specifici separati da slash, non sinonimi tra loro per le quali è prevista l eliminazione degli slash 56

57 Termini appartenenti al dizionario homosapiensgene per i quali è prevista la sostituzione dei sinonimi. L Articolo7 contiene: Testo sul quale non deve essere effettuata nessuna modifica L Articolo8 contiene: Termini per i quali è prevista la sostituzione dei sinonimi appartenenti ai dizionari generici Termini appartenenti ai dizionari specifici per i quali è prevista la sostituzione dei sinonimi Termini appartenenti al dizionario homosapiensgene per i quali è prevista la sostituzione dei sinonimi. L Articolo9 contiene: Termini multi token appartenenti ai dizionari generici per i quali è prevista la sostituzione degli spazi con i trattini Termini appartenenti ai dizionari specifici per i quali è prevista la sostituzione dei sinonimi Termini multi token appartenenti ai dizionario homosapiensgene per i quali è prevista la sostituzione degli spazi con i trattini. L Articolo10 contiene: Termini per i quali è prevista la sostituzione dei sinonimi appartenenti ai dizionari generici Sezioni di testo composte da: o Sequenze di termini appartenenti a dizionari specifici separati da slash, sinonimi tra loro per i quali è prevista la eliminazione degli slash e dei sinonimi o Termini appartenenti a dizionari specifici seguiti da un loro sinonimo tra parentesi per le quali è prevista l eliminazione del sinonimo tra parentesi o Sequenze di termini appartenenti a dizionari specifici separati da slash, non sinonimi tra loro per le quali è prevista l eliminazione degli slash 57

58 Sezioni di testo composte da: o Sequenze di termini appartenenti dizionario homosapiensgene separati da slash, non sinonimi tra loro per le quali è prevista l eliminazione degli slash Reali Il dataset degli articoli reali si compone invece di due sottoinsiemi, uno composto da 5 articoli, è stato estratto dall insieme degli articoli contenenti geni già noti come responsabili della sordità ereditatria non sindromica, mentre l altro che si compone sempre di 5 articoli è stato estratto dall insieme di articoli contenenti geni candidati, ovvero dei quali si pensa che ci possa essere implicazione nella malattia. L estrazione dei due gruppi di articoli è stata eseguita in maniera pseudo-random basandosi sulla nomenclatura che è stata loro assegnata. Il nome di ogni articolo è dato dalla concatenazione di tre stringhe: 1. una stringa numerica che indica l indice dell entità biomedica di cui si parla all interno dell articolo; 2. una stringa alfabetica contenente la parola disease se il gene di cui si parla nel documento è catalogato come responsabile oppure la parola cand se il gene di cui si parla all interno è candidato; 3. una stringa numerica che indica il numero dell articolo. Dei 5 articoli scelti per ogni tipologia di abstarct (disease o candidate), tre articoli riguardano la stessa entità biomedica, ma hanno un indice diverso e due sono stati selezionati in maniera completamente casuale purché fossero diversi tra loro. 58

59 3.3.2 Risultati dei test Le Tabella 1 riporta una sintesi del calcolo degli indici di precisione e richiamo eseguito rispetto ai documenti artificiali, mentre la tabella 2 riporta la sintesi del calcolo effettuato rispetto agli articoli reali. Artificiali Nome Articolo TP FP TN FN Precisione Richiamo Articolo ,92 0,92 Articolo ,00 1,00 Articolo ,00 0,84 Articolo ,94 0,88 Articolo ,94 0,94 Articolo ,00 0,95 Articolo ,00 0,00 Articolo ,00 1,00 Articolo ,86 0,86 Articolo ,90 0,90 Media aritmetica semplice 0,86 0,83 Tabella 1 Reali Nome Articolo TP FP TN FN Precisione Richiamo 15cand txt ,99 0,98 15cand txt ,00 1,00 15cand txt ,00 1,00 15cand txt ,00 0, cand txt ,93 0, disease txt ,00 0, disease txt ,97 0, disease txt ,00 0, disease txt ,98 0, disease txt ,00 0,90 Media aritmetica semplice 0,99 0,92 Tabella 2 59

60 Indice delle figure e delle tabelle Figura 1: Creazione dei profili testuali dei geni nella matrice pesata geni x termini; Figura 2: Pipeline del sistema NER implementato; Figura 3: Input e Output del Tokenizer; Figura 4: Input e Output del Tokenizer; Figura 5: Essempio di conflitti tra annotazioni; Tabella 1: Calcolo degli indici di richiamo e precisione per gli articoli artificiali; Tabella 2: Calcolo degli indici di richiamo e precisione per gli articoli reali; 60

61 CAPITOLO 4 Entity recognition per un task di Semantic Search Engine 4.1 Metodi e algoritmo di Information Retrieval di tipo semantico L attività svolta nell ambito della collaborazione del L.A.C.A.M. e MbLab prevede tra gli obiettivi lo studio di strumenti che consentano di interrogare banche dati contenenti dati biologici annotati sulla base di metadati che incapsulano la conoscenza dell'esperto del dominio. In questa ottica, sono state studiate e approfondite le tecniche di Information Retrieval (IR) basate su approcci statistici che permettono il ritrovamento di dati biologici. L Information Retrieval (IR) si occupa della rappresentazione, memorizzazione, organizzazione e accesso all informazione. L obiettivo dell IR e il soddisfacimento di un bisogno informativo; come si può notare si pone l attenzione sul concetto di informazione e non su quello di dato. Infatti, l obiettivo del Data Retrieval è il recupero di oggetti che soddisfano una query utente formulata attraverso l uso di keyword e di relazioni tra keyword, espressa quindi attraverso linguaggi come l algebra relazionale o le espressioni regolari. Il recupero di questi oggetti è un compito semplice eseguito sulla base di quegli oggetti che soddisfano appieno la query, la risposta e quindi certa e non ammette errori. Nell Information Retrieval si cerca quindi di recuperare documenti riguardanti un determinato argomento. Ciò comporta degli svantaggi quali la perdita di precisione e di accuratezza e il ritrovamento di documenti che non sono di interesse dell utente il quale non vede il pieno soddisfacimento dei propri bisogni di recuperare informazioni in merito ad un argomento di interesse. Affinché un sistema di IR possa recuperare in modo efficiente ed efficace i documenti è necessario che disponga di una rappresentazione logica del contenuto informativo di ciascun oggetto. Sebbene le capacita di memorizzazione dei moderni sistemi di IR siano dell ordine di terabyte, una rappresentazione completa del documento in cui vengono utilizzati tutti i termini che lo compongono (full text) richiede un elevato sforzo computazionale. Si preferisce adottare rappresentazioni logiche che prendano in considerazione solo una parte dei termini del documento: i termini indice (index term). L utilizzo dei termini indice si basa sul presupposto che la semantica del documento e i bisogni informativi dell utente possano essere espresse attraverso un insieme più ristretto di termini rispetto a tutti i quelli presenti nei documenti. Per ridurre il numero dei termini rappresentativi del documento si rendono necessarie operazioni di trasformazione del testo (text operation). 61

62 4.2 Etichettatura delle entità nominate Un iniziale operazione di trasformazione del documento testuale è l annotazione e rappresentazione di questa in un formato standard. A tale scopo e stata implementata nell ambito di questa tesi una pipeline di tecniche per l elaborazione del linguaggio naturale in grado di: 1. riconoscere entità biomediche di interesse presenti all interno di ciascun documento; 2. fornire un annotazione in forma di Label di dominio; 3. rappresentare le annotazioni nel formalismo IOB-2. Considerando il Token come una entità biomedica riconosciuta dal sistema, indipendentemente dal fatto che essa sia composta da più parole o gruppi di sequenze di simboli alfanumerici maiuscoli o minuscoli e una Label come l annotazione relativa al dominio di appartenenza del Token, il formato standard IOB-2 prevede la seguente rappresentazione delle coppie di Token Label: Un Token singolo viene rappresentato nel formato: Token \t B Label; Un Token composto da più gruppi di simboli alfanumerici separati da uno spazio viene rappresentato nel formato: gruppo1 \t B etichetta gruppo2 \t I gruppo3 \t I Un Token al quale non è stata associata nessuna Label viene rappresentata ne formato: Token \t O 62

63 La pipeline implementata al fine di realizzare queste attività è illustrata in Figura1. Figura 1 I seguenti sottoparagrafi descrivono il funzionamento delle componenti della pipeline Pre-Elaborazione articoli, Tokenizer e FS Gazetter Le attività svolte in fase di pre-elaborazione degli articoli al fine di strutturare il file system nella cartella di lavoro dell applicazione, in fase di Tokenizzazione con lo scopo di generare le annotazioni di tipo Token e SpaceToken e nel task ricoperto dal Gazetteer per la generazione di annotazioni su entità appartenenti a dizionari sono identiche a quelle che vengono svolte nei medesimi task del sistema di Named Entity Recognition per l algoritmo di Textual Profile 63

64 Clustering. La descrizione dettagliata delle suddette componenti è stata già trattata nei paragrafi 3.2,1, e Semantic Tagger Il Semantic Tagger è un task dell NER che consente di riconoscere entità biomediche di interesse che non sono contenute nei dizionari. Esso genera delle annotazioni di tipo Preprocessing che si riferiscono a delle sequenze di Token, SpaceToken e Lookup. Tale obbiettivo viene raggiunto mediante l impiego di grammatiche a espressioni regolari (Domain e Generic Grammars) applicate alle annotazioni prodotte dal Tokenizer e dal Gazeteer. Le grammatiche vengono definite manualmente e integrano la conoscenza del dominio: questo definisce supervisionato il processo di identificazione di entità di interesse poiché guidato da regole di riconoscimento fornite dagli esperti di dominio. Una grammatica consiste di un sequenza di task ognuno dei quali e composto da un insieme di regole pattern-action. Ciascun task esegue un insieme di automi a stati finiti di un traduttore applicato alle annotazioni prodotte dai componenti che precedono i Semantic Taggers. Una grammatica è definita mediante una regola composta da una parte sinistra (LHS) costituita da un pattern per riconoscere sequenze di annotazioni che può contenere operatori di espressioni regolari (e.g,, *,?, +) e da una parte destra (RHS) detta action costituita da una sequenza di operazioni da effettuare su annotazioni; tali operazioni sono finalizzate alla modifica dell insieme di annotazioni che può prevedere la generazione di nuove annotazioni, la eliminazione o l aggiornameto di annotazioni già presenti nell insieme. 64

65 La Figura 2 mostra un esempio di grammatica scritta in linguaggi JAPE. Figura 2 Il nome della regola mostrata in figura è Connexin ; Essa indica al sistema di NER che quando nel testo occorrere una sequenza di annotazioni definita dalla macro CONN e tale sequenza è seguita da un gruppo di caratteri numerici allora deve essere creata una nuova annotazione di tipo Preprocessing etichettata con newconnexin. Il Semantic Tagger implementato nell ambito di questa sessione sperimentale si basa su due tipologie di grammatiche: Grammatiche per ricoonoscere entità del dominio Specifico e Grammatiche per riconoscere entità del dominio Generico. Di seguito è riportata una descrizione delle grammatiche del dominio Specifico. 65

66 Geni_e_mutazioni La garmmatica Geni_e_mutazioni.jape è stata creata al fine di identificare alcune sezioni di testo che identificano entità biomediche come le delation. Grazie a questa grammatica, quando il trasduttore trova delle parti di testo che hanno un formato come le stringhe delgjb2-748dfy, c.delgjb2-748dfy, del(gjb2-748dfy), del(gjb6-mar25), c.del(gjb2-748dfy), c.del(gjb6-mar25), 35delG genera una annotazione di tipo Preprocessing con la caratteristica majortype=delation. All interno della stessa grammatica sono presenti istruzioni per Annie su come riconoscere alcuni nuovi geni (che si presentano nel formato POU4F3, POU4F3/15 o POU4F3-30) ai quali viene associata una annotazione di tipo Preprocessing con caratteristica majortype=newgenename e una per riconoscere le mutazioni dei geni che si presentano nella forma ( GJB6-MAR25 ) ai ai quali viene associata una annotazione di tipo Preprocessing con caratteristica majortype=genemutation. Locus La garmmatica Locus.jape è stata creata al fine di identificare alcune sezioni di testo che identificano entità biomediche come le Locazioni dei geni. Quando all interno dei testi vengono trovate delle locazioni Annie genera una annotazione di tipo Preprocessing con caratteristica majortype=location. CodingRegion La grammatica CodingRegion.jape permette al trasduttore di riconoscere e annotare delle sequenze di composte da una che inizia con la lettera maiuscola, una cifra numerica e un altra parola che inizia con la lettera maiuscola. Su tali sequenze di token, grazie a questa grammatica Annie genera annotazioni di Preprocessing con caratteristica majortype=codingregion. Connexin La grammatica Connexin.jape permette al trasduttore di identificare delle nuove connessine all interno dei testi. Le connessine vengono riconosciute se esistono in uno dei forrmati: Connexin 10, connexin 10, CONNEXIN 10, Connexin-10, connexin-10, CONNEXIN-10, CX10, Cx10, cx10, GJB1. Sulle occorrenze delle connexine gate genera annotazioni di tipo Prprocessing con ncaratteristica majortype=newconnexin. 66

67 Le grammatiche implementate invece per il dominio generico sono descritte di seguito: Titoli La grammatica Titoli.jape è stata definita al fine di identificare nei testi i titoli dei paragrafi. Date le possibili parole che possono costituire i titoli (Es.: TITLE, ABSTRACT, RESULTS, ecc..) essa riconosce le parti del testo in cui compare una delle parole tipiche dei titoli, una sequenza di due tipiche parole separate da slash o una sequenza di due tipiche parole separate da uno spazio se tali sezioni del testo si concludono con : o $. La risorsa Annie, quando viene riconosciuta una parte del testo come titolo di paragrafo, genera una annotazione di tipo Preprocessing con la caratteristica majortype=pargraph_title. Distanze Le sezioni di testo simili a 340 Mb o 700 KB indicano nel dominio biomedico delle distanze tra elementi che costituiscono la catena del DNA. Quando tali entità sono presenti nel testo, grazie alla grammatica Distanze.jape, la risorsa Annie può generare delle annotazioni di tipo Preprocessing con caratteristica majortype=distanza ; Acronimi La grammatica acronimi.jape permette al trasduttore di identificare delle sequenze di caratteri alfabetici tutti maiuscoli eventualmente separarti da punti e generare annotazioni di tipo Preprocessing con caratteristica majortype=acronimo. Percentuali La grammatica Percentuali.jape permette al trasduttore di identificare dei valori numerici interi o razionali positivi dove la virgola può essere espressa con il carattere. o, e generare annotazioni di tipo Preprocessing con caratteristica majortype=percentuale. La Figura 3 mostra invece l output di un sistema di un sistema di NER che include un Sematic Tagger. 67

68 Figura 3 La figura mostra che il semantic Tagger ha generato due annotazioni di tipo Preprocessing etichettate con newconnexin; la prima è composta dalle annotazioni di tipo Token che hanno Offset iniziali e finali compreso nell intervallo 0 10, mentre la seconda è composta dalle annotazioni di tipo Token Offset iniziale e finale compreso nell intervallo Risoluzione dei conflitti tra annotazioni In questa fase il sistema, risolvendo i conflitti tra le annotazioni generate negli step precedenti, decide quali Label assegnare a alle Entità Nominate riconosciute. Ai casi di conflitto tra annotazioni gestiti Named Entity Recognition implementato per il sistema di Textual Profile Clustering, si aggiungono altri casi dovuti alla produzione di annotazioni da parte del semantic Tagger. Un termine appartenente a dizionari viene riconosciuto anche da una grammatica In questa circostanza il sistema di NER genera una annotazione di tipo Lookup per via del fatto che il termine appartiene ad un dizionario ed una annotazione di tipo Preprocessing siccome il termine è stato riconosciuto da una grammatica. Quando una occorrenza del genere viene valutata il sistema provvede a scartare l annotazione prodotta dal Semantic Tagger per preferire l etichettatura con il nome del dizionario di appartenenza dell entità. 68

69 Un termine annotato contiene un altro termine annotato Può accadere che un termine annotato dal Semantic Tagger o dal Gazetteer contenga un altro termine. annotato per mezo dell esecuzione di uno dei due Task. In questo caso il sistema provvede a preferire il termine che ha un intervallo di Offset iniziale e finale più esteso. Un termine annotato interseca un altro termine Quando due termini annotati dal Semantic Tagger o dal Gazetter sono tali che l offset iniziale del secondo è compreso tra l offset iniziale e quello finale del primo e l offset finale del secondo è maggiore dell Offset finale del primo, se un termine appartiene ad un dizionario e l altro è stato riconosciuto da una grammatica si sceglie quello appartenente al dizionario, se i termini sono entrambi riconosciuti da grammatiche si sceglie il termine di sinistra, invece se i termini appartengono entrambi a dizionari si attua la politica di selezione basata sulla priorità dei dizionari descritta nel paragrafo Un termine riconosciuto da una grammatica viene riconosciuto anche da un altra grammatica Quando il Semantic Tagger genera più annotazioni per lo stesso termine il sistema provvede a selezionare una sola annotazione in base ad una priorità di cui le grammatiche godono. Le annotazioni generate per via di grammatiche implementate per il dominio specifico hanno una priorità più alta rispetto a quelle implementate per il dominio generico. La Figura 4 mostra un caso in cui il NER ha generato 6 annotazioni che sono tutte in conflitto tra loro: Figura 4 69

70 Il termine GAL4-MBD3L2 viene riconosciuto dalla grammatica GeneMutation. Frammenti della stringa vengono però riconosciuti da altre grammatiche o appartenenti a dizionari. In base a quanto spiegato il sistema deve preferire su tutte le annotazioni quella che ha intervallo di Offsett più esteso. La Figura 5 mostra come il termine viene etichettato alla fine del processo di elaborazione. Figura Normalizzazione delle occorrenze L ultimo step della pipeline implementata si pone l obbiettivo di presentare il risultato dell elaborazione di ogni documento secondo il formato IOB-2. Prima che si possa procedere con la creazione dei file contenenti le informazioni richieste dalle specifiche del task è necessario eseguire una ulteriore valutazione dei documenti al fine di eliminare tutti gli sponazi contenuti in essi. In questa fase il sistema provvede ad eliminare, come succedeva per il Textual Profile Clustering(TPC) le ripetizioni di sinonimi tra parentesi. Quando in un testo è presente un entità biomedica appartenente ad un dizionario del dominio specifico e tale entità è seguita da un suo sinonimo tra parentesi, il sistema provvede ad eliminare la ripetizione del sinonimo e le parentesi. Se per esempio nel testo compare la stringa Connexin26(Cx26) l output che il sistema presenterà riporterà solo l annotazione per Connexin26 inquanto sia Connexin26 che Cx26 sono sinonimi di GJB2. A differenza di quanto succedeva il task di pre-elaborazione per il Semantic Search Engine non prevede la sostituzione dei sinonimi con i loro termini canonici. 70

71 4.3 Analisi dei risultati In questo paragrafo vengono descritti i criteri di valutazione della bontà dell algoritmo di etichettatura delle entità nominate usato. La componente realizzata è stata testata su un dataset ristretto di testi e i risultati sperati sono stati confrontati con quelli ottenuti al fine di calcolare due indici di valutazione: il richiamo e la precisione. Vengono fissati 4 parametri: TP (True Positive): numero di operazioni che vengono eseguite dal sistema e che ci si aspettava che venissero eseguite; FP (False Positive): numero di operazioni eseguite dal sistema che però non dovevano essere eseguite; TN (True Negative): numero di operazioni che il sistema non esegue, ma che in realtà avrebbe dovuto eseguire; FN (False Negative): numero di operazioni che il sistema non esegue e che effettivamente non avrebbe dovuto eseguire. Sulla base di questi valori vengono calcolati i seguenti indici: Precisione: è il rapporto tra le operazioni correttamente eseguite e tutte le operazioni eseguite P = (TP)/(TP + FP) 71

72 Richiamo: è il rapporto tra le operazioni correttamente eseguite e la somma tra le operazioni correttamente eseguite e quelle che non andavano eseguite e che effettivamente non sono state eseguite. R = TP/(TP + FN) Progettazione dei casi di Test I test sono stati effettuati su un dataset composto da articoli che coprono tutti i casi d uso per cui il sistema è stato pensato. Il dataset si compone di 22 articoli, 12 sono artificiali, ovvero costruiti appositamente per coprire i casi duso e 10 sono stati estratti dal dataset delle pubblicazioni scientifiche. Artificiali L Articolo1 contiene: Termini appartenenti a dizionari specifici per i quali è prevista l annotazione B L Articolo2 contiene: Termini appartenenti a dizionari generici per i quali è prevista l annotazione B I I Termini appartenenti a dizionari generici per i quali è prevista l annotazione B L Articolo3 contiene: Termini appartenenti al dizionario HomoSapiensGene per i quali è prevista l annotazione B I I Termini appartenenti al dizionario HomoSapiensGene per i quali è prevista l annotazione B 72

73 L Articolo4 contiene: Termini non appartenenti ai dizionari annotati con il tag < Delation > Termini non appartenenti ai dizionari annotati con il tag < NewGeneName > Termini non appartenenti ai dizionari annotati con il tag < GeneMutation > Termini non appartenenti ai dizionari annotati con il tag < Location > Termini non appartenenti ai dizionari annotati con il tag < newconnexin > Termini non appartenenti a dizionari annotati con il tag < Acronimo > L Articolo5 contiene: Termini appartenenti a dizionari specifici per i quali è prevista l annotazione B Termini non appartenenti a dizionari annotati con il tag <Acronimo> L Articolo6 contiene: Termini appartenenti a dizionari generici per i quali è prevista l annotazione B I I Termini appartenenti a dizionari generici per i qiuali è prevista l annotazione B Termini non appartenenti ai dizionari annotati con il tag < Location > L Articolo7 contiene: Termini appartenenti a dizionari generici per i quali è prevista l annotazione B I I Termini appartenenti a dizionari generici per i qiuali è prevista l annotazione B Termini non appartenenti ai dizionari annotati con il tag < newconnexin> L Articolo8 contiene: Termini appartenenti a dizionari specifici per i quali è prevista l annotazione B Termini appartenenti a dizionari generici per i quali è prevista l annotazione B I I Termini appartenenti a dizionari generici per i qiuali è prevista l annotazione B 73

74 Termini appartenenti al dizionario HomoSapiensGene per i quali è prevista l annotazione B I I Termini appartenenti al dizionario HomoSapiensGene per i quali è prevista l annotazione B L Articolo9 contiene: Termini appartenenti a dizionari specifici per i quali è prevista l annotazione B Termini appartenenti a dizionari generici per i quali è prevista l annotazione B I I Termini appartenenti a dizionari generici per i quali è prevista l annotazione B Termini non appartenenti ai dizionari annotati con il tag < Delation > Termini non appartenenti ai dizionari annotati con il tag < NewGeneName > Termini non appartenenti ai dizionari annotati con il tag < GeneMutation > Termini non appartenenti ai dizionari annotati con il tag < Location > Termini non appartenenti ai dizionari annotati con il tag < newconnexin > Termini non appartenenti a dizionari annotati con il tag < Acronimo > L Articolo10 contiene: Termini appartenenti a dizionari generici per i quali è prevista l annotazione B I I Termini appartenenti a dizionari generici per i qiuali è prevista l annotazione B Termini appartenenti al dizionario HomoSapiensGene per i quali è prevista l annotazione B I I Termini appartenenti al dizionario HomoSapiensGene per i quali è prevista l annotazione B Termini non appartenenti ai dizionari annotati con il tag < Delation > Termini non appartenenti ai dizionari annotati con il tag < NewGeneName > Termini non appartenenti ai dizionari annotati con il tag < GeneMutation > Termini non appartenenti ai dizionari annotati con il tag < Location > Termini non appartenenti ai dizionari annotati con il tag < newconnexin > Termini non appartenenti a dizionari annotati con il tag < Acronimo > 74

75 L Articolo11 contiene: Termini appartenenti a dizionari generici per i quali è prevista l annotazione B I I Termini appartenenti a dizionari generici per i qiuali è prevista l annotazione B Termini non appartenenti ai dizionari annotati con il tag < Delation > Termini non appartenenti ai dizionari annotati con il tag < NewGeneName > Termini non appartenenti ai dizionari annotati con il tag < GeneMutation > L Articolo12 contiene: Termini appartenenti a dizionari specifici per i quali è prevista l annotazione B Termini appartenenti a dizionari generici per i quali è prevista l annotazione B I I Termini appartenenti a dizionari generici per i qiuali è prevista l annotazione B Termini appartenenti al dizionario HomoSapiensGene per i quali è prevista l annotazione B I I Termini appartenenti al dizionario HomoSapiensGene per i quali è prevista l annotazione B Termini non appartenenti ai dizionari annotati con il tag < Delation > Termini non appartenenti ai dizionari annotati con il tag < NewGeneName > Termini non appartenenti ai dizionari annotati con il tag < GeneMutation > Termini non appartenenti ai dizionari annotati con il tag < Location> Termini non appartenenti ai dizionari annotati con il tag < newconnexin> Termini non appartenenti a dizionari annotati con il tag < Acronimo> Reali Il dataset degli articoli reali si compone invece di due sottoinsiemi, uno composto da 5 articoli, è stato estratto dall insieme degli articoli contenenti geni già noti come responsabili della sordità ereditatria non sindromica, mentre l altro che si compone sempre di 5 articoli è stato estratto dall insieme di articoli contenenti geni candidati, ovvero dei quali si pensa che ci possa essere implicazione nella malattia. L estrazione dei due gruppi di articoli è stata eseguita in maniera pseudo-random basandosi sulla nomenclatura che è stata loro assegnata. 75

76 Il nome di ogni articolo è dato dalla concatenazione di tre stringhe: 4. una stringa numerica che indica l indice dell entità biomedica di cui si parla all interno dell articolo; 5. una stringa alfabetica contenente la parola disease se il gene di cui si parla nel documento è catalogato come responsabile oppure la parola cand se il gene di cui si parla all interno è candidato; 6. una stringa numerica che indica il numero dell articolo. Dei 5 articoli scelti per ogni tipologia di abstarct (disease o candidate), tre articoli riguardano la stessa entità biomedica, ma hanno un indice diverso e due sono stati selezionati in maniera completamente casuale purché fossero diversi tra loro Risultati dei test Le Tabella 1 riporta una sintesi del calcolo degli indici di precisione e richiamo eseguito rispetto ai documenti artificiali, mentre la tabella 2 riporta la sintesi del calcolo effettuato rispetto agli articoli reali. Artificiali Nome Articolo TP FP TN FN Precisione Richiamo Articolo ,00 1,00 Articolo ,00 1,00 Articolo ,00 1,00 Articolo ,00 1,00 Articolo ,00 1,00 Articolo ,00 1,00 Articolo ,00 1,00 Articolo ,96 0,96 Articolo ,00 1,00 Articolo ,00 1,00 Articolo ,00 1,00 Articolo ,98 1,00 Media aritmetica semplice 0,99 1,00 Tabella 1 76

77 Reali Nome Articolo TP FP TN FN Precisione Richiamo c01_15cand txt ,00 1,00 c02_15cand txt ,00 1,00 c03_15cand txt ,00 1,00 c03_15cand txt ,00 1,00 c05_1026cand txt ,00 1,00 c06_2706disease txt ,00 1,00 c07_2706disease txt ,92 1,00 c08_2706disease txt ,00 1,00 c09_152137disease txt ,96 1,00 c10_375611disease txt ,96 0,98 Media aritmetica semplice 0,98 1,00 Tabella 2 77

78 Indice delle figure e delle tabelle Figura 1: Pipeline del task di pre-elaborazione per il Semantic Searc Engine; Figura 2: Esempio di grammatica scritta in linguaggio JAPE; Figura 3: Input e Output di un sistema NER munito di Semanti Tagger; Figura 4: Conflitto tra annotazioni di tipo Lookup e di tipo Preprecessing; Figura 5: esempio di risoluzione di conflitti tra annotazioni; Tabella 1: Calcolo degli indici di richiamo e precisione per gli articoli artificiali; Tabella 2: Calcolo degli indici di richiamo e precisione per gli articoli reali. 78

79 Capitolo 5 Template Filling con strutture Predicato-Argomento per un task di Pattern Discovery In questo capitolo viene descritta la parte sicuramente più interessante della sessione sperimentale condotta nell ambito di questa tesi. Le pre-elaborazioni basate su Named Entity Recognition discusse nei due capitoli precedenti erano finalizzate a realizzare task di Information Extraction per sistemi di Text Mining che venivano eseguiti al di fuori del L.A.C.A.M. In questa sessione sperimentale si studia l estrazione di eventi dalle pubblicazioni scientifiche, il Template Filling di queste in istanze di template PASBio (Strutture Predicato-Argomento per il dominio Biomedico) e l applicazione di un algoritmo di Data Mining per la scoperta di regole di associazione finalizzata all estrazione delle co-occorrenze frequenti di eventi presenti nell insieme dei documenti e le probabilità associate a tali eventi. Per quest ultimo step è stato utilizzato il sistema SPADA, interamente sviluppato all interno del nostro laboratorio. 5.1 Studio Statistico della co-occorrenza di eventi Negli anni recenti, sono stati costruiti sistemi di estrazione dell informazione nel campo biomedico che usano tecnologie del linguaggio naturale. Convincenti risultati di estrazione di entità sono stati riportati e ora il focus della ricerca si sta spostando all estrazione delle interazioni e degli eventi e all estrazione di relazioni tra proteine e geni. Nelle frasi del linguaggio naturale, un evento o relazione è espressa con un verbo, e i partecipanti inclusi, sono espressi dagli argomenti del verbo. Così, le strutture predicato-argomento sono strutture intermedie utili per l estrazione di eventi o relazioni. L estrazione della struttura predicato argomento è un importante passo intermedio perché la struttura estratta può essere tradotta in un informazione che può essere memorizzata in un database in modo più sistematico rispetto ai tradizionali metodi che permettevano di estrarre direttamente l informazione usando pattern superficiali nelle frasi. 79

80 Le frasi nei testi biomedici hanno una struttura complicata e un analisi poco profonda come quella effettuata con l ausilio del pattern matching parsing non è adatta a estrarre l informazione in modo sistematico. Dunque, vengono estratte prima le strutture predicato-argomento e poi da queste si estrae l informazione usando inferenze basate sulla conoscenza del dominio applicativo. La strategia di annotazione dei testi consiste in primo luogo nell annotare ogni verbo di ogni frase del testo. Non tutte le frasi sono relazionate all informazione estratta dal testo. L informazione che deve essere estratta dipende dall applicazione particolare o dall utente che necessita quell informazione. Per ogni frase che compone un periodo viene generata una annotazione semi-strutturata nella forma seguente: Articolo Verbo Soggetto Comp-1 Comp-2 Comp-n acidification of 1509cand txt inhibit which lysosome Articolo è il nome dell articolo da quale la relazione verbale è stata estratta, Verbo è il predicato verbale della frase all infinito, Comp-1 n sono i complementi della frase. Viene eseguito Template Filling in istanze di PAS (Predicate-Argument Structure), al fine di inserire in modo strutturato le informazioni estratte in una base di dati relazionale aggiungendovi informazioni di dominio ai dati ottenuti. L insieme dei record del database costituisce una base di conoscenza per la scoperta di regole di associazione. Questa fase ha come obbiettivo l estrazione di co-occorrenze frequenti degli eventi all interno dell insieme dei documenti e le probabilità associate a tali eventi. Algoritmi per la scoperta di regole di associazione sono inizialmente nati per rispondere alla necessità di analizzare i cosiddetti supermarket basket data, ovvero di esaminare il comportamento dei clienti nell acquisto dei prodotti in un supermercato. In pratica le regole di associazione descrivono in che modo i prodotti sono acquistati simultaneamente, ovvero in che modo l acquisto di alcuni prodotti influenza l acquisto di altri prodotti. Ad esempio la regola di associazione: pane,latte -> burro afferma che i clienti, che acquistano pane e latte, acquistano, con una certa probabilità, anche il burro. 80

81 Si definisce antecedente di una regola l insieme dei prodotti su cui si basa la regola, cioè i prodotti che implicano l occorrenza di altri prodotti: pane e latte formano l antecedente della regola in esempio. Si definisce, invece, conseguente della regola l insieme dei prodotti che completano la regola, cioè i prodotti la cui occorrenza è dovuta alla occorrenza di altri prodotti: burro forma il conseguente della regola in esempio. Il tasso probabilistico, che una regola introduce, è dovuto alla occorrenza dei prodotti costituenti la parte antecedente e/o la parte conseguente della regola, cioè è dovuto all evento presenza di certi prodotti nella regola o in una delle due parti. Si noti che non è interessante trovare tutte le regole di associazione che sono contenute nel database. Supponiamo, per esempio, che un supermercato abbia venduto solo un martello durante il periodo di tempo considerato, e che sia successo che il martello sia stato venduto ad un cliente che abbia acquistato anche un vaso. Come si può ben capire, l affermazione che ogni martello sia venduto insieme a un vaso (martello -> vaso) non è significativa, quindi non è molto utile per le decisioni di business. Siamo interessati, quindi, alle regole che occorrono diverse volte nel database. Il numero di volte che una regola deve occorrere nel database, per essere considerata significativa o valida, dipende dal dominio di applicazione. I database coinvolti nella scoperta di regole di associazione sono il più delle volte di grandi dimensioni, quindi, si ha a che fare con milioni e milioni di transazioni. Grandi data set sono però considerati necessari per ottenere risultati credibili e significativi. Sfortunatamente, però, i tempi di esecuzione degli algoritmi per la scoperta delle regole dipendono pesantemente dal database. Benché la complessità in tempo della scoperta delle regole di associazione sia lineare col numero di tuple del database, tutti gli algoritmi esistenti richiedono passi multipli sul database. Di conseguenza la dimensione del database è il fattore più influente nei tempi di esecuzione. Data una collezione di insiemi di items (record di un database), le regole di associazione descrivono con quale probabilità varie combinazioni di items occorrono negli stessi insiemi. Diamo ora di seguito alcune definizioni. 81

82 Definizione 1 Dato un insieme R di items, un database d su R è una collezione di sottoinsiemi di R. Gli elementi di R sono detti items, mentre gli elementi di d sono chiamate righe, tuple o transazioni. Il numero di tuple in d è denotato da d. Nel contesto dell analisi dei basket data di un supermercato, gli items rappresentano i prodotti messi in vendita. Una tupla del database corrisponde quindi ai prodotti acquistati da un cliente in una visita al supermercato, se un cliente ha acquistato latte e birra, allora nel database ci sarà la riga corrispondente {latte, birra}. La quantità o il prezzo degli items non sono considerati in questo modello, ma soltanto l informazione circa l evento acquisto del prodotto. Utilizziamo le lettere A, B, per denotare gli items. L insieme di tutti gli items è denotato da R e tutti gli altri insiemi di items li denotiamo con le ultime lettere dell alfabeto, come X e Y; Denotiamo con le lettere minuscole dell alfabeto i database e le righe. I database da lettere minuscole come d, e le righe dalle lettere t e u. Una proprietà interessante di un insieme di items, itemset, è il numero di righe che lo contengono. Da qui si arriva poi alla definizione del termine frequente. Definizione 2 Sia R un insieme di items, d un database binario su R e X, Y R due itemsets. Allora l espressione X -> Y è una regola di associazione su d. 82

83 Definizione 3 Sia R un insieme di items, d un database su R e sia X R un itemset. L itemset X soddisfa una riga t d, se X t. L insieme di righe di d che contengono X è denotato da M(X, d) cioè M(X, d) = { t d X t }. Allora dicesi frequenza o supporto di X in d, denotata da fr(x, d), il rapporto fr(x, d) = M(X,d) / d. Scriveremo semplicemente M(X) e fr(x) se il database è implicito nel contesto. Definizione 4 Data una frequenza di soglia o supporto minimo min_fr [0, 1], l itemset X è detto frequente (o anche large o forte rispetto a min_fr) se fr(x, d) min_fr cioè è frequente o large se è contenuto in almeno una frazione min_fr di righe del database d. La frequenza di soglia min_fr è un parametro dato dall utente e dipende dall applicazione. Definizione 5 Sia R un insieme e d un database su R, e siano X,Y R itemsets. Individuamo con M(X Y,d) il numero delle righe del database d che 83

84 contengono l itemset composto da X e Y e individuamo con M(X,d) il numero di righe che contiene l itemset X. Allora dicesi confidenza della regola X -> Y il rapporto conf(x -> Y, d) = M( X Y,d) / M(X,d). Scriveremo semplicemente conf(x -> Y) se il database è implicito nel contesto. Definizione 6 Dato un valore di supporto minimo, min_fr, ed un valore di confidenza minima, min_conf, rispetto ad un database d, una regola della forma X -> Y si dice essere valida in d se e solo se fr(x -> Y,d) min_fr conf(x -> Y,d) min_conf. In altre parole, la confidenza conf(x -> Y, r) è la probabilità condizionata che una tupla di d scelta casualmente che contiene X, contenga anche Y. Il supporto non deve essere confuso con la confidenza. Mentre la confidenza rappresenta una misura della forza della regola, il supporto ha invece un significato statistico. Quindi una regola, per essere considerata interessante, deve essere sufficientemente forte e sufficientemente frequente. Possiamo allora formulare il problema della scoperta delle regole di associazione nel modo seguente: dati R, d, min_fr, min_conf, trovare tutte le regole di associazione X -> Y valide in d rispetto a min_fr e min_conf, e tali che X e Y siano disgiunti e non vuoti. Nell ambito della scoperta di conoscenza da documenti biomedici, i nostri items sono rappresentati dalle relazioni verbali che coinvolgono le entità biomediche. Vogliamo scoprire con quale regolarità eventi nei quali sono coinvolte entità biomediche implicano altri eventi che coinvolgono le medesime o altre entità. 84

85 5.2 Le specifiche PasBio I PAS (Predicate-Argument Structure) sono dei template di strutture ideate per manipolare informazioni relative ad eventi ottenuti tramite Information Extraction da testi. Un PAS si usa per rappresentare in maniera strutturata la relazione esistente tra un predicato verbale, il soggetto e i complementi di una frase. I PAS variano a seconda del dominio applicativo in base ai predicati verbali e ai predicati nominali che sono di interesse del dominio. In passato sono stati sviluppati diversi modelli di PAS come PropBank, VerbNet e FrameNet. In un articolo pubblicato il 19 Ottobre 2004 da BMC Bioinformatics viene introdotto il modello di PAS chiamato PASBio che estende il modello PropBanck al dominio Biomolecolare. Sono stati scelti 30 predicati verbali che descrivono i ruoli ricoperti da entità biomediche nominate con lo scopo di coprire un vasto numero di aree di ricerca nel campo della biologia molecolare. L analisi che ha portato a tali scelte è stata condotta su un sottoinsieme di frasi estratte da pubblicazioni presenti su MEDLINE (Medical Literature Analysis and Retrieval System Online ), da EMBO Journal (una delle più importanti riviste scientifiche pubblicata da Nature Publishing Group con sede in Germania) e da altre banche di dati bioinformatiche. Il dominio applicativo scelto nell ambito della tesi è quello della sordità ereditaria non sindromica. Rispetto a tale dominio è stato selezionato un sottoinsieme di tutte le specifiche PASBio: alter, confer, delete, disrupt, eliminate, encode (nel senso di specify), generate, inhibit, lead, modify, mutate, proliferate, recognize, result, skip, splice, transcribe (nel senso di convert), transform (nel senso di cause), translate (nel senso di produce) e truncate. A ogni predicato sono associate una o più strutture che mettono in relazione i ruoli che entità biomediche del dominio possono assumere nella frase. Ad esempio per il verbo inhibit PASBio propone la seguente struttura: Figura 14 85

86 dove Roleset indica il predicato vebale e la versione (nel caso in cui ci sono più strutture associate allo stesso verbo), WordNet indica se la frase deve essere in forma attiva o passiva e Roles indica il ruolo che i complementi Ag0, Arg1 e Arg2 devono assumere nella frase e la posizioni in cui devono trovarsi. 5.3 Template Filling con strutture PasBio In questo capitolo viene mostrata la pipeline implementata al fine di realizzare lo studio sulle regole di associazione che coinvolgono gli eventi contenuti nell insieme di documenti. Il task prevede l elaborazione di un dataset di un insieme di circa 70 abstract di pubblicazioni scientifiche inerenti alla sordità ereditaria non sindromica in cui si discute di entità biomediche considerate responsabili della malattia e altre di cui l implicazione non è certa. La figura 2 mostra la pipeline implementata: Figura 15 86

87 5.3.1 Normalizzazione dei documenti Gli articoli scientifici di partenza costituiscono una descrizione narrativa della investigazione scientifica condotta pertanto consistono di documenti testuali scritti in linguaggio naturale tipicamente caratterizzati da occorrenze di nomi canonici di entità biomediche e nomi alternativi delle medesime entità. Infatti, nelle discipline biomediche è frequente l uso di varianti di simboli di geni o proteine (e.g., CX26 piuttosto che Connexin 26) e di acronimi o abbreviazioni del nome esteso (e.g. HHL piuttosto che Hereditary Hearing Loss). Al fine di migliorare l efficacia dell analisi e ridurre lo sforzo computazionale delle componenti successive a questa è opportuno ridurre il numero delle entità biomediche coinvolte negli eventi tenendo conto di tali circostanze. Si raggiunge lo scopo applicando ai documenti la stessa pre-elaborazione effettuata per il task di Textual Profile Clustering discussa nel capitolo 3 di cui riportiamo l elenco delle trasformazioni che il sistema implementato esegue sui testi: Sostituzione di sinonimi con termini canonici (e.g., tutte le occorrenze di Connexin 26, Cx26, connexin26, ecc.. vengono rimpiazzate con il termine canonico GJB2); Sostituzione di caratteri blank con dei trattini bassi nei termini multi token (Hereditary Hearing Loss diventa Hereditary_Hearing_Loss); Eliminazione delle ripetizioni tra parentesi e separate da slash (la sezione di testo Connexin26 (Cx26) diventa GJB2, mentre Connexin30/Cx30 diventa GJB3 ); Eliminazione di slash tra termini non sinonimi tra loro (GJB2/GJB3 diventa GJB2 GJB3) Estrazione di Relazioni Verbali dai Testi con MontyLingua MontyLingua è un Commonsense-Enriched Natural Language Understander for English implementato da Hugo Liu, presso il MIT Media Lab, disponibile nei linguaggi Pyton e Java (1.4.2) distribuito in modo gratuito per usi non commerciali. Dato un testo in Inglese MontyLingua è capace di estrarre una interpretazione semantica del testo. Tra i vari strumenti messi a disposizione dal pacchetto ne esiste uno (public String jist_predicates(string text))che dato un testo ne estrae le relazioni verbali e le 87

88 presenta in maniera semi-strutturata elencando per ogni relazione l infinito del verbo, soggetto e complementi legati dalla relazione. Gli abstract delle pubblicazioni scientifiche vengono dati in input alla componente MontyLingua che in fase di inizializzazione carica in maniera del tutto trasparente le risorse di elaborazione di cui necessita. Invocando la funzione di estrazione di entità verbali in questa fase vengono generate da ogni frase delle tuple nel formato ( Verbo Arg0 Arg1 ArgN ) in cui l argomento Verbo è l infinito del predicato verbale della frase, Arg0 è solitamente il soggetto e gli altri argomenti rappresentano i complementi che compongono la frase. Per esempio, elaborando la frase: The Media Lab was widely popularized in the 1990s by business and technology publications such as Wired and Red Herring for a series of practical inventions in the fields of wireless networks, field sensing, web browsers and the World Wide Web., il sistema estrae le seguenti relazioni verbali: ("popularize" "Media Lab" "in 1990s" "by business and technology publication") ("sense" "wireless network field" "web browser") Filtraggio delle Relazioni di Interesse Per i fini del dell analisi che viene condotta non tutti i predicati verbali sono interessanti. Viene fornita una lista di 20 verbi (predicati verbali utili) in modo da poter scartare tutte le relazioni verbali che non hanno un predicato verbale contenuto in detta lista. Le relazioni verbali ritenute utili vengono salvate su file system nel formato: NomeFile: ( Verbo Arg0 Arg1 ArgN ) per essere date in input alla componente di Template Filling. La figura 3 mostra un frammento del listato della componente di filtraggio delle relazioni verbali. 88

89 Figura 16 La relazione verbale 1 è stata esclusa dallo step successivo in quanto il predicato verbale to be non è compreso nell insieme dei PAS Biomedici scelto per il dominio applicativo; La relazione verbale 2 viene ritenuta utile per lo step successivo in quanto il predicato verbale to lead è riportato sulla lista dei PAS possibili. La figura 4 mostra alcune relazioni verbali destinate al Template Filling. Figura Tokenizer e FS Gazetteer Il nostro obbiettivo è quello di creare delle istanze dei template PASBio atte a contenere le relazioni verbali estratte con MontyLingua. Le relazioni verbali sono disponibili in forma grezza su stringhe, tutte contenute in dei file di testo. Su di esse è necessaria una fase di Named Entity Recognition al fine di poter individuare: 89

90 Le singole relazioni verbali; Il nome dell articolo dal quale ogni relazione è stata estratta; Il predicato verbale di ogni relazione; Le entità biomediche contenute nei singoli argomenti e il loro ruolo nella relazione. La fase di NER inglobata nella pipeline prevede l utilizzo di un tokenizzatore e di un FS Gazetteer identici a quelli usati per le pre-elaborazioni per i task di Textual Profile Clustering e Semantic Search Engine, mostrati nei paragrafo e Nella precedente fase di normalizzazione dei documenti, eseguita in questa pipeline, i testi sono stati modificati al fine di ridurre il numero delle entità ai soli termini canonici e nelle entità nominate composte da più parole, sostituire gli spazi con dei trattini. Di conseguenza si è resa necessaria una corrispondente fase di normalizzazione dei dizionari usati per quest ultima fase di Named Entity Recognition; anche dai dizionari sono stati eliminati i termini sinonimi e nelle entità multi-word sono stati sostituiti gli spazi con i trattini. La figura 5 riporta le annotazioni che il sistema di NER genera, data in input una relazione verbale estratta da un documento: Figura 18 Il sistema prevede anche l utilizzo di un piccolo Semantic Tagger per il riconoscimento del nome dell articolo. Viene, quindi riconosciuto il nome dell articolo, il predicato verbale, e delle entità presenti all interno dei dizionari contenute negli argomenti della struttura verbale. Sulla base di queste informazioni è possibile eseguire il Template Filling nella struttura PASBio. 90

91 5.3.5 Template Filling La componente di Template Filling si occupa, per ogni relazione verbale estratta dai documenti, di raggruppare le annotazioni che la riguardano generate dal Gazetteer, elaborare tale insieme di annotazioni al fine di cercare una struttura verbale tra quelle definite in PasBIO che meglio la rappresenta ed inserire le informazioni contenute nella relazione in una istanza del template del PAS scelto. Le istanze delle strutture vengono inserite in un database relazionale. Per raggiungere tale obbiettivo al sistema vengono forniti dei pattern verbali mediante un file xml. Tale risorsa contiene tutte le strutture PASBio. Ad ogni struttura corrisponde un predicato verbale e una lista di argomenti. Ad ogni argomento è associato l elenco dei dizionari nei quali si vuole cercare le entità nominate riconosciute nella relazione estratta. Data una struttura verbale P(p 1, p 2,, p n ) dove all argomento p i sono associati i dizionari d i,0, d i,1,, d i,x e una relazione verbale R(r 1, r 2,, r m ) estratta dai documenti dove per l argomento r j sono state generate le annotazioni a j,0, a j,1,, a j,y, tali che n ed m non siano necessariamente uguali e P ed R abbiano lo stesso predicato verbale il compilatore trasforma la relazione R nella tupla T(NA, pv, t 1, t 2,, t n ) dove NA è il nome dell articolo di appartenenza della relazione verbale, pv è il predicato verbale e t i è un termine appartenente ad uno dei dizionari d i secondo il seguente algoritmo: for each p i { for each r j { if not compiled(r j ) { if esiste almeno un a j,z appartenente ad almeno uno dei dizionari d i,1 { t i = a j,z ; setcompiled(r j ); } else { 91

92 t i = getnomedizionario(d i,0 ); } } } } Per ogni argomento della struttura scelta in base al predicato verbale, presi in sequenza ad uno ad uno, se tra gli argomenti della relazione esiste almeno una occorrenza di un termine appartenente ad uno dei dizionari proposti dal pattern per quell argomento, esso viene compilato con quel termine. Gli argomenti della relazione che non contengono termini appartenenti ai dizionari vengono compilati con il nome del dizionario che ha priorità più alta tra quelli previsti nella struttura per l argomento in quella posizione. La tupla T costituisce l istanza del template usato che viene inserita in una base di dati relazionale. La figura 6 mostra come viene definita nel formato xml il template della struttura alla quale è associato il verbo inhibit: Figura 19 92

93 La figura 5 mostra come viene costruita l istanza di una relazione verbale: Figura 20 E interessante notare che nel secondo argomento della relazione sono state riconosciute 2 entità nominate e all istanza della struttura sia stata passata l entità etichettata con HomoSapiensGene anziché quella etichettata con Chemical_and_Drugs (vedi figura 5); Il sistema ha scelto la seconda entità alla prima perché HomoSapiensGene ha una priorità maggiore di Chemical_and_Drugs siccome nel file xml contenente tutte le strutture, nel secondo argomento della struttura alla quale è associato il verbo inhibit, HomoSapiensGene viene scritto prima di Chemical_and_Drugs (vedi figura 6). La relazione verbale estratta è composta solo da due argomenti, mentre la struttura del verbo inhibit ne prevede tre; in questo caso il sistema ha compilato il terzo argomento con il nome del dizionario che nella struttura ha, in quell argomento, la priorità massima. Può accadere che un predicato verbale sia associato a più di una struttura. In tal caso il sistema genera una istanza di template per ognuna delle strutture e sceglie la migliore in base al numero di argomenti che sono stati riempiti Trasformazione dei PAS in fatti Prolog Obbiettivo di questo step è la preparazione dei dati ottenuti tramite i passaggi precedenti in modo da poter applicare su di essi l algoritmo di Data Mining per il Pattern Discovery. Il modello logico del database utilizzato per contenere le relazioni verbali estratte dai testi permette di tenere traccia di tutti gli articoli coinvolti nell elaborazione. Ad ogni articolo sono correlate le strutture verbali da esso estratte. Ad ogni struttura sono correlati il predicato verbale e tutti gli 93

94 argomenti dei quali si tiene traccia dell entità biomedica coinvolta, del nome del dizionario che la contiene e della posizione che l argomento occupa nella struttura predicato-argomento. Tutte le strutture verbali contenute nella base di dati relazionale vengono riportate nei tre file che costituiranno l input per SPADA: file.db Nel file.db vengono rappresentati tutti i fatti che si vogliono includere nell elaborazione. Ogni fatto Prolog è espresso nella forma: pred (Arg 1,.., Arg n ) dove pred rappresenta il nome del predicato e Arg i rappresenta l i-esimo argomento della relazione che può essere un dato variabile o una costante. La figura 8 mostra un esempio di predicati contenuti nel file.db Figura 21 Il predicato abs(ie_2070disease _txt) indica a SPADA che esiste un documento di nome ie_2070disease _txt; Con il predicato pas(ie_2070disease _txt,lead0) intendiamo che da quell abstract è stato estratto il PAS lead0; 94

95 Con il predicato verb_rule(lead0,'lead') indichiamo che alla struttura lead0 è associato un argomento 'lead' che svolge il ruolo di predicato verbale. chemicals_and_drugs_role0(lead0, 'rna_precursors') indica invece alla struttura verbale lead0 è associato un argomento a valore costante 'rna_precursors', che questo svolge il ruolo di chemicals_and_drugs e che si trova nella posizione 0. Secondo la stessa logica, gli altri predicati indicano che esistono altre due strutture verbali associate allo stesso documento, una con predicato verbale splice che ha come argomenti rna_precursors alla posizione 0 con ruolo chemicals_and_drugs e disease alla posizione 1 con ruolo disease e l altra con predicato verbale result con un solo argomento a valore noise. In questo modo si ricostruisce l intera istanza del database relazionale. file.bk Nel file.bk viene rappresentata la conoscenza di background ovvero informazioni relative ai ruoli che le costanti assumono all interno del database. Tale conoscenza viene rappresentata con gerarchie gerarchie su oggetti rilevanti per il compito e conoscenza di dominio espressa in forma di regole. Le gerarchie concettuali sono rappresentate da livelli con il fatto Prolog: hierarchy (Root, Level, Father, Nodes) dove Root è il nome della radice, Level è il livello rappresentato, Father è il nodo padre, e i Nodes sono i nodi appartenenti al livello. La radice ha livello uguale a 1 e null come nodo padre. La figura 9 mostra una delle gerarchie usate in uno degli esperimenti condotti. 95

96 Figura 22 Il nome della gerarchia è homesapiensgene; al livello radice essa contiene un solo nodo etichettato con il nome stesso della gerarchia. Il secondo livello è fittizio. Sul terzo livello sono invece riportati come nodi tutte le entità biomediche riconosciute in fase di template filling come appartenenti al dizionario HomoSapiensGene che sono state ritrovate nelle relazioni verbali. Un file.bk contiene dunque, nel nostro caso, una gerarchia per ogni dizionario del quale è stato riconosciuto almeno un termine in almeno una relazione verbale e una gerarchia che contiene tutti i predicati verbali associati alle strutture. file.lb SPADA utilizza la specifica di un language bias per vincolare la ricerca di pattern e regole di associazioni. Il language bias descrive la collezione di predicati che possono essere effettivamente coinvolti nella estrazione di pattern frequenti. La figura 10 mostra un frammento del file.lb usato in uno dei nostri esperimenti: 96

97 Figura 23 key(abs(new ro)). Indica al sistema che l unità principale di analisi costituito dal predicato abs e che esso può avere un solo argomento e che quell argomento non è ricavato da predicati precedentemente definiti. trh(homosapiensgene). Indica al sistema una delle gerarchie definite nel file.bk al quale i valori costanti degli atomi potranno appartenere. Il file.lb dovrà contenere una dichiarazione di tipo trh per ogni gerarchia presente nel file.bk lb_atom(pas(old ro, new tro)). Indica al sistema SPADA che l unità sulla quale dovrà essere effettuato il pattern discovery è rappresentata dai predicate pas Tali predicati avranno due argomenti: il primo argomento dovrà essere un valore già dichiarato in altri predicati, mentre il secondo potrà essere un valore nuovo. Nel nostro caso il file.lb riporta un lb_atom per ogni fatto contenuto nel file.db Il file.lb comprende anche un elenco di predicati che impostano il funzionamento dell algoritmo. Per esempio i seguenti predicati: min_sup(1, 0.005). min_sup(2, 0.005). min_sup(3, 0.005). 97

98 impostano i minimi valori che può assumere il supporto per essere considerato un buon risultato ai livelli di gerarchia specificato come primo argomento. La componente per la trasformazione delle istanze di template PASBio in fatti Prolog è parametrizzabile. Essa prende in input un file nel quale vengono specificati i predicati verbali delle strutture che si vogliono considerare e un file dove possono essere specificati per ogni argomento di ogni struttura verbale i dizionari ai quali le entità riconosciute devono appartenere per essere considerate nel Pattern Discovery. La figura 11 mostra una parte del file atomipossibili.xml: Figura 24 La struttura xml usata per questi parametri è molto simile a quella usata per definire le strutture PasBio nella fase di Template Filling. La differenza sta nel fatto che il tag Dictionary prevede l uso 98

99 di un parametro use che indica al sistema de utilizzare o meno quel dizionario nel corso della trasformazione della base di dati relazionale in fatti Prolog. Inoltre è possibile usare, come tag annidato di Dictionary il tag Exclude che prevede l uso del parametro term al quale viene dato come valore un termine del dizionario che per quell argomento non si vuole considerare. La figura 12 mostra il file PASpossibili.txt per la selezione dei predicati verbali. Figura 25 Per le strutture verbali con predicato skip, splice, transcribe, transform non verrà generato nessun fatto Prolog. 99

100 Indice delle Figure Figura 1: esempio di specifica PASBio; Figura 2: Pipeline implementata per il task di Pattern Discovery; Figura 3: Listato dell estrazione delle relazioni verbali dai documenti; Figura 4: Relazioni verbali estratte utili all elaborazione; Figura 5: Input e Output del sistema NER usato per il Template Filling delle relazioni verbali; Figura 6: Uso di xml per definire una struttura PASBio; Figura 7: Risultato di Template Filling di una struttura verbale; Figura 8: File.db Figura 9:File.bk Figura 10: File.lb Figura 11: Uso di xml per la parametrizzazione del Pattern Discovery Figura 12: Uso del file PasPossibili.txt Riferimenti bibliografici Antonello Falcone - PROGETTAZIONE E REALIZZAZIONE DI UN TEXT PROCESSOR PER L ESTRAZIONE E RAPPRESENTAZIONE LOGICA DI STRUTTURE PREDICATO-ARGOMENTO Tesi di Laurea Dipartimento di Informatica dell Università degli studi di Bari. Tuangthong Wattarujeekrit1, Parantu K Shah and Nigel Collier - PASBIO: PREDICATE- ARGUMENT STRUCTURES FOR EVENT EXTRACTION IN MOLECULAR BIOLOGY BMC INFORMATICS 19 October 2004 articolo disponibile su Tuangthong WATTARUJEEKRIT, Parantu SHAH, Nigel COLLIER - PASBio : Predicate- Argument Structures based on Biological Corpus - National Institute of Informatics (NII), Tokyo, Japan 07/04/2009 articol.o disponibile su

101 Capitolo 6 Guide Utente e Documentazione Tecnica 6.1 Naned Entity Recognition per il Task di Textual Profile Clustering La figura 1 mostra la cartella di lavoro dell applicazione che si occupa della pre-elaborazione per il TCP. Figura Le Risorse del sistema La cartella Risorse contiene tutti i dati necessari al sistema per svolgere il suo lavoro su un insieme di documenti. Al suo interno troviamo 3 cartelle e 4 file di testo. 101

102 La cartella Gazetter contiene tutti i dizionari necessari alla componente FS Gazetteer. Ogni dizionario è rappresentato da un file.lst contenente tutte le entità che devono essere riconosciute come appartenenti a quel dizionario, ognuna su una riga diversa. Affinché i dizionari possano essere presi in input dal sistema. devono essere definiti in un file.def dove per ognuno di essi deve esserci una riga nel formato nomefile.lst:majortype dove nomefile è il nome del file contenente il dizionario e presente nella cartella Gazetteer, majortype è l etichetta che si vuole assegnare alle entità appartenenti a quel dizionario quando occorrono nei testi. Il sistema genera una eccezione quando un dizionario definito nel file.def non è presente nella cartella. Il nome del file.def deve essere nel formato CSX_nomeFile.lst dove CSX può assumere valore CSF(Case sensitive False) quando il riconoscimento delle entità accorrenti nei testi non deve avvenire secondo il criterio Case Sensitive o CST (Case Sensitive True) quando invece deve essere applicato il criterio Case Sensitive. La cartella Sinonimi contiene i dizionari dei sinonimi, ognuno rappresentato da un file.lst. Un dizionario dei sinonimi è un elenco di regole per la trasformazione di un termine che può occorrere nei documenti nel suo termine canonico quando il termine è un sinonimo. Su ogni riga del file deve esserci una regola; una regola è costituita da una LHS (parte sinistra) che rappresenta un sinonimo che è possibile incontrare in un documento e una RHS (parte destra) che rappresenta il termine canonico da sovrascrivere all occorrenza del sinonimo; parte destra e parte sinistra sono separate da un #. 102

103 La figura 2 riporta un esempio dei sinonimi che devono essere sostituiti con GJB2. Figura 26 I dizionari contenuti nella cartella dei Gazetteer e quelli dei sinonimi sono in relazione tra loro. Affinché le sostituzioni possano avvenire, rispetto ai termini appartenenti ad un insieme noto (ad esempio tutte le connexine), il dizionario dei sinonimi di tale insieme deve essere un file identificato dallo stesso nome del file dei Gazetteer; Tutti i termini contenuti in un dizionario dei sinonimi, siano essi sinonimi o termini canonici, devono essere contenuti anche nel rispettivo dizionario dei termini. La cartella Gate contiene tutte le impostazioni di default del sistema di NER incorporato nell applicazione di normalizzazione. E opportuno operare modifiche alle risorse in essa contenute solo nel caso in cui si volesse cambiare il funzionamento del sistema di Information Extraction. E disponibile in letteratura molta documentazione a riguardo. I 4 file di testo contenuti nella cartella Risorse stabiliscono le priorità in fase di risoluzione dei conflitti tra annotazioni. In essi devono essere riportate le etichette che vengono assegnate alle entità nominate come mostrato in figura 3. Figura

104 Sono disponibili 5 livelli di priorità in base al file che contiene le etichette: hanno priorità massima le etichette contenute nel file specific.txt. La priorità delle etichette diminuisce a seconda se esse sono riportate in generic.txt, HomoSpiens.txt o oggiunti.txt. Hanno priorità minima le etichette non contenute nei file Input e Output del sistema L insieme dei documenti da normalizzare deve essere contenuto nella cartella Articoli e i file devono essere in formato txt. Se alcuni documenti sono contenuti in sottocartelle, verranno esclusi dall elaborazione. La cartella di lavoro contiene le cartelle IE e Listati. Esse sono destinate a contenere l output dell elaborazione e prima di lanciare l applicazione devono essere vuote. La prima delle due cartelle conterrà i documenti normalizzati, mentre la seconda conterrà un insieme di file in cui vengono elencate le operazioni di normalizzazione operate dall applicazione Lanciare l applicazione La cartella di lavoro contiene il file TPC.bat. Esso ha il compito di mandare in esecuzione prima il processo Stepper.jar che si occupa di strutturare nella cartella di lavoro il file system in modo che l insieme dei documenti venga partizionato in sottoinsiemi più piccoli e di far eseguire su ognuno dei sottoinsiemi l applicazione TPC.jar che si occupa della fase di normalizzazione vera e propria. La prima istruzione di TPC.bat è java jar Stepper.jar param, dove param è il numero di documenti che al più potranno essere contenuti in una partizione. L omissione del parametro imposta il valore di default a 500. Per lanciare l applicazione, dopo aver opportunamente copiato i documenti nella cartella Articoli, i dizionari nelle rispettive cartelle e aver settato i parametri di priorità, è sufficiente il doppio click del mouse sul TPC.bat anche se è preferibile digitare il comando TCP dalla consolle del sistema 104

105 operativo quando ci si trova nella directory di lavoro al fine di poter leggere eventuali eccezioni lanciate dall applicazione. 6.2 Named Entity Recognition per un task di Semantic Search Engine La figura 4 mostra la cartella di lavoro dell applicazione che si occupa della pre-elaborazione per il TCP. Figura Le risorse del Sistema La cartella Risorse contiene tutti i dati necessari al sistema per svolgere il suo lavoro su un insieme di documenti. La cartella Gazetteer, Gate, e Sinonimi sono identiche a quelle omonime presenti nelle risorse del sistema di Named Entity Recognition per il Task di Textual Profile Clustering e sono già state descritte nel paragrafo

106 Il sistema di Named Entity Recognition per il Task di Semantic Search Engine è supervisionato, in quanto utilizza una componente Semantic Tagger che si basa su delle grammatiche per riconoscere delle entità biomediche che non sono contenute nei dizionari. Tali grammatiche sono contenute nella cartella Grammar e sono costituite da file.jape che contengono le espressioni regolari scritte in linguaggio Jape (nella appendice A è riportata una descrizione più dettagliata del linguaggio Jape). Ogni file.jape contiene una o più grammatiche e affinchè il Semantic Tagger possa utilizzarle deve esistere un file 1_main.jape contenente l elenco dei nomi dei file che contengono le grammatiche. La figura 5 riporta un esempio di un file 1_main.jape: Figura 29 Il file deve contenere una intestazione MultiPhase: main con cui si indica al Smantic Tagger che di seguito vengono riportate le grammatiche che devono essere considerate ed un corpo che inizia con la parola chiave Phases: seguita righe di testo contenenti ognuna il nome di uno dei file.jape contenenti le grammatiche. Se un file.jape non è riportato in tale elenco il sistema non considera le grammatiche in esso definite. In fase di caricamento delle grammatiche possono essere generate delle eccezioni se la cartella Grammar non contiene uno dei file riportati nel main o se sono presenti errori di sintassi nella definizione delle grammatiche nel linguaggio jape. La cartella delle risorse deve inoltre contenere 4 file.txt per la definizione delle priorità tra le entità biomediche riconosciute tramite l utilizzo dei dizionari. La struttura dei 4 file di testo è identica a quella utilizzata nel sistema per il TPC ed è stata descritta nel paragrafo

107 Le entità nominate riconosciute dal Semantic Tagger, in fase di risoluzione di conflitti tra le annotazioni, hanno una priorità più bassa rispetto alle entità riconosciute dalla componente FS Gazetteer Input e Output del sistema L insieme dei documenti da normalizzare deve essere contenuto nella cartella Articoli e i file devono essere in formato txt. Se alcuni documenti sono contenuti in sottocartelle, verranno esclusi dall elaborazione. La cartella di lavoro contiene le cartelle IE e Listati. Esse sono destinate a contenere l output dell elaborazione e prima di lanciare l applicazione devono essere vuote. La prima delle due cartelle conterrà i documenti normalizzati, mentre la seconda conterrà un insieme di file in cui vengono elencate le operazioni di normalizzazione operate dall applicazione Lanciare l applicazione La cartella di lavoro contiene il file SEE.bat. Esso ha il compito di mandare in esecuzione prima il processo Stepper.jar che si occupa di strutturare nella cartella di lavoro il file system in modo che l insieme dei documenti venga partizionato in sottoinsiemi più piccoli e di far eseguire su ognuno dei sottoinsiemi l applicazione SSE.jar che si occupa della fase di normalizzazione vera e propria. La prima istruzione di SEE.bat è java jar Stepper.jar param, dove param è il numero di documenti che al più potranno essere contenuti in una partizione. L omissione del parametro imposta il valore di default a 500. Per lanciare l applicazione, dopo aver opportunamente copiato i documenti nella cartella Articoli, i dizionari nelle rispettive cartelle e aver settato i parametri di priorità, è sufficiente il doppio click del mouse sul SEE.bat anche se è preferibile digitare il comando SEE dalla consolle del sistema operativo quando ci si trova nella directory di lavoro al fine di poter leggere eventuali eccezioni lanciate dall applicazione. 107

108 6.3 Template Filling con strutture Predicato-Argomento per un task di Pattern Discovery La figura 6 mostra la cartella di lavoro dell applicazione che si occupa del Task di Pattern Discovery. Figura Le risorse del sistema L applicazione di Template Filling utilizza diverse componenti: una per la normalizzazione dei documenti, una per l estrazione delle relazioni verbali, una per il template filling delle relazioni verbali nelle istanze PASBio, una per la presentazione dei PAS nel formalismo relazionale Datalog e una per il pattern discovery vero e proprio. Ognuna di queste componenti necessita di alcune risorse di elaborazione che devono essere presenti nel file sytem contenuto nella cartella di lavoro dell applicazione. La cartella RisorseTCP contiene i dati necessari al sistema per svolgere il lavoro di normalizzazione dei documenti. La componente che si occupa di svolgere questo Task è esattamente la stessa applicazione usata per la pre-elaborazione per il task di Textual Profile 108

109 Clustering, dunque i dati contenuti in questa cartella sono gli stessi contenuti nella cartella Risorse dell applicazione sviluppata per il TCP e sono descritti nel paragrafo La cartella RisorseMonty deve contenere solo il file relazioniutili.lst necessario alla componente per il filtraggio delle relazioni verbali estratte. In questo file è contenuto l elenco dei predicati verbali all infinito che devono avere le relazioni verbali estratte al fine di poter essere considerate nella fasi successive della elaborazione. La figura 7 riporta un esempio di lista delle relazioni utili. Figura 31 In questo caso si impartisce all applicazione di considerare per il pattern discovery solo le relazioni che hanno come predicato verbale alter, confer, delete o distrupt. La componente per l estrazione delle relazioni verbali carica in maniera del tutto trasparente le risorse di calcolo. Queste sono costituite dai file.mdf contenuti nella cartella di lavoro. Se questi file non sono presenti nella cartella di lavoro, l applicazione genera una serie di eccezioni. La cartella RisorseTF contiene i dati necessari alla componente di Template Filling. Questa integra a sua volta una componente di Named Entity Recognition necessaria per l identificazione delle entità biomediche presenti nelle relazioni verbali. Sono quindi presenti all interno della cartella RisorseTF le sottocartelle gate, gazetteer e grammar. Il contenuto di gazetteer e gate è simile a quello delle omonime cartelle usate per l la pre-elaborazione per il TPC ed è descritto nel paragrafo con la differenza che ai dizionari deve essere applicata la stesssa normalizzazione applicata ai documenti ovvero vengono eliminati tutti i sinonimi e in tutti i termini multiword vengono sostituiti gli spazi con i trattini. Come per la pre-elaborazione per il TCP anche la cartella RisorseTF contiene i quattro file di testo per la specifica delle priorità in fase di risoluzione dei conflitti tra le annotazioni. 109

110 Il sistema di Named Entity Recognition usato per il template filling usa anche un Semantic Tagger per l identificazione delle singole relazioni verbali estratte che si basa su una grammatica jape che definisce l espressione regolare per il riconoscimento del nome del documento da cui è stata estratta una relazione verbale. Tale grammatica non deve essere modificata. All interno della cartella RisorseTF deve essere presente il file pattern.xml in cui vengono definiti manualmente i Pas di esempio per il Template Filling. La figura 8 mostra un esempio del file pattern.xml. Figura 32 Tutti i template vengono rappresentati all interno di un tag chiamato Relation; esso ha 2 parametri: verb: indica il predicato verbale version: è un identificatore della relazione nel caso in cui ci esista più di una struttura di argomenti associata alla relazione verbale (Es: il verbo splice ) Ogni argomento della relazione è rappresentato dal tag Arg il quale ha i seguenti parametri: pos: rappresenta la posizione dell argomento all interno della relazione verbale. Solitamente nella posizione 0 vi è il soggetto della frase, invece nelle posizioni successive vengono elencati i complementi. info: contiene informazioni in linguaggio naturale riguardo a cosa è più probabile che quell argomento si riferisca. 110

111 Il tag Dictionary presente all interno degli argomenti indica quali sono i dizionari ai quali è possibile che appartenga una entità nominale contenuta da un argomento. Ogni argomento deve contenere tanti tag Dictionary per quanti sono i dizionari che possono contenere il termine che si spera di trovare nell argomento. Questo Tag presenta solo il parametro source che rappresenta il nome del dizionario al quale potrà appartenere un termine presente nell argomento. Nella figura 8 l argomento 0 presenta 2 tag Dictionary al fine di indicare al compilatore che nelle relazioni verbali di tipo encode, all interno di quell argomento bisogna cercare dei termini appartenenti ai dizionari dei geni o degli rna. L ordine in cui vengono elencati i dizionari definisce la priorità di questi durante il riconoscimento dei termini. Il compilatore delle relazioni verbali cercherà negli argomenti, prima i termini appartenenti al primo tag, poi ai successivi. Se all interno di un argomento non sono presenti termini appartenenti a nessuno dei dizionari la stringa dell argomento della relazione, dopo la compilazione, sarà il nome del primo dei dizionari elencati. Le relazioni verbali compilate vengono inserite sottoforma di tuple nel database relazionale Relazioni che deve esistere nella macchina in cui viene lanciata l applicazione. Nel paragrafo 6.4 è riportata la descrizione dettagliata dello schema del database. Nella cartella parametrispada sono presenti tre file che l utente deve modificare manualmente per settare i criteri di filtraggio delle istanze dei PAS durante la fase di trasformazione del database relazionale nel database deduttivo e i parametri di scoperta dei pattern frequenti. Il file PASpossibili.txt deve contenere lo stesso elenco di predicati verbali contenuto nel file relazioniutili.lst della cartella risorsemonty e ogni predicato verbale deve essere seguito da un parametro che indica al sistema se considerare o meno i PAS ai quali è associato quel predicato verbale durante la fase di trasformazione del database. La figura 9 riporta un esempio del file PASpossibili.txt. Figura

112 I predicati verbali seguiti dal parametro #y devono essere considerati durante la fase di generazione del database deduttivo, mentre quelli contrassegnati con #n no. L esempio mostra come escludere dall elaborazione i PAS con predicato verbale rcognize, transcribe e transform. Il file atomipossibili.xml deve contenere lo stesso elenco di template di PASBio presenti nel file pattern.xml della cartella risorsetf. La sintassi xml per la scrittura del file atomipossibili.xml mette a disposizione strumenti per indicare al sistema gli atomi che si riferiscono ai singoli ruoli da includere nel passo di scoperta dei pattern frequenti. La figura 10 mostra un esempio di parametri associati ad uno dei template. Figura 34 Tutti i template vengono rappresentati tramite il tag Relation. Esso ha un solo argomento che indica il predicato verbale associato al template. Tutti gli argomenti della struttura verbale devono essere rappresentati mediante il tag Arg. Esso ha un unico parametro che indica la posizione che l argomento occupa nella struttura. Con il tag Dictionary vengono indicati i 112

113 ruoli possibili per quell argomento. I ruoli associati ad ogni argomento devono essere gli stessi riportati nel file pattern.xml; Il tag Dictionary prevede l impostazione di due parametri. Il primo source, indica al sistema il nome del ruolo ovvero il dizionario di appartenenza dell entità biomedica che ricopre il ruolo. Il secondo parametro, use, indica al sistema se usare o meno quel ruolo. use = y indica che quando nel database relazionale è presente un argomento associato a quella struttura verbale e l argomento ricopre quel ruolo, per tale ruolo deve essere creato il corrispondente atomo nel database deduttivo; l atomo non deve essere creato quando use = n. Quando use = y è possibile associare al template un elenco di tag opzionali Exclude per indicare al sistema le singole entità biomediche che ricoprono un ruolo ammesso per le quali non devono essere creati gli atomi. Il tag Exclude ha un unico parametro, term che indica il termine ovvero l entitaà biomedica appartenente al dizionario espresso con source nel tag Dictionary. Al template deve essere associato un tag Exlude per ogni termine che non si vuole considerare nella elaborazione. L assenza di tag Exclude per un ruolo indica che tutti i termini del dizionario per quel ruolo sono validi. L esempio mostra la definizione del template al quale è associato il predicato verbale alter. Si evince che si vuole escludere dalla scoperta dei pattern le entità biomediche che ricoprono il ruolo di Organisms quando queste compaiono come primo argomento della relazione verbale; inoltre, sempre per il primo argomento della relazione si vogliono escludere le entità Chromosomal_locus_ quando questa ricopre il ruolo di Chromosomal_locus e CD44 quando questa ricopre il ruolo di HomoSapiensGene. Il file language.txt serve per impostare i parametri per l esecuzione dell algoritmo SPADA che normalmente vengono scritti manualmente all interno del file.lb. La descrizione dell impostazione di tali parametri è riportata nel paragrafo Input e Output del sistema L insieme dei documenti sul quale applicare l algoritmo di pattern discovery deve essere contenuto nella cartella Articoli e i file devono essere in formato txt. Se alcuni documenti sono contenuti in sottocartelle, verranno esclusi dall elaborazione. 113

114 All interno della cartella di lavoro deve esistere la sottocartella Spada che conterrà i file di output dell applicazione. Prima di lanciare l applicazione la cartella deve contenere solo il file gspada.exe. Ad elaborazione conclusa questa cartella conterrà il database deduttivo costituito dai tre file db, bk e lb e tutti i file di output di spada contenenti i risultati statistici richiesti. Nella cartella di lavoro, prima di lanciare l applicazione, devono esistere una sotto-cartella Listati nella quale la componente di normalizzazione dei documenti depositerà i file di listato contenente le operazioni di modifica eseguite sui documenti e una cartella Output nella quale la componente di estrazione delle relazioni verbali depositerà i file contenenti le strutture verbali estratte dai documenti e i listati delle operazioni di filtraggio sulle relazioni verbali effettuate. I file contenenti le relazioni verbali costituiscono l input per la componente di template filling che deposita le istanze delle strutture compilate sul database relazionale precedentemente creato Lanciare l applicazione La cartella di lavoro contiene il file PD.bat che si occupa di richiamare stepper.jar e di eseguire sequenza.bat da esso creato. stepper.jar si occupa di suddividere il dataset dei documenti in sottoinsiemi di 500 elementi (è possibile modificare il numero dei documenti contenuti nei sottoinsiemi settando il parametro nel file PD.bat) e per ogni sottoinsieme dispone l esecuzione del passo di normalizzazione, di estrazione delle relazioni verbali e di template filling; in fine in maniera automatica il sistema genera il database deduttivo0 ed esegue l algoritmo di pattern discovery. Per avviare la pipeline è sufficiente il doppio click su PD.bat anche se è preferibile digitare il comando PD nella consolle del sistema operativo al fine di visualizzare eventuali eccezioni lanciate dal sistema Il Database RELAZIONI Il database RELAZIONI è stato progettato e realizzato al fine di: memorizzare tutte le relazioni verbali estratte dai testi e compilate secondo le specifiche PasBIO Accedere alle informazioni elaborate per ottenere dei litterali che costituiranno una base di conoscenza iniziale di un programma Datalog che ne estrarrà nuova conoscenza utile. 114

115 Analisi dei requisiti Obbiettivo: Realizzazione di una base di dati relazionale per la memorizzazione di tutte le relazioni verbali estratte dal dataset selle pubblicazioni scientifiche inerenti alla sordità ereditaria non sindromica e per il ritrovamento delle stesse relazioni al fine di fornire input ad un programma Datalog per l estrazione di nuova conoscenza. Unità organizzative omogenee che utilizzeranno il sistema: Un programma che si occupa della compilazione delle relazioni verbali secondo i pattern forniti nell ambito del progetto PASBIO dovrà accedere al sistema per il popolamento della base di dati. Un programma Datalog che si occupa della estrazione di nuove informazioni utili utilizzerà la base di dati popolata come base di conoscenza iniziale. Attività supportate dal sistema: Inserimento, modifica e cancellazione delle informazioni relative agli articoli dai quali le relazioni verbali sono state estratte, dei predicati verbali delle relazioni, e degli argomenti delle relazioni. Presentazione delle relazioni verbali in forma adattata alle esigenze dei fruitori dei dati Specifica dei requisiti Dati di carattere generale Si vuole progettare una base di dati che sia di supporto alla memorizzazione di tutte le relazioni verbali estratte dal dataset selle pubblicazioni scientifiche inerenti alla sordità ereditaria non sindromica e al ritrovamento delle stesse relazioni al fine di fornire input ad un programma Datalog per l estrazione di nuova conoscenza. Dati relativi agli articoli Per ogni articolo si vuole memorizzare il nome. Esso è costituito da una stringa composta da una sequenza di caratteri alfanumerici che termina con.txt. Dati relativi ai verbi Si vuole memorizzare il predicato verbale all infinito delle relazioni ammesse dalle specifiche PASBio. 115

116 Dati relativi alle relazioni Per ogni relazione verbale si vogliono conservare informazioni relative all articolo dal quale la relazione deriva, al predicato verbale e di tutti gli argomenti che la compongono. Una relazione può essere composta da un minimo di un solo argomento ad un massimo di 5 argomenti. Un argomento da memorizzare sarà un termine appartenente ad uno dei dizionari se questo termine esiste all interno di uno degli argomenti della relazione grezza( in tal caso il termine più lungo di tutti i dizionari è composto da 115 caratteri) oppure un termine di default corrispondente al nome di un dizionario in caso contrario. Per ogni argomento si vuole anche tenere traccia della posizione che occupa all interno della relazione verbale e del dizionario di appartenenza del termine. Glossario dei termini TERMINI DESCRIZIONE SINONIMI LEGAME LOGICO ARTICOLO Nome del documento in formato testo contenente l abstract di una pubblicazione scientifica inerente alla sordità ereditatria non sindromica in lingua inglese Pubblicazione, Abstract Relazione VERBO RELAZIONE ARGOMENTO Predicato verbale di una frase all infinito Elenco di parti della frase che possono essere il predicato verbale, il soggetto o altri complementi Parte della frase che può essere il soggetto o un altro complemento. Può essere costituito da un termine appartenente ad un dizionario di dominio specifico o generico o può essere il nome di uno dei dizionari. Predicato verbale Relazione verbale Termine, nome del dizionario, complemento. Relazione Articolo, Verbo Relazione 116

117 NUM_RELAZIONE Contatore del numero di relazioni verbali aventi lo stesso predicato verbale all interno dello stesso articolo. PRESENZA Correlazione esistente tra un articolo ed una relazione verbale. In un articolo possono esssere presenti una o più relazioni verbali. Una relazione verbale può essere presente in un solo articolo. AZIONE Correlazione esistente tra un predicato verbale ed una relazione. Un predicato verbale può essere presente in una o più relazioni. Una relazione verbale può avere un solo predicato verbale. POSIZIONE Posizione di un argomento all interno dell elenco che compone una relazione verbale. Il primo elemento dell elenco è il predicato verbale. Le posizioni dell argomento vanno da 0 a 4 e partono dal secondo elemento dell elenco. TERMINE Costituisce l argomento di una relazione. Può essere un item di un dizionario o un nome di dizionario. DIZIONARIO Nome del dizionario di appartenenza di un termine. Tabella 1 Articolo, relazione, verbo. Articolo, relazione Verbo, relazione 117

118 Progettazione Progettazione concettuale La Figura 1 mostra il diagramma EER del database: Figura 11 Progettazione logica Trasformazione dello schema concettuale nel modello relazionale e normalizzazione Vengono sostituiti gli attributi multi valore con entità e correlazioni e gli attributi compositi con attributi atomici. La figura 2 mostra il diagramma ER per la progettazione concettuale del database relazionale. 118

119 Figura Traduzione dello schema concettuale in schema logico Entità ARTICOLO CREATE TABLE ARTICOLO (ID_ARTICOLO INT(10) AUTO_INCREMENT PRIMARY KEY, NOME CHAR(30)); Figura

120 Entità VERBO CREATE TABLE VERBO (ID_VERBO INT(10) AUTO_INCREMENT PRIMARY KEY, PREDICATO CHAR(30)); Figura 14 Entità RELAZIONE CREATE TABLE RELAZIONE ( ID_RELAZIONE INT(10) AUTO_INCREMENT PRIMARY KEY, ID_ARTICOLO INT(10), ID_VERBO INT(10), NUM_RELAZIONE INT(3), CONSTRAINT FKA FOREIGN KEY (ID_ARTICOLO) REFERENCES ARTICOLO(ID_ARTICOLO) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FKV FOREIGN KEY (ID_VERBO) REFERENCES VERBO(ID_VERBO) ON DELETE CASCADE ON UPDATE CASCADE); Figura

121 Entità ARGOMENTO CREATE TABLE ARGOMENTO ( ID_ARGOMENTO INT(10) AUTO_INCREMENT PRIMARY KEY, ID_RELAZIONE INT(10), POSIZIONE INT(2), TERMINE CHAR (120), DIZIONARIO CHAR (30), CONSTRAINT FKR FOREIGN KEY (ID_RELAZIONE) REFERENCES RELAZIONE(ID_RELAZIONE) ON DELETE CASCADE ON UPDATE CASCADE); Figura 16 Viste Logiche Al fine di facilitare la presentazione dei dati dal punto di vista delle relazioni vengono inserite all interno dello schema logico alcune viste. La vista T0_view serve per congiungere ogni relazione con i loro argomenti che si trovano alla posizione 0. CREATE OR REPLACE VIEW T0_VIEW( ID_RELAZIONE, ID_ARGOMENTO, TERMINE, 121

122 AS SELECT DIZIONARIO, POSIZIONE) RELAZIONE.ID_RELAZIONE, ARGOMENTO.ID_ARGOMENTO, ARGOMENTO.TERMINE, ARGOMENTO.DIZIONARIO, ARGOMENTO.POSIZIONE FROM RELAZIONE LEFT JOIN ARGOMENTO ON RELAZIONE.ID_RELAZIONE = ARGOMENTO.ID_RELAZIONE AND ARGOMENTO.POSIZIONE = 0; Figura 17 Nello stesso modo le viste T1_VIEW, T2_VIEW, T3_VIEW, T4_VIEW servono per congiungere servono per congiungere ogni relazione con i loro argomenti che si trovano rispettivamente nelle posizioni 1, 2, 3 e 4. La vista relazioni_view serve invece per visualizzare tutte le relazioni verbali congiunte con il nome dell articolo di appartenenza, il predicato verbale e tutti gli argomenti. 122

123 CREATE VIEW RELAZIONI_VIEW(ARTICOLO, VERBO, A0, D0, P0, A1, D1, P1, A2, D2, P2, A3, D3, P3, A4, D4, P4) AS SELECT FROM ARTICOLO.NOME, VERBO.PREDICATO, T0_VIEW.TERMINE, T0_VIEW.DIZIONARIO, T0_VIEW.POSIZIONE, T1_VIEW.TERMINE, T1_VIEW.DIZIONARIO, T1_VIEW.POSIZIONE, T2_VIEW.TERMINE, T2_VIEW.DIZIONARIO, T2_VIEW.POSIZIONE, T3_VIEW.TERMINE, T3_VIEW.DIZIONARIO, T3_VIEW.POSIZIONE, T4_VIEW.TERMINE, T4_VIEW.DIZIONARIO, T4_VIEW.POSIZIONE ARTICOLO JOIN RELAZIONE ON RELAZIONE.ID_ARTICOLO = ARTICOLO.ID_ARTICOLO JOIN VERBO ON RELAZIONE.ID_VERBO = VERBO.ID_VERBO JOIN T0_VIEW ON RELAZIONE.ID_RELAZIONE = T0_VIEW.ID_RELAZIONE 123

124 JOIN T1_VIEW ON RELAZIONE.ID_RELAZIONE = T1_VIEW.ID_RELAZIONE JOIN T2_VIEW ON RELAZIONE.ID_RELAZIONE = T2_VIEW.ID_RELAZIONE JOIN T3_VIEW ON RELAZIONE.ID_RELAZIONE = T3_VIEW.ID_RELAZIONE JOIN T4_VIEW ON RELAZIONE.ID_RELAZIONE = T4_VIEW.ID_RELAZIONE; Figura

125 6.4 Indice delle figure e delle Tabelle Figura 1: Cartella di lavoro del sistema di NER per TPC; Figura 2: Esempio di dizionario dei sinonimi; Figura 3 : Esempio del file specific.txt; Figura 4: Cartella di lavoro del sistema di NER per SSE; Figura 5: Esempio del file 1_main.jape; Figura 6: Cartella di lavoro sistema di Pattern Discovery; Figura 7: Esempio del file relazioniutili.lst; Figura 8: Esempio del file pattern.xml; Figura 9: Esempio del file PASpossibili.xml; Figura 10: Esempio del file atomi Passibili.xml; Tabella 1: Glossario dei termini; Figura 11: Diagramma EER database Relazioni; Figura 12: Diagramma ER database Relazioni; Figura 13: Entità Articolo; Figura 14: Entità Verbo; Figura 15: Entità Relazione; Figura 16: Entità Argomento; Figura 17: Vista T0_VIEW; Figura 18: Vista Relazioni_view. 125

126 APPENDICE A GATE: General Architecture for Text Engineering Per la realizzazione dei tre moduli di pre-elaborazione sviluppati nell ambito di questa tesi ha ricoperto un ruolo fondamentale l utilizzo delle componenti messe a disposizione da GATE. Infatti tutte le applicazioni svolgono delle elaborazioni basate su informazioni estratte dai testi, sotto forma di annotazioni, tramite l utilizzo di strumenti messi a disposizione da librerie prese da GATE e importate nelle applicazioni. GATE è un architettura, un framework ed un ambiente di sviluppo per LE (Language Engineering). Come architettura, definisce l organizzazione di un sistema di LE e l assegnazione delle responsabilità ai diversi componenti, ed assicura che l interazione tra i componenti soddisfi i requisiti di sistema. Come framework, fornisce un design riutilizzabile per un sistema software di LE ed un set di blocchi per la creazione di software prefabbricati che il language engineer può usare, estendere e personalizzare per le sue specifiche necessità. Come ambiente di sviluppo, aiuta i suoi utenti a minimizzare il tempo speso a costruire nuovi sistemi di LE o a modificare quelli esistenti, aiutando lo sviluppo completo e fornendo un meccanismo di debug per i nuovi moduli. Poiché GATE possiede un modello basato sui componenti, permette un facile accoppiamento e disaccoppiamento dei processori, per mezzo di confronti facilitati di configurazioni alternative del sistema o di implementazioni differenti dello stesso modulo (es. diversi parser (analizzatori sintattici)). Le componenti di GATE sono di tre tipi separando di fatto i dati, algoritmi e GUI: LanguageResources (LRs) rappresentano le entità come lessici, corpora e ontologie; ProcessingResources(PRs) rappresentano le entità che sono fondamentalmente algoritmi, come i parser; VisualResources (VRs) rappresentano la visualizzazione e i componenti di editing che partecipano nelle GUI. Queste risorse possono essere collocate nella macchina dell utente o in remoto e tutte possono essere estese dall utente senza modificare GATE stesso. 126

127 Uno dei vantaggi principali del separare gli algoritmi dai dati di cui si servono è che i due possono essere sviluppati indipendentemente dai language engineers con differenti abilità. In modo collettivo, tutte le risorse sono conosciute come CREOLE (a Collection of REusable Objects for Language Engineering). GATE supporta una varietà di formati inclusi XML, RTF, HTML, SGML, e testi semplici. In ogni caso, quando un documento viene elaborato in GATE, il formato è analizzato e convertito in un singolo modello unificato denominato annotazion. Le annotazioni associate a ciascun documento sono una struttura centrale di GATE, poiché esse mettono in codice il linguaggio dei dati letti e producono per ognuno un modulo di processo. GATE fornisce anche un meccanismo di immagazzinamento persistente delle language resources: uno usa i database relazionali (per esempio Oracle), mentre gli altri due sono basati sui file, usando la serializzazione Java o un formato interno basato su XML. A.1 Processing Resurces: ANNIE GATE fu originariamente sviluppato nel contesto dell Information Extraction, e diversi sistemi di IE sono stati creati usando GATE sfruttando le componenti con cui il framework viene distribuito. GATE è distribuito con un sistema IE chiamato ANNIE, sistema A Nearly-New IE (sviluppato da Hamish Cunningham, Valentin Tablan, Diana Maynard, kalina Bontcheva, MarinDimitrov e altri) che lavora su algoritmi a stati finiti e linguaggio JAPE. Le componenti di ANNIE formano una pipeline, come mostrato in Figura 1: 127

128 Figura 1 Segue una breve descrizione delle componenti che formano questa pipeline: Tokenizer Il Tokenizer divide il testo in semplici token come numeri, segni di punteggiatura e parole di differente tipo. Per esempio, distingue tra parole con caratteri in maiuscolo e minuscolo e tra certi tipi di punteggiatura. Le regole che il sistema deve seguire per effettuare la tokenizzazione dei testi sono elencate in un file.rule che è modificabile, sicché il tokenizer è parametrizzabile. Tokenizer Rules Una regola contenuta nel file.rule di cui sopra ha una parte sinistra (LHS) e una parte destra (RHS). L LHS è una espressione regolare che è stata confrontata con l input, l RHS impartisce istruzioni sul nome, e sulle caratteristiche che deve avere l annotazione che verrà associata al token riconosciuto dall espressione regolare. L LHS è separata dall RHS da >. 128

129 Per esempio, la Figura 2 mostra le regole di default che usa ANNIE per annotare le parole che iniziano con la lettera minuscola, quelle intermente scritte con caratteri maiuscoli e quelle interamente scritte con caratteri minuscoli. Figura 2 Per default ANNIE può generare a partire dai singoli Token 2 tipi di annotazioni: Token Il tipo di annotazione Token viene generata per ogni sequenza di caratteri alfanumerici. Il tipo Token ha tra le caratteristiche l attributo kind che può assumere i seguenti valori: o Word Una parola è definita come un insieme contiguo di lettere maiuscole o minuscole. Una parola ha anche l attributo orth, per il quale sono definiti quattro valori : upperinitial : la lettera iniziale è maiuscola le altre sono minuscole allcaps : tutte le lettere sono maiuscole lowercase : tutte le lettere sono minuscole mixedcaps : un misto tra lettere maiuscole e minuscole non incluse nelle categorie precedenti. 129

Una proteina nella rete: Introduzione alla bioinformatica

Una proteina nella rete: Introduzione alla bioinformatica Una proteina nella rete: Introduzione alla bioinformatica L era genomica ha assistito ad una crescita esponenziale delle informazioni biologiche rese disponibili dai progressi nel campo della biologia

Dettagli

Informatica per le discipline umanistiche 2 lezione 12

Informatica per le discipline umanistiche 2 lezione 12 Informatica per le discipline umanistiche 2 lezione 12 Nella lezione precedente: In realtà non tutto il data mining è dettato dagli interessi economici (commercial) data mining Abbiamo visto risvolti commerciali

Dettagli

Information Extraction: il rapporto GATE - Named Entity Recognition

Information Extraction: il rapporto GATE - Named Entity Recognition Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Sede di Modena Corso di Laurea in Ingegneria Informatica Nuovo Ordinamento Information Extraction: il rapporto GATE - Named Entity

Dettagli

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testuali

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testuali Text mining ed analisi di dati codificati in linguaggio naturale Analisi esplorative di dati testuali Il text mining: una definizione Data mining per dati destrutturati ovvero documenti codificati in linguaggio

Dettagli

Basi di dati. Basi di dati = database. Basi di dati

Basi di dati. Basi di dati = database. Basi di dati Basi di dati Da leggere: Cap. 6 Sawyer, Williams (testo A) Basi di dati = database Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi -> oggi anche

Dettagli

RICERCA DELL INFORMAZIONE

RICERCA DELL INFORMAZIONE RICERCA DELL INFORMAZIONE DOCUMENTO documento (risorsa informativa) = supporto + contenuto analogico o digitale locale o remoto (accessibile in rete) testuale, grafico, multimediale DOCUMENTO risorsa continuativa

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

2.1 Introduzione ai linguaggi di marcatura

2.1 Introduzione ai linguaggi di marcatura Fondamenti di Informatica Sistemi di Elaborazione delle Informazioni Informatica Applicata 2.1 Introduzione ai linguaggi di marcatura Antonella Poggi Anno Accademico 2012-2013 DIPARTIMENTO DI SCIENZE DOCUMENTARIE

Dettagli

4. Requisiti del Software

4. Requisiti del Software 4. Requisiti del Software Cosa? Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 4. Requisiti del Software 1 / 35 Sommario 1 Generalità 2 Categorizzazione

Dettagli

GLOSSARIO DI ARCHITETTURA DELL INFORMAZIONE

GLOSSARIO DI ARCHITETTURA DELL INFORMAZIONE GLOSSARIO DI ARCHITETTURA DELL INFORMAZIONE di K A T H A G E D O R N, A R G U S A S S O C I A T E S MARZO 2 0 0 0 traduzione di: BARBARA WIEL MARIN DICEMBRE 2009 1 GLOSSARIO DI ARCHITETTURA DELL INFORMAZIONE

Dettagli

Progetto ASTREA WP2: Sistema informativo per il monitoraggio del sistema giudiziario

Progetto ASTREA WP2: Sistema informativo per il monitoraggio del sistema giudiziario Progetto ASTREA WP2: Sistema informativo per il monitoraggio del sistema giudiziario Nell ambito di questa attività è in fase di realizzazione un applicativo che metterà a disposizione dei policy makers,

Dettagli

I Modelli della Ricerca Operativa

I Modelli della Ricerca Operativa Capitolo 1 I Modelli della Ricerca Operativa 1.1 L approccio modellistico Il termine modello è di solito usato per indicare una costruzione artificiale realizzata per evidenziare proprietà specifiche di

Dettagli

Introduzione alla Linguistica Computazionale

Introduzione alla Linguistica Computazionale Introduzione alla Linguistica Computazionale Salvatore Sorce Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Ludici Adattati da Alessandro Lenci Dipartimento di Linguistica T. Bolelli

Dettagli

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione Text mining ed analisi di dati codificati in linguaggio naturale Analisi esplorative di dati testualilezione 2 Le principali tecniche di analisi testuale Facendo riferimento alle tecniche di data mining,

Dettagli

Data Mining: Applicazioni

Data Mining: Applicazioni Sistemi Informativi Universitá degli Studi di Milano Facoltá di Scienze Matematiche, Fisiche e Naturali Dipartimento di Tecnologie dell Informazione 1 Giugno 2007 Data Mining Perché il Data Mining Il Data

Dettagli

Laboratorio di Metodologie e Tecnologie Genetiche ESERCITAZIONE DI BIOINFORMATICA

Laboratorio di Metodologie e Tecnologie Genetiche ESERCITAZIONE DI BIOINFORMATICA Laboratorio di Metodologie e Tecnologie Genetiche ESERCITAZIONE DI BIOINFORMATICA Bioinformatica - Scienza interdisciplinare coinvolgente la biologia, l informatica, la matematica e la statistica per l

Dettagli

Automatic Ontology-Based Knowledge Extraction from Web Documents

Automatic Ontology-Based Knowledge Extraction from Web Documents Automatic Ontology-Based Knowledge Extraction from Web Documents 5 gennaio 2009 1 Introduzione Al ne di ottenere un eettivo WEB semantico bisogna essere in grado di costruire servizi che consentano l'estrazione

Dettagli

Introduzione alla Business Intelligence. E-mail: infobusiness@zucchetti.it

Introduzione alla Business Intelligence. E-mail: infobusiness@zucchetti.it Introduzione alla Business Intelligence E-mail: infobusiness@zucchetti.it Introduzione alla Business Intelligence Introduzione Definizione di Business Intelligence: insieme di processi per raccogliere

Dettagli

Database e Microsoft Access. Ing. Antonio Guadagno

Database e Microsoft Access. Ing. Antonio Guadagno Database e Microsoft Access Ing. Antonio Guadagno Database e Microsoft Access Un Database non è altro che un insieme di contenitori e di strumenti informatici che ci permette di gestire grossi quantitativi

Dettagli

Indicizzazione terza parte e modello booleano

Indicizzazione terza parte e modello booleano Reperimento dell informazione (IR) - aa 2014-2015 Indicizzazione terza parte e modello booleano Gruppo di ricerca su Sistemi di Gestione delle Informazioni (IMS) Dipartimento di Ingegneria dell Informazione

Dettagli

Metodi e Modelli per le Decisioni

Metodi e Modelli per le Decisioni Metodi e Modelli per le Decisioni Corso di Laurea in Informatica e Corso di Laurea in Matematica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Giovedì 13.30-15.30 Venerdì 15.30-17.30 Ricevimento:

Dettagli

Capra, Lanzavechia, Rosti 1

Capra, Lanzavechia, Rosti 1 Laboratorio di Abilità Informatiche http://dcssi.istm.cnr.it/lanzavecchia/do cumenti/lodi.htm Salvatore Lanzavecchia Dipartimento di Chimica Strutturale Via G. Venezian 21 20133 Milano E-mail: labinf01@unimi.it

Dettagli

PDF created with pdffactory trial version www.pdffactory.com. Il processo di KDD

PDF created with pdffactory trial version www.pdffactory.com. Il processo di KDD Il processo di KDD Introduzione Crescita notevole degli strumenti e delle tecniche per generare e raccogliere dati (introduzione codici a barre, transazioni economiche tramite carta di credito, dati da

Dettagli

Sistemi Informativi Geografici e Basi di Dati Spaziali. Corso di Basi di Dati Spaziali. Sistemi Informativi Geografici (GIS) Sistema Informativo

Sistemi Informativi Geografici e Basi di Dati Spaziali. Corso di Basi di Dati Spaziali. Sistemi Informativi Geografici (GIS) Sistema Informativo Corso di Basi di Dati Spaziali Introduzione Sistemi Informativi Geografici e Basi di Dati Spaziali Qual è il legame tra Sistemi Informativi Geografici/Territoriali (GIS) e Basi di Dati Spaziali? Angelo

Dettagli

Introduzione alla Business Intelligence

Introduzione alla Business Intelligence SOMMARIO 1. DEFINIZIONE DI BUSINESS INTELLIGENCE...3 2. FINALITA DELLA BUSINESS INTELLIGENCE...4 3. DESTINATARI DELLA BUSINESS INTELLIGENCE...5 4. GLOSSARIO...7 BIM 3.1 Introduzione alla Pag. 2/ 9 1.DEFINIZIONE

Dettagli

Questo documento riporta informazioni generali sul progetto europeo QALL-ME. Il pubblico al quale si rivolge è ampio e generico e il suo scopo

Questo documento riporta informazioni generali sul progetto europeo QALL-ME. Il pubblico al quale si rivolge è ampio e generico e il suo scopo QALL-ME EXECUTIVE SUMMARY Autore: Bernardo Magnini Presso: ITC-irst, Trento, Italia Introduzione Questo documento riporta informazioni generali sul progetto europeo QALL-ME. Il pubblico al quale si rivolge

Dettagli

Carpire il segreto della vita con l informatica Giosuè Lo Bosco Dipartimento di Matematica e Informatica, Università di Palermo, ITALY.

Carpire il segreto della vita con l informatica Giosuè Lo Bosco Dipartimento di Matematica e Informatica, Università di Palermo, ITALY. Carpire il segreto della vita con l informatica Giosuè Lo Bosco Dipartimento di Matematica e Informatica, Università di Palermo, ITALY. Lezioni Lincee Palermo, 26 Febbraio 2015 Alla base della vita degli

Dettagli

Ingegneria dei Requisiti

Ingegneria dei Requisiti Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Ingegneria dei Requisiti E. TINELLI Contenuti I requisiti del software Documento dei requisiti I processi

Dettagli

Prime sperimentazioni d'indicizzazione [semi]automatica alla BNCF

Prime sperimentazioni d'indicizzazione [semi]automatica alla BNCF Prime sperimentazioni d'indicizzazione [semi]automatica alla BNCF Maria Grazia Pepe - Elisabetta Viti (Biblioteca nazionale centrale di Firenze) 6. Incontro ISKO Italia Firenze 20 maggio 2013 SOMMARIO

Dettagli

PIANI DI STUDIO D'ISTITUTO ISTITUTO COMPRENSIVO BASSA ANAUNIA SCUOLA MEDIA DI DENNO A.S. 2012-2013 ITALIANO_CLASSE SECONDA

PIANI DI STUDIO D'ISTITUTO ISTITUTO COMPRENSIVO BASSA ANAUNIA SCUOLA MEDIA DI DENNO A.S. 2012-2013 ITALIANO_CLASSE SECONDA PIANI DI STUDIO D'ISTITUTO ISTITUTO COMPRENSIVO BASSA ANAUNIA SCUOLA MEDIA DI DENNO A.S. 2012-2013 ITALIANO_CLASSE SECONDA PSI_ITALIANO QUARTO BIENNIO_CLASSE SECONDA COMPETENZA ABILITA CONOSCENZE Competenza

Dettagli

KNOWLEDGE MANAGEMENT. Knowledge Management. Knowledge: : cos è. Dispense del corso di Gestione della Conoscenza d Impresa

KNOWLEDGE MANAGEMENT. Knowledge Management. Knowledge: : cos è. Dispense del corso di Gestione della Conoscenza d Impresa KNOWLEDGE MANAGEMENT Pasquale Lops Giovanni Semeraro Dispense del corso di Gestione della Conoscenza d Impresa 1/23 Knowledge Management La complessità crescente della società, l esubero di informazioni

Dettagli

La gestione del documento

La gestione del documento Operatore giuridico d impresa Informatica Giuridica A.A 2002/2003 II Semestre La gestione del documento prof. Monica Palmirani Il documento A differenza del dato il documento è solitamente un oggetto non

Dettagli

Breve descrizione del prodotto

Breve descrizione del prodotto Breve descrizione del prodotto 1. Il software AquaBrowser Library...2 1.1 Le funzioni di Search Discover Refine...3 1.2 Search: la funzione di ricerca e di presentazione dei risultati...3 1.2.1 La configurazione

Dettagli

Bioinformatica (1) Introduzione. Dott. Alessandro Laganà

Bioinformatica (1) Introduzione. Dott. Alessandro Laganà Bioinformatica (1) Introduzione Dott. Alessandro Laganà Dott. Alessandro Laganà Martedi 15.30 16.30 Studio Assegnisti - 1 Piano (Davanti biblioteca) Dipartimento di Matematica e Informatica (Città Universitaria)

Dettagli

Esistono Open Tools di Microsoft per migliorare le attività di ricerca scientifica

Esistono Open Tools di Microsoft per migliorare le attività di ricerca scientifica CL3 - Biotecnologie Esistono Open Tools di Microsoft per migliorare le attività di ricerca scientifica Le informazioni necessarie al progresso scientifico sono spesso difficili da trovare, sommerse nelle

Dettagli

Introduzione all Information Retrieval

Introduzione all Information Retrieval Introduzione all Information Retrieval Argomenti della lezione Definizione di Information Retrieval. Information Retrieval vs Data Retrieval. Indicizzazione di collezioni e ricerca. Modelli per Information

Dettagli

Sistemi Informativi Multimediali 1 - Introduzione

Sistemi Informativi Multimediali 1 - Introduzione Che cos è un sistema informativo multimediale? Sistemi Informativi li 1 - Introduzione Augusto Celentano Università Ca Foscari di Venezia Un sistema informativo multimediale (MMDBMS) è un framework che

Dettagli

Pubblicazione di Linked Data in e-commerce: Progettazione e Sperimentazione (Riassunto)

Pubblicazione di Linked Data in e-commerce: Progettazione e Sperimentazione (Riassunto) Universitá degli Studi di Milano Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea in Informatica Pubblicazione di Linked Data in e-commerce: Progettazione e Sperimentazione

Dettagli

Informatica e biotecnologie I parte

Informatica e biotecnologie I parte Informatica e biotecnologie I parte Banche dati biologiche Bioinformatica La Bioinformatica è una disciplina che affronta con metodiche proprie delle Scienze dell'informazione problemi propri della Biologia.

Dettagli

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

LABORATORIO. 2 Lezioni su Basi di Dati Contatti: PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni R.M. Capocelli Laboratorio

Dettagli

ITALIANO - CLASSE PRIMA

ITALIANO - CLASSE PRIMA ITALIANO - CLASSE PRIMA L alunno partecipa a scambi comunicativi con compagni e docenti (conversazione) attraverso messaggi semplici, chiari e pertinenti. Comprende semplici testi di intrattenimento e

Dettagli

Rappresentazione della Conoscenza. Lezione 10. Rappresentazione della conoscenza, D. Nardi, 2004, Lezione 10 0

Rappresentazione della Conoscenza. Lezione 10. Rappresentazione della conoscenza, D. Nardi, 2004, Lezione 10 0 Rappresentazione della Conoscenza Lezione 10 Rappresentazione della conoscenza, D. Nardi, 2004, Lezione 10 0 Sistemi ed applicazioni Sistemi di rappresentazione della conoscenza basati su logiche descrittive.

Dettagli

DATA MINING E DATA WAREHOUSE

DATA MINING E DATA WAREHOUSE Reti e sistemi informativi DATA MINING E DATA WAREHOUSE Marco Gottardo FONTI Wikipedia Cineca Università di Udine, Dipartimento di fisica, il data mining scientifico thepcweb.com DATA MINING 1/2 Il Data

Dettagli

SCUOLA PRIMARIA CLASSE I

SCUOLA PRIMARIA CLASSE I SCUOLA PRIMARIA CLASSE I ITALIANO INDICATORI OBIETTIVI DI APPRENDIMENTO STANDARD PER LA VALUTAZIONE DELLE COMPETENZE Ascoltare e comprendere Leggere e comprendere Comunicare oralmente Mantenere l attenzione

Dettagli

Code Architects S.r.l. SWOP Semantic Web-service Oriented Platform B2SO201

Code Architects S.r.l. SWOP Semantic Web-service Oriented Platform B2SO201 UNIONE EUROPEA FONDO EUROPEO DI SVILUPPO REGIONALE. REGIONE PUGLIA AREA POLITICHE PER LO SVILUPPO IL LAVORO E L INNOVAZIONE Modello M14 Allegati RTA POR PUGLIA 2007-2013 - Asse I Linea 1.1 Azione 1.1.2

Dettagli

SenTaClAus - Sentiment Tagging & Clustering Analysis on web & social contents

SenTaClAus - Sentiment Tagging & Clustering Analysis on web & social contents Via Marche 10 56123 Pisa Phone +39.050.552574 Fax +39.1782239361 info@netseven.it - www.netseven.it P.IVA 01577590506 REGIONE TOSCANA POR CReO FESR 2007 2013 LINEA D INTERVENTO 1.5.a - 1.6 BANDO UNICO

Dettagli

ULTRA Supporto Tecnico Investigativo

ULTRA Supporto Tecnico Investigativo ULTRA Supporto Tecnico Investigativo Introduzione L avanzamento delle tecnologie di telecomunicazione, le nuove tecniche investigative, la disponibilità di sempre nuovi mezzi per la raccolta delle informazioni

Dettagli

Introduzione alla codifica XML per i testi umanistici

Introduzione alla codifica XML per i testi umanistici Introduzione alla codifica XML per i testi umanistici Daniele Silvi, Domenico Fiormonte, Fabio Ciotti fiormont@uniroma3.it - silvi@lettere.uniroma2.it - ciotti@lettere.uniroma2.it 1 La digitalizzazione

Dettagli

Laboratorio Matematico Informatico 2

Laboratorio Matematico Informatico 2 Laboratorio Matematico Informatico 2 (Matematica specialistica) A.A. 2006/07 Pierluigi Amodio Dipartimento di Matematica Università di Bari Laboratorio Matematico Informatico 2 p. 1/1 Informazioni Orario

Dettagli

Relazione Pinakes3 Analisi modello di business (BOZZA) di Valeriano Sandrucci 08/09/07

Relazione Pinakes3 Analisi modello di business (BOZZA) di Valeriano Sandrucci 08/09/07 Relazione Pinakes3 Analisi modello di business (BOZZA) di Valeriano Sandrucci 08/09/07 1. Introduzione...3 1.2. Application vs Tool... 3 2. Componenti logiche di un modello... 6 3. Ontologie e Semantic

Dettagli

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test Software e difetti Il software con difetti è un grande problema I difetti nel software sono comuni Come sappiamo che il software ha qualche difetto? Conosciamo tramite qualcosa, che non è il codice, cosa

Dettagli

AVVISO n. 09/2012: Procedura comparativa per il conferimento di due incarichi di collaborazione coordinata e continuativa per il profilo junior

AVVISO n. 09/2012: Procedura comparativa per il conferimento di due incarichi di collaborazione coordinata e continuativa per il profilo junior AVVISO n. 09/2012: Procedura comparativa per il conferimento di due incarichi di collaborazione coordinata e continuativa per il profilo junior di Analista programmatore per lo sviluppo di software per

Dettagli

Modellazione di sistema

Modellazione di sistema Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Modellazione di sistema E. TINELLI Contenuti Approcci di analisi Linguaggi di specifica Modelli di

Dettagli

MICROSOFT ACCESS. Fabrizio Barani 1

MICROSOFT ACCESS. Fabrizio Barani 1 MICROSOFT ACCESS Premessa ACCESS è un programma di gestione di banche dati, consente la creazione e modifica dei contenitori di informazioni di un database (tabelle), l inserimento di dati anche mediante

Dettagli

ACRL Association of College and Research Libraries

ACRL Association of College and Research Libraries ACRL Association of College and Research Libraries Standard delle competenze per il possesso dell informazione (information literacy) nell educazione superiore Standard, indicatori di performance, obiettivi

Dettagli

Le Basi di dati: generalità. Unità di Apprendimento A1 1

Le Basi di dati: generalità. Unità di Apprendimento A1 1 Le Basi di dati: generalità Unità di Apprendimento A1 1 1 Cosa è una base di dati In ogni modello di organizzazione della vita dell uomo vengono trattate informazioni Una volta individuate e raccolte devono

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Informatica per le discipline umanistiche 2 lezione 15

Informatica per le discipline umanistiche 2 lezione 15 Informatica per le discipline umanistiche 2 lezione 15 Nella lezione precedente: In realtà non tutto il data mining è dettato dagli interessi economici (commercial) data mining Abbiamo visto risvolti commerciali

Dettagli

L indicizzazione per soggetto in SBN

L indicizzazione per soggetto in SBN L indicizzazione per soggetto in SBN Maria Lucia Di Geso, ICCU Introduzione Nel corso degli ultimi dieci anni il Servizio bibliotecario nazionale (SBN) si è venuto configurando come la più grande rete

Dettagli

Linguistica Computazionale. Tokenizzazione

Linguistica Computazionale. Tokenizzazione Linguistica Computazionale Tokenizzazione Sai Tokenizzare (~contare : )) iniziamo giocando poi lavoriamo Quanti token (~parole) nella frase C era una volta un pezzo di legno. Sai Tokenizzare (~contare

Dettagli

CORSO DI LAUREA IN INFERMIERISTICA

CORSO DI LAUREA IN INFERMIERISTICA CORSO DI LAUREA IN INFERMIERISTICA LINEE GUIDA PER LA PREPARAZIONE DELLA TESI DI LAUREA OBIETTIVI E SIGNIFICATO La tesi di Laurea è parte integrante e conclusiva del percorso formativo dello studente.

Dettagli

Materiale didattico. Laboratorio di Informatica a.a. 2007-08. I) Introduzione all Informatica. Definizione di Informatica. Definizione di Informatica

Materiale didattico. Laboratorio di Informatica a.a. 2007-08. I) Introduzione all Informatica. Definizione di Informatica. Definizione di Informatica Corso di Laurea Triennale in Storia, Scienze e Tecniche dell Industria Culturale sede di Brindisi Laboratorio di Informatica a.a. 2007-08 Materiale didattico Testo adottato D.P. Curtin, K. Foley, K. Suen,

Dettagli

LINEE GUIDA PER LA PREPARAZIONE DELLA TESI DI LAUREA

LINEE GUIDA PER LA PREPARAZIONE DELLA TESI DI LAUREA LINEE GUIDA PER LA PREPARAZIONE DELLA TESI DI LAUREA OBIETTIVI E SIGNIFICATO La preparazione della tesi di Laurea è un importante opportunità attraverso cui lo studente può esprimere le proprie capacità

Dettagli

Cultura Tecnologica di Progetto

Cultura Tecnologica di Progetto Cultura Tecnologica di Progetto Politecnico di Milano Facoltà di Disegno Industriale - DATABASE - A.A. 2003-2004 2004 DataBase DB e DataBase Management System DBMS - I database sono archivi che costituiscono

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

ITALIANO: competenza 1 - TERZO BIENNIO. classe V scuola primaria e classe I scuola secondaria COMPETENZE ABILITA CONOSCENZE

ITALIANO: competenza 1 - TERZO BIENNIO. classe V scuola primaria e classe I scuola secondaria COMPETENZE ABILITA CONOSCENZE ITALIANO: competenza 1 - TERZO BIENNIO classe V scuola primaria e classe I scuola secondaria COMPETENZE ABILITA CONOSCENZE Interagire e comunicare verbalmente in contesti di diversa natura Quando ascolta,

Dettagli

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A. 2008-2009. Class Discovery E.

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A. 2008-2009. Class Discovery E. Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Class Discovery E. TINELLI Contenuti Classi di analisi: definizione ed esempi Tecniche per la definizione

Dettagli

Informatica per la Comunicazione/ Verdicchio/ 24/09/2014/ Domande / Matricola Cognome Nome

Informatica per la Comunicazione/ Verdicchio/ 24/09/2014/ Domande / Matricola Cognome Nome Informatica per la Comunicazione/ Verdicchio/ 24/09/2014/ Domande / Matricola Cognome Nome 1) In che senso i brani di Bach by Design sono originali? a) Hanno uno stile musicale nuovo b) Hanno una sequenza

Dettagli

SISTEMI INFORMATIVI AZIENDALI

SISTEMI INFORMATIVI AZIENDALI SISTEMI INFORMATIVI AZIENDALI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: Alla fine di ogni lezione Modalità esame: scritto 1 Data Mining. Introduzione La crescente popolarità

Dettagli

Attenzione! il valore della Rimodulazione è superiore alla cifra di Negoziazione

Attenzione! il valore della Rimodulazione è superiore alla cifra di Negoziazione Riepilogo Dipartimento ICT Dipartimento ICT nel 2005 diretta nel terzi fondi diretta Reti in Tecnologia Wireless 434.890 79.788 712.457 94.953 578.280 351.500 94.000 Internet di prossima generazione 639.484

Dettagli

RAPPRESENTAZIONE E E GESTIONE DEL CORE KNOWLEDGE

RAPPRESENTAZIONE E E GESTIONE DEL CORE KNOWLEDGE KNOWLEDGE MANAGEMENT Seminario Tematico Università di Milano-Bicocca RAPPRESENTAZIONE E E GESTIONE DEL CORE KNOWLEDGE Stefania Bandini Dipartimento di Informatica, Sistemistica e Comunicazione Università

Dettagli

della scuola secondaria di primo grado Non ci sono venti favorevoli per chi non sa dove andare Seneca

della scuola secondaria di primo grado Non ci sono venti favorevoli per chi non sa dove andare Seneca Istituto Comprensivo di Mozzate Viale Libertà, 3 22076 Mozzate (CO) tel. 0331 831491- fax 0331 262484 codice meccanografico COIC83400P c.f. 80017540131 email: COIC83400P@istruzione.it - info@comprensivomozzate.it

Dettagli

MACHINE LEARNING e DATA MINING Introduzione. a.a.2015/16 Jessica Rosati jessica.rosati@poliba.it

MACHINE LEARNING e DATA MINING Introduzione. a.a.2015/16 Jessica Rosati jessica.rosati@poliba.it MACHINE LEARNING e DATA MINING Introduzione a.a.2015/16 Jessica Rosati jessica.rosati@poliba.it Apprendimento Automatico(i) Branca dell AI che si occupa di realizzare dispositivi artificiali capaci di

Dettagli

SISTEMI INFORMATIVI AZIENDALI

SISTEMI INFORMATIVI AZIENDALI SISTEMI INFORMATIVI AZIENDALI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: Alla fine di ogni lezione Modalità esame: scritto 1 Sistemi informazionali La crescente diffusione dei

Dettagli

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

Intelligenza Artificiale

Intelligenza Artificiale Intelligenza Artificiale Anno accademico 2008-2009 Information Retrieval: Text Categorization Una definizione formale Sia D il dominio dei documenti Sia C = {c 1,,c C } un insieme di categorie predefinite

Dettagli

BIOLOGA e BIOLOGO MOLECOLARE

BIOLOGA e BIOLOGO MOLECOLARE Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 BIOLOGA e BIOLOGO MOLECOLARE Aggiornato il 6 luglio 2009 1. CARTA D IDENTITÀ... 2 2. CHE COSA FA... 4 3. DOVE LAVORA...

Dettagli

Data Mining e Analisi dei Dati

Data Mining e Analisi dei Dati e Analisi dei Dati Rosaria Lombardo Dipartimento di Economia, Seconda Università di Napoli La scienza che estrae utili informazioni da grandi databases è conosciuta come E una disciplina nuova che interseca

Dettagli

Tecniche avanzate di sintesi di algoritmi: Programmazione dinamica Algoritmi greedy

Tecniche avanzate di sintesi di algoritmi: Programmazione dinamica Algoritmi greedy Tecniche avanzate di sintesi di algoritmi: Programmazione dinamica Algoritmi greedy Dr Maria Federico Programmazione dinamica Solitamente usata per risolvere problemi di ottimizzazione il problema ammette

Dettagli

Predizione della struttura terziaria

Predizione della struttura terziaria Predizione della struttura terziaria Metodi di predizione La predizione della struttura tridimensionale è di gran lunga la predizione più complessa che si possa fare su una proteina. Esistono 3 metodi

Dettagli

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

5. Requisiti del Software II

5. Requisiti del Software II 5. Requisiti del Software II Come scoprire cosa? Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 5. Requisiti del Software II 1 / 42 Sommario 1 Generalità

Dettagli

Tecniche di DM: Link analysis e Association discovery

Tecniche di DM: Link analysis e Association discovery Tecniche di DM: Link analysis e Association discovery Vincenzo Antonio Manganaro vincenzomang@virgilio.it, www.statistica.too.it Indice 1 Architettura di un generico algoritmo di DM. 2 2 Regole di associazione:

Dettagli

Laboratorio sulla scrittura di sintesi nella scuola primaria. Bolzano 2 26 marzo 2015 Paola Iannacci

Laboratorio sulla scrittura di sintesi nella scuola primaria. Bolzano 2 26 marzo 2015 Paola Iannacci Laboratorio sulla scrittura di sintesi nella scuola primaria Bolzano 2 26 marzo 2015 Paola Iannacci Lo sfondo: la sintesi nelle Indicazioni nazionali del 2012 e ipotesi di curricolo Conoscenze di base

Dettagli

SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB

SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB Relatore Chiarissimo

Dettagli

CAPITOLO 3 Previsione

CAPITOLO 3 Previsione CAPITOLO 3 Previsione 3.1 La previsione I sistemi evoluti, che apprendono le regole di funzionamento attraverso l interazione con l ambiente, si rivelano una risorsa essenziale nella rappresentazione di

Dettagli

Breve introduzione al Calcolo Evoluzionistico

Breve introduzione al Calcolo Evoluzionistico Breve introduzione al Calcolo Evoluzionistico Stefano Cagnoni Dipartimento di Ingegneria dell Informazione, Università di Parma cagnoni@ce.unipr.it 1 Introduzione Il mondo fisico ed i fenomeni naturali

Dettagli

Uso del computer e gestione dei file. Elaborazione testi. Foglio elettronico. Strumenti di presentazione

Uso del computer e gestione dei file. Elaborazione testi. Foglio elettronico. Strumenti di presentazione Il è finalizzato a elevare il livello di competenza nell utilizzo del computer, del pacchetto Office e delle principali funzionalità di Internet. Il percorso formativo si struttura in 7 moduli Concetti

Dettagli

Competenza 3: Produrre testi in relazione a diversi scopi comunicativi. al termine del primo biennio della scuola primaria

Competenza 3: Produrre testi in relazione a diversi scopi comunicativi. al termine del primo biennio della scuola primaria Competenza 3: Produrre testi in relazione a diversi scopi comunicativi. al termine del primo biennio della scuola primaria Competenza Abilità Conoscenze Produrre testi in relazione a diversi scopi comunicativi

Dettagli

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione HTML e Linguaggi Politecnico di Facoltà del Design Bovisa Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione cugola@elet.polimi.it http://home.dei.polimi.it/cugola Indice Il linguaggio del

Dettagli

La potenza del Building Information Modeling (BIM) per la progettazione strutturale. Autodesk Revit. Structure

La potenza del Building Information Modeling (BIM) per la progettazione strutturale. Autodesk Revit. Structure La potenza del Building Information Modeling (BIM) per la progettazione strutturale. Autodesk Revit Structure Maggiore efficienza, precisione e coordinamento Modellazione simultanea per la progettazione

Dettagli

Motori di ricerca di ultima generazione: il web semantico

Motori di ricerca di ultima generazione: il web semantico Motori di ricerca di ultima generazione: il web semantico Quando parliamo di vie di comunicazione di un sistema EWS, è opportuno pensare a quale strada può essere la più rapida per il recupero dei dati

Dettagli

Sequence Alignment Algorithms

Sequence Alignment Algorithms Sequence Alignment Algorithms Algoritmi per l Allineamento di Sequenze Relatore: Prof. Giancarlo Mauri Correlatore: Prof. Gianluca Della Vedova Tesi di Laurea di: Mauro Baluda Matricola 038208 Part of

Dettagli

Bioinformatica. Marin Vargas, Sergio Paul

Bioinformatica. Marin Vargas, Sergio Paul Bioinformatica Marin Vargas, Sergio Paul 2013 Wikipedia: La bioinformatica è una disciplina scientifica dedicata alla risoluzione di problemi biologici a livello molecolare con metodi informatici. La bioinformatica

Dettagli

Analisi e catalogazione automatica dei Curriculum Vitae

Analisi e catalogazione automatica dei Curriculum Vitae Analisi e catalogazione automatica dei Curriculum Vitae CV Manager è lo strumento di Text Mining che automatizza l analisi, la catalogazione e la ricerca dei Curriculum Vitae L esigenza Quanto tempo viene

Dettagli

SiStema dam e Stampa. automatizzata

SiStema dam e Stampa. automatizzata 0100101010010 0100101010 010101111101010101010010 1001010101010100100001010 111010 01001010100 10101 111101010101010010100101 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 010010101001010 1111101010101

Dettagli

Università della Svizzera italiana

Università della Svizzera italiana Università della Svizzera italiana Il sito dell Università della Svizzera italiana e l accessibilità Vs.1.0 11 / 12 / 2007 TEC-LAB WEB-SERVICE 1. INTRODUZIONE Avere accesso al web, per un utente disabile,

Dettagli