SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
UNIVERSIT`A DEGLI STUDI DI TRIESTE
Dipartimento di Ingegneria e Architettura
Corso di Laurea Magistrale in Ingegneria Informatica
Tesi di Laurea in Reti di Calcolatori II
Classificazione di frasi in
linguaggio naturale per il riconoscimento di
interazioni tra geni e proteine con tecniche di
Machine Learning
LAUREANDO RELATORE
Marco Virgolin prof. Alberto Bartoli
CORRELATORI
prof. Eric Medvet
dott. Andrea De Lorenzo
dott. Fabiano Tarlao
Anno Accademico 2013/2014
Indice
1 Introduzione 1
2 Scenario 3
2.1 Scopo del lavoro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Aspetti utili di NLP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Fondamentali di GP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Richiami su DFA ed espressioni regolari . . . . . . . . . . . . . . . . . . . 6
3 Classificatore GP 9
3.1 Rappresentazione delle frasi . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Generazione di una espressione regolare . . . . . . . . . . . . . . . . . . . 11
3.3 Generazione del classificatore . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 Modifiche effettuate a Regex Turtle . . . . . . . . . . . . . . . . . . . . . . 19
4 Dataset 21
4.1 Dataset utilizzato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Dataset BC e GI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3 Dettagli sulla generazione di φ-stringhe . . . . . . . . . . . . . . . . . . . 25
4.4 Costruzione del dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.5 Dettagli implementativi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5 Valutazione sperimentale 29
5.1 Algoritmo evolutivo per la generazione di DFA . . . . . . . . . . . . . . . 29
5.2 Metodi di riferimento basati sul problema . . . . . . . . . . . . . . . . . . 30
5.3 Metodi di classificazione tradizionali . . . . . . . . . . . . . . . . . . . . . 31
5.4 Risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6 Ulteriori esperimenti 37
6.1 Ulteriori esperimenti con φ-SSLEA . . . . . . . . . . . . . . . . . . . . . . 37
6.2 Ulteriori esperimenti con GP . . . . . . . . . . . . . . . . . . . . . . . . . 37
i
INDICE ii
7 Conclusioni 41
Bibliografia 43
Ringraziamenti 47
Elenco delle figure
2.1 Tokenization e POS tagging applicate ad una frase. . . . . . . . . . . . . . 5
2.2 Funzionamento tipico della programmazione genetica. . . . . . . . . . . . 6
2.3 Esempio di DFA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Esempio di espressione regolare. . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1 Trasformazione di una frase in φ-stringa. . . . . . . . . . . . . . . . . . . . 10
3.2 Albero rappresentante una espressione regolare. . . . . . . . . . . . . . . . 15
5.1 Esempio di classificatore generato con GP. . . . . . . . . . . . . . . . . . . 35
6.1 Prestazioni di φ-SSLEA con n = 7 e nit variabile. . . . . . . . . . . . . . . 38
6.2 Prestazioni di φ-SSLEA con n variabile e nit = 5000. . . . . . . . . . . . . 38
6.3 Prestazioni di tre diversi classificatori GP. . . . . . . . . . . . . . . . . . . 40
iii
Elenco delle tabelle
3.1 Porzioni dei due dizionari di geni/proteine e interatori. . . . . . . . . . . . 12
3.2 Lista parziale delle annotazioni utilizzate. . . . . . . . . . . . . . . . . . . 13
4.1 Alcune frasi del corpus utilizzato negli esperimenti. . . . . . . . . . . . . . 22
5.1 Risultati del metodo proposto nel presente lavoro e dei metodi di riferimento. 34
v
Capitolo 1
Introduzione
Lo studio di tecniche per l’estrazione automatica di informazioni da testi scritti `e un
argomento di enorme interesse, sia nella comunit`a scientifica, sia dal punto di vista
delle applicazioni tecnologiche. L’estrazione automatica di conoscenza inerente la ricerca
biomedica, in particolare, `e uno degli ambiti in cui queste tecniche devono affrontare
molte sfide importanti [24, 17, 25, 5, 26, 22, 12]. Uno dei problemi maggiormente rilevanti
in questo scenario consiste nella costruzione automatica di descrizioni sistematiche e
strutturate di osservazioni di interesse biomedico riportate nella letteratura scientifica [13,
11, 20].
Il presente lavoro di tesi riguarda l’identificazione automatica di frasi contenenti
interazioni tra geni e proteine in articoli scientifici, utilizzando tecniche di Machine
Learning quali l’elaborazione del linguaggio naturale e la programmazione genetica. I
dati a disposizione sono un dizinario di geni, proteine e interatori1 e un piccolo insieme di
frasi d’esempio [5, 26, 22]. La difficolt`a del problema `e determinata dal fatto che la mera
occorrenza di parole del dizionario in una frase non implica che quest’ultima contenga
una interazione (si veda la Tabella 4.1).
L’approccio descritto in questo documento prevede l’utilizzo della programmazione
genetica per generare un modello dei pattern sintattici corrispondenti alle sole frasi che
contengono interazioni tra geni/proteine. I pattern sono implementati tramite espressioni
regolari su annotazioni part-of-speech (POS) rappresentanti l’analisi grammaticale delle
relative parole. In particolare, la costruzione di espressioni regolari viene realizzata
traendo spunto da recenti proposte [2], mentre l’impiego delle annotazioni permette di
affrontare il problema ad un pi`u alto livello di astrazione e comporta vantaggi pratici
notevoli: (i) `e possibile basare il lavoro su annotatori gi`a esistenti, considerati allo stato
dell’arte nel campo dell’elaborazione del linguaggio naturale, ed (ii) `e sufficiente cambiare
annotatore per affrontare testo espresso in una lingua diversa o per includere gli ultimi
progressi sviluppati nella tecnologia, senza dover apportare alcuna modifica al framework.
1
Con “interatore” si intende una parola che descrive il tipo di interazione che avviene tra due
geni/proteine.
1
1. Introduzione 2
Le prestazioni della classificazione operata dal metodo sono state valutate su un
dataset di frasi estratte da articoli scientifici biomedici e sono state confrontate con quelle
di alcuni importanti metodi di riferimento. I risultati ottenuti consentono di affermare
che il classificatore generato per mezzo della programmazione genetica `e di fatto in grado
di apprendere pattern sintattici in uno scenario di elaborazione del linguaggio naturale
di interesse pratico.
Il lavoro `e stato condotto presso il Machine Learning Lab dell’Universit`a degli Studi di
Trieste, perseguendo i seguenti obiettivi tattici:
1. studio delle basi della programmazione genetica, di alcuni aspetti dell’elaborazione
del linguaggio naturale e di articoli rilevanti a riguardo;
2. studio delle tecnologie e degli strumenti a disposizione;
3. progettazione e sviluppo di modifiche da effettuare al motore evolutivo fornito dal
laboratorio per poter generare un classificatore;
4. generazione del dataset per gli esperimenti;
5. valutazione sperimentale e confronto con risultati ottenuti utilizzando metodi di
classificazione di riferimento.
In particolare, l’algoritmo evolutivo per la generazione del classificatore `e stato imple-
mentato in linguaggio Java, modificando il preesistente motore Regex Turtle, capace di
generare espressioni regolari a partire da esempi.
Per quanto concerne i capitoli successivi, il capitolo Scenario introduce lo scopo del
lavoro e richiama elementi dell’informatica discussi in seguito; il capitolo Classificatore
GP esplica il processo di programmazione genetica utilizzato per generare il classificatore;
il capitolo Dataset descrive la costruzione del dataset utilizzato per gli esperimenti; il
capitolo Valutazione sperimentale tratta i metodi di riferimento utilizzati e i risultati
ottenuti; il capitolo Ulteriori esperimenti discute ulteriori esperimenti effettuati modi-
ficando alcuni aspetti di due metodi trattati; infine, il capitolo Conclusioni riporta un
sunto di quanto discusso e alcune considerazioni finali.
Capitolo 2
Scenario
In questo capitolo `e descritto lo scopo del presente lavoro e sono riportati richiami di
concetti trattati, utili a facilitare la lettura dei capitoli successivi. Nello specifico, vengono
descritti alcuni aspetti di interesse dell’elaborazione del linguaggio naturale (NLP1), si
introducono i concetti fondamentali della programmazione genetica (GP2) e si richiamano
gli automi deterministici a stati finiti e le espressioni regolari.
2.1 Scopo del lavoro
Lo scopo del presente lavoro consta nella generazione di un classificatore C che, data una
frase s espressa in linguaggio naturale, effettui una classificazione binaria rappresentativa
del fatto che s contenga o meno almeno una interazione tra un gene e una proteina, o
tra un gene e un gene, o tra una proteina e una proteina (per brevit`a, con la locuzione
“interazione tra gene e proteina” si intendono i tre casi). Si vuole realizzare il classificatore
a partire da due insiemi di apprendimento, detti learning set, S+
L , S−
L : le frasi contenute
in S+
L contengono (almeno) una iterazione gene-proteina, mentre quelle contenute in S−
L
no. Sono disponibili anche due dizionari di geni/proteine e interatori, come solitamente
avviene in questo tipo di scenari [13, 11, 12].
Al fine di poter apprezzare la natura e la difficolt`a del problema, `e opportuno
sottolineare che gli insiemi S+
L , S−
L non sono etichettati automaticamente utilizzando
un pattern predefinito tenuto nascosto al processo di generazione del classificatore.
Piuttosto, l’etichettatura `e stata operata da esperti del settore che leggono e analizzano il
significato di ciascuna frase nella sua interezza. Ancora, gli esperti non scelgono la classe
di appartenenza di una frase utilizzando un pattern sintattico predefinito—non si pu`o
escludere la possibilit`a che un pattern adatto ad effettuare la classificazione desiderata
potrebbe non esistere nemmeno.
1
Dall’inglese Natural Language Processing.
2
Dall’inglese Genetic Programming.
3
2. Scenario 4
Nothing
↓
NCS
is
↓
VP3S
certain
↓
AGG
but
↓
CG
death
↓
NCS
and
↓
CG
taxes
↓
NCP
Figura 2.1: Esempio di tokenization e POS tagging applicate ad una frase. La scissione in token
operata dalla tokenization `e rappresentata dalle sottolineature sotto ciascuna parola, mentre
l’analisi grammaticale assegnata dal POS tagging `e rappresentata dalle sigle sotto alle frecce. In
particolare, i significati delle sigle sono: NCS-nome comune singolare, VP3S-verbo presente in
terza persona singolare, AGG-aggettivo, CG-congiunzione, NCP-nome comune plurale.
2.2 Aspetti utili di NLP
Il Natural Language Processing (NLP) `e un campo dell’informatica che riguarda l’insieme
degli studi e delle tecniche per il trattamento automatico di informazioni espresse in
linguaggio naturale. Il problema principale `e rappresentato dalla comprensione automatica
del linguaggio naturale, ovvero l’estrazione automatica del significato di un discorso o
di un testo. Le applicazioni sono molteplici e spaziano da scenari di ricerca di alto
livello, come lo studio dell’intelligenza artificiale e della linguistica, a contesti pi`u pratici,
come il rilevamento del plagio [14] e l’individuazione di relazioni tra entit`a di interesse
biomedico [13, 12].
Al fine di facilitare la comprensione dei prossimi capitoli, si riportano ora alcune
definizioni3 di concetti NLP utilizzati in seguito. Sia s una frase, considerata come una
sequenza ordinata di parole w. Si dice annotatore a una funzione che assegna un valore
va, tipicamente detto annotazione o tag, a una parola w, ovvero a : Q → Va, dove Q `e
l’insieme di tutte le possibili parole e Va `e l’insieme di tutti i possibili valori che possono
essere assegnati da a. Si dice token t una tupla < va1 , ..., van > di annotazioni assegnate
dagli annotatori a1, ..., an ad una parola w. Tipicamente, un token contiene sempre un
elemento che `e il valore testuale della parola di partenza stessa.
Nel presente lavoro vengono effettuate due operazioni NLP sulle frasi: l’operazione
tokenization e l’operazione Part-Of-Speech tagging. La prima scinde una frase in input s
in una sequenza ordinata di token, assegnando a ciascuno di essi il valore testuale della
parola di partenza. La seconda effettua la annotazione Part-of-Speech (POS), ovvero
assegna a ciascun token un valore che rappresenta l’analisi grammaticale della relativa
parola originale.
La Figura 2.1 esplica gli effetti delle operazioni tokenization e POS tagging, eseguite
su una frase in lingua inglese d’esempio.
2.3 Fondamentali di GP
La programmazione genetica `e una metodologia di programmazione ispirata all’evoluzione
biologica per generare automaticamente uno o pi`u programmi che risolvano un problema.
3
Le definizioni riportate sono da intendersi relative al presente lavoro, poich´e strumenti NLP diversi
da quelli utilizzati potrebbero non essere conformi ad esse.
5 Richiami su DFA ed espressioni regolari
Inizialmente si considera un insieme di programmi (popolazione), dove ciascun pro-
gramma (individuo) `e tipicamente generato in modo casuale o secondo euristiche che
dipendono dal particolare problema. Ogni individuo rappresenta una soluzione candidata
al problema e la bont`a della soluzione viene misurata da una specifica funzione (fitness).
Gli individui che costituiscono una popolazione sono tradizionalmente rappresentati da
alberi, costituiti da nodi funzione (non-foglie), nodi terminali (foglie) e archi che collegano
gerarchicamente i nodi. L’albero `e considerato il genotipo dell’individuo, perch´e lo descri-
ve con componenti elementari (nodi e archi), ovvero al pi`u basso livello di astrazione. Il
fenotipo di un individuo `e il programma ottenuto dall’interpretazione dell’albero, mentre
il comportamento di un individuo `e la soluzione che il programma d`a al problema4. Due
individui con differente genotipo possono avere il medesimo fenotipo, cos`ı come individui
con differente fenotipo possono avere il medesimo comportamento.
Su una selezione di individui sono tipicamente impiegate due operazioni genetiche,
ispirate anch’esse all’evoluzione biologica: l’operazione crossover e l’operazione mutazione.
La prima emula la riproduzione sessuata tra organismi viventi e consiste nella generazione
di nuovi individui ottenuti scambiando due sottoalberi, scelti casualmente, di due individui
di partenza; la seconda riproduce la mutazione di entit`a biologiche generando un individuo
che `e ottenuto modificando casualmente un sottoalbero o un nodo di un individuo originale.
Successivamente, si crea una nuova popolazione di individui rimpiazzando le soluzioni
che risultano inadatte a risolvere il problema con quelle che hanno prestazioni migliori
(secondo la fitness). `E inoltre tipico promuovere una piccola parte della popolazione
precedente alla popolazione successiva (elitismo).
Il ripetersi di tali operazioni permette di generare individui sempre migliori dei
precedenti, finch´e si converge ad una soluzione ottima o si raggiunge un numero prefissato
di iterazioni (generazioni). Uno schema della procedura complessiva `e riportato in
Figura 2.2.
2.4 Richiami su DFA ed espressioni regolari
Un automa a stati finiti deterministico (DFA5) `e una quintupla A =< Σ, S, δ, s0, F >,
dove:
• Σ = {α0, α1, . . . , αn} `e l’insieme finito dei simboli (alfabeto);
• S = {s0, s1, . . . , sm} `e l’insieme finito degli stati;
• δ : S × σ → S `e la funzione (o matrice) di transizione;
• s0 ∈ S `e lo stato iniziale;
• F ⊆ S `e l’insieme degli stati di accettazione.
4
Le definizioni date sono relative al presente lavoro. In altri scenari fenotipo e comportamento possono
coincidere ed essere associati alla fitness dell’individuo.
5
Dall’inglese Deterministic Finite Automaton
2. Scenario 6
Figura 2.2: Funzionamento tipico della programmazione genetica.
s0start s1
1
0
1
0
Figura 2.3: Esempio di DFA con alfabeto Σ = {0, 1} e insieme degli stati S = {s0, s1}. La
rappresentazione indica che s0 `e lo stato iniziale e che s1 `e stato di accettazione. L’automa accetta
tutte le stringhe che hanno un numero dispari di zeri.
Il principio di funzionamento `e il seguente. Sia σ una stringa in input di simboli
nell’alfabeto Σ, che inizia con simbolo αi. Inizialmente, l’automa A `e nello stato iniziale
s0 e applica la funzione di transizione δ sulla coppia (s0, αi), passando cos`ı al nuovo stato
sk = δ(s0, αi). Sia ora αj il successivo simbolo di σ. Nuovamente, A applica δ su (sk, αj)
e commuta il proprio stato nel risultante sl. Quando tutta σ `e stata consumata, si dice
che A accetta σ se lo stato in cui si trova l’automa sf `e di accettazione, ovvero sf ∈ F,
altrimenti si dice che A rifiuta σ se sf `e di rifiuto, ovvero sf ∈ S  F. `E possibile operare
una classificazione binaria di una stringa valutando l’accettazione o il rifiuto della stessa
da parte di un automa.
La Figura 2.3 mostra un esempio di semplice DFA con due stati e alfabeto binario.
Una espressione regolare `e una descrizione concisa e compatta di insiemi di stringhe. La
descrizione consiste di una sequenza di costanti ed operatori espressa in un formalismo
apposito. Le costanti rappresentano i caratteri dell’alfabeto con cui sono espresse le
stringhe in esame, classi di tali caratteri (ad esempio ., w, d) e altri elementi sintattici
7 Richiami su DFA ed espressioni regolari
r = href="[ˆ"]+"
s = <a href="www.units.it">sito web UniTs</a>
Figura 2.4: L’espressione regolare r permette di individuare la porzione sottolineata della
stringa s. Infatti, r accetta le (sotto)stringhe che cominciano con la sequenza di caratteri href=",
seguita da una sequenza non vuota di caratteri diversi da ", seguita dal carattere ".
(ad esempio l’inizio e la fine della stringa), mentre gli operatori sono costrutti sintattici
che si applicano sulle costanti per ampliare l’espressivit`a dell’espressione regolare (ad
esempio i quantificatori, i gruppi catturanti, i lookaround).
Analogamente a quanto avviene utilizzando DFA, una espressione regolare pu`o
accettare o meno una stringa in input. In particolare, `e sempre possibile individuare una
espressione regolare a partire da un automa deterministico a stati finiti [15]. Il viceversa
non `e sempre vero: esistono costrutti delle espressioni regolari che trascendono le capacit`a
discriminative degli automi, come i quantificatori possessivi e la backreference. Ancora,
mentre DFA pu`o solo accettare o rifiutare interamente una stringa s, una espressione
regolare consente di determinare esattamente quali sottostringhe di s sono accettate. Di
conseguenza, le espressioni regolari possono essere impiegate per affrontare problemi di
estrazione di informazioni.
Per una completa e approfondita analisi delle espressioni regolari, si rimanda a [10].
La Figura 2.4 mostra un esempio di espressione regolare applicata ad una stringa.
Capitolo 3
Classificatore GP
Il presente capitolo descrive la costruzione e le caratteristiche del classificatore C, costruito
con tecniche di programmazione genetica (GP) e capace di individuare pattern sintattici
delle frasi che devono essere estratte, al di l`a della mera co-occorrenza di parole rilevanti.
Esso viene istruito per mezzo di esempi, utilizzando due insiemi di apprendimento
(learning set) S+
L , S−
L : le frasi contenute in S+
L contegono almeno una interazione tra geni
e proteine, mentre quelle in S−
L non ne contegono alcuna.
Il classificatore non opera direttamente sulle frasi espresse in linguaggio naturale,
bens`ı su sequenze di caratteri Unicode, qui denominate φ-stringhe, da esse derivate. In
breve, ogni frase `e stata prima trasformata in una sequenza di annotazioni Part-of-Speech1
(POS) e di altra natura, dopodich´e ogni annotazione `e stata sostituita da un simbolo
Unicode ad essa univocamente associato. Tutti i dettagli su questa procedura sono
riportati nella Sezione 3.1 e un esempio `e disponibile in Figura 3.1.
Il classificatore desiderato C consiste di un insieme di espressioni regolari {r1, r2, . . . }
tali che l’output di C per una φ-stringa x in input sar`a positivo (cio`e C asserisce che la
frase corrispondente a x contiene almeno una interazione tra geni e proteine) se almeno
una ri accetta x o una sottostringa non vuota di x.
La costruzione di ri `e stata affrontata per mezzo di una procedura GP ispirata da
recenti studi riguardo l’apprendimento di espressioni regolari da esempi [1, 2]. Dal punto
di vista implementativo, `e stato modificato e utilizzato il motore Java Regex Turtle,
sviluppato dal Machine Learning Lab dell’Universit`a degli Studi di Trieste, affinch´e fosse
possibile effettuare classificazione su annotazioni anzich´e estrazione di caratteri. A tal
riguardo si consideri, ad esempio, il fatto che le espressioni regolari includono costrutti
che permettono la generalizzazione e la compattezza quando applicati su testo, come w
e d, che non sono ragionevolmente applicabili su sequenze di annotazioni POS. Inoltre,
mentre solitamente gli esempi sono costituiti esattamente da sezioni di testo da estrarre,
di cui `e possibile individuare dei pattern ben definiti, in questo scenario si vogliono
identificare frasi intere, in cui l’informazione `e diluita e non `e nemmeno detto che esista
1
Data una parola, la annotazione POS ne esprime l’analisi grammaticale.
9
3. Classificatore GP 10
The
↓
DT
↓
DT
↓
f
physiological
↓
JJ
↓
JJ
↓
6
role
↓
NN
↓
NN
↓
9
of
↓
IN
↓
IN
↓
i
sigmaB-dependent
↓
JJ
↓
GENEPTN
↓
G
katX
↓
NN
↓
GENEPTN
↓
G
expression
↓
NN
↓
INOUN
↓
J
remains
↓
VBZ
↓
VBZ
↓
5
obscure
↓
JJ
↓
JJ
↓
6
.
↓
.
↓
.
↓
x
Figura 3.1: La frase originale s (in cima) viene trasformata in una φ-stringa x (in fondo) per
mezzo di due trasformazioni a cascata: la prima produce una sequenza di annotazioni POS e la
seconda sostituisce alcune di esse con altre annotazioni specifiche (Sezione 3.1).
un pattern specifico. Le principali modifiche effettuate al motore sono riportate nella
Sezione 3.4.
Il numero di espressioni regolari che costituiscono C non `e determinato a priori ma in
modo dinamico e automatico durante la procedura. Inizialmente viene generata una prima
espressione regolare utilizzando tutta l’informazione disponibile. Quando viene trovata
un’espressione regolare con performance adeguate su un subset di esempi, la ricerca
evolutiva viene reinizializzata sugli esempi che non sono stati identificati adeguatamente,
portando cos`ı alla generazione di una nuova espressione regolare. Tale metodo prende
il nome di separate-and-conquer ed `e ispirato da un recente articolo per l’estrazione
di frammenti di testo [3]: a differenza dell’articolo citato, in questo scenario si vuole
effettuare classificazione anzich´e estrazione e si permette la generazione di espressioni
regolari che, in fase di addestramento, non hanno precisione perfetta.
3.1 Rappresentazione delle frasi
La rappresentazione delle frasi tramite φ-stringhe prevede l’utilizzo di due dizionari,
Dgenes e Dinteractors, il primo contenente parole che rappresentano geni e proteine, il
secondo parole che rappresentano interatori. Una porzione dei dizionari `e mostrata nella
Tabella 3.1. La trasformazione di ciascuna frase s in una φ-stringa x avviene come segue.
1. s viene scissa in una sequenza {t1, . . . , tn} di token secondo lo standard Penn-
Treebank2;
2. Tramite un annotatore Part-of-Speech (POS) eseguito su {t1, . . . , tn} viene ottenuta
una sequenza {a1, . . . , an} di annotazioni, con ai ∈ A. L’insieme A di possibili
annotazioni dipende dallo specifico annotatore POS utilizzato; Si assume che
esistono tre sottoinsiemi di A disgiunti Averb, Aadj, Anoun che corrispondono a
verbi, aggettivi e nomi rispettivamente—A potrebbe includere altri elementi non
contenuti in Averb ∪Aadj ∪Anoun. L’annotatore utilizzato nel presente lavoro `e quello
sviluppato dal gruppo di ricerca Stanford Natural Language Processing Group3, che
utilizza le annotazioni dello standard Penn Treebank. La Tabella 3.2 mostra una
lista parziale degli elementi di A usati da tale annotatore POS.
2
http://www.cis.upenn.edu/∼treebank
3
http://nlp.stanford.edu/software/tagger.shtml
11 Generazione di una espressione regolare
3. La sequenza di annotazioni {a1, . . . , an} viene modificata come segue. Sia t ∈∗ D se
t `e uguale a o inizia con un elemento di D—ad esempio, se D = {sigmaB, katX},
allora sigmaB-dependent ∈∗ D and katX ∈∗ D. Per ogni i,
• se ti ∈∗ Dgenes, si pone ai := GENEPTN;
• se ti ∈ Dinteractors e ai ∈ Averbi, si pone ai := IVERB;
• se ti ∈ Dinteractors e ai ∈ Aadj, si pone ai := IADJ;
• infine, se ti ∈ Dinteratori e ai ∈ Anoun, si pone ai := INOUN.
L’insieme di tutte le possibili annotazioni viene definito come A = A ∪ {GENEPTN,
IVERB, IADJ, INOUN}.
4. Sia U l’insieme di caratteri che includono cifre, lettere minuscole e maiuscole e
sia φ : A → U una funzione iniettiva che mappa le annotazioni in caratteri (si
veda l’ultima colonna a destra della Tabella 3.2). La φ-stringa x corrispondente
a {a1, . . . , an} viene ricavata tramite concatenazione dei caratteri ottenuti dalla
applicazione di φ ad ogni elemento della sequenza di annotazioni, in altre parole
x = φ(a1) . . . φ(an).
La Figura 3.1 mostra i risultati intermedi e finale della procedura applicata ad una
frase d’esempio.
3.2 Generazione di una espressione regolare
In questa sezione viene descritta la procedura basata su GP per ottenere una espressione
regolare r da due insiemi di addestramento (training set) X+, X− di φ-stringhe. Lo
scopo di questa procedura `e di generare una espressione regolare r tale che:
(i) per ogni φ-stringa x in X+, x, o una sottostringa non-vuota di x, `e accettata da r ;
(ii) per ogni φ-stringa x in X−, x e tutte le sottostringhe di x non sono accettate da r .
La relazione tra i training set e i learning set utilizzati per sintetizzare il classificatore `e
esplicata in seguito.
Rappresentazione della soluzione
Una soluzione candidata, ovvero un individuo, `e una espressione regolare che viene
rappresentata con un albero, come segue. L’insieme di nodi terminali `e composto dal
carattere wildcard . e da ogni carattere nel codominio di φ, cio`e ogni caratteri in U che
corrisponde ad una annotazione in A . L’insieme di nodi funzione `e composto da:
• il concatenatore ◊◊;
• la classe di caratteri [◊] e la classe di caratteri negata [ˆ◊];
3. Classificatore GP 12
Dgenes
abrB
alpha-amylase
amyP
bkd
bmrUR
cheV
ClpX
ComK
CtsR
degR
DksA
dltB
DnaK
Esig29
EsigA
EsigB
EsigG
fabL
FlgM
gbsA
GerE
katX
kdgR
KinC
mrpA
PhoP P
prosigK
RpoS
sigmaK
sigmaH
sigmaW
SpoIIAB
spoIVCB
YtxH
yfhR
altri
Dinteractors
abrogation
acetylation
activation
binding
conversion
destabilization
downregulation
expression
induction
inhibition
modulation
phosphorylation
repression
stabilization
suppression
synthesis
acetylate
activate
affect
bind
block
comprising
conjugate
destabilize
dimerize
encoding
enhance
exhibit
potentiate
regulate
repressed
sever
stabilize
suppress
yield
altri
Tabella 3.1: Porzioni dei due dizionari di geni/proteine e interatori.
13 Generazione di una espressione regolare
a Significato Sottoinsieme φ(a)
VB verb, base form
Averb
0
VBD verb, past tense 1
VBG verb, pres. part. or gerund 2
VBN verb, past participle 3
VBP verb, pres. tense, ¬3rd p. s. 4
VBZ verb, pres. tense, 3rd p. s. 5
JJ adjective or numeral, ordinal
Aadj
6
JJR adjective, comparative 7
JJS adjective, superlative 8
NN noun, common, sing. or mass
Anoun
9
NNP noun, proper, singular a
NNPS noun, proper, plural b
NNS noun, common, plural c
CC conjunction, coordinating d
CD numeral, cardinal e
DT determiner f
EX existential there g
FW foreign word h
IN prep. or conj., subordinating i
LS list item marker j
PDT pre-determiner k
POS genitive marker l
PRP pronoun, personal m
PRP$ pronoun, possessive n
RB adverb o
RP particle p
SYM symbol q
TO “to” as preposition or infinitive marker r
UH interjection s
WDT WH-determiner t
WP WH-pronoun u
WP WH-adverb v
, comma w
. sentence terminator x
: colon or ellipsis y
( opening parenthesis z
) closing parenthesis A
altre annotazioni
GENEPTN gene or protein
A  A
G
IVERB verb interactor R
IADJ adjective interactor P
INOUN noun interactor J
Tabella 3.2: Lista parziale degli elementi di A . Per la lista completa degli elementi di A (Penn
Treebank Tag-set) si visiti http://www.comp.leeds.ac.uk/amalgam/tagsets/upenn.html.
3. Classificatore GP 14
◊◊
◊?+ [ˆ◊]
G ◊◊
◊◊
3 ◊++
.
c
Figura 3.2: Albero rappresentante l’espressione regolare G?+[ˆ3c++.].
• i quantificatori possessivi4 ◊*+, ◊++, ◊?+ e ◊{◊,◊}+;
• il gruppo non-catturante (?:◊).
Un albero rappresenta una espressione regolare come una ricerca in profondit`a (depth-
first search) in cui ciascun simbolo ◊ in un nodo non-terminale viene rimpiazzato dalla
rappresentazione del nodo figlio corrispondente. Un esempio `e rappresentato in Figura 3.2.
Definizione della fitness
La fitness di un individuo r quantifica la prestazioni dello stesso sui training set. La
fitness scelta `e multi-obiettivo ed `e stata definita con la tupla
f(r) := (FPR(r, X−
) + FNR(r, X+
), FPR(r, X−
), (r)) ,
dove (r) `e la lunghezza dell’espressione regolare rappresentata da r e FPR(r, X−) e
FNR(r, X+) sono il tasso di falsi positivi (False Positive Rate) e il tasso di falsi negativi
(False Negative Rate), rispettivamente, di r sui training set. In dettaglio, FPR(r, X−)
4
Sono stati preferiti i quantificatori possessive a quelli greedy e lazy perch´e questi ultimi portano
il motore Java ad effettuare il backtracking per valutare le espressioni regolari in cui sono presenti. Il
backtracking rappresenta un collo di bottiglia per i tempi di calcolo.
15 Generazione di una espressione regolare
`e la percentuale di φ-stringhe x ∈ X− tali che x o almeno una sottostringa non-vuota
di x `e accettata da r; FNR(r, X+) `e la percentuale di φ-stringhe x ∈ X+ tali che x e
tutte le sottostringhe di x non sono accettate da r. Tutti i componenti della fitness si
vogliono minimizzare. Intuitivamente, date due soluzioni candidate r1 e r2, se valgono
contemporaneamente
(i) FPR(r1, X−) + FNR(r1, X+) < FPR(r2, X−) + FNR(r2, X+),
(ii) FPR(r1, X−) < FPR(r2, X−) e
(iii) (r1) < (r2),
allora r1 `e migliore di r2. Si noti che il primo obiettivo di f(r), cio`e FPR(r, X−) +
FNR(r, X+), fa le veci della accuratezza della classificazione di r sugli esempi in X−, X+.
Gli individui vengono classificati in base alle loro fitness secondo il principio di
dominanza di Pareto e l’ordine lessicografico, come segue. In principio, gli individui
vengono ordinati secondo la loro frontiera di Pareto: un individuo appartiene i-esima
frontiera se e solo se `e dominato secondo Pareto solo da individui, se esistono, che
appartengono alla j-esima frontiera, con j < i—un individuo domina secondo Pareto
un altro individuo se `e migliore su almeno un elemento della fitness e non `e peggiore
sugli altri. Successivamente, viene stabilito un ordinamento totale sugli individui che
appartengono alla stessa frontiera di Pareto: vengono preferiti gli individui con pi`u bassa
FPR + FNR; in caso di uguale FPR + FNR vengono preferiti quelli con pi`u bassa FPR;
in caso di uguale FPR vengono preferiti quelli con pi`u bassa .
Come si pu`o notare, si `e deciso di non inserire aspetti specifici del problema in
esame nella definizione della fitness. Ad esempio, annotazioni POS rappresentative di
geni/proteine o interatori non hanno alcuna influenza particolare su di essa. L’approccio
multi-obiettivo utilizzato ha lo scopo di massimizzare l’accuratezza e, nel contempo,
promuovere soluzioni compatte prevenendo cos`ı il fenomeno del bloat [9]. Infine, poich´e
il classificatore non consiste di una singola espressione regolare ma di un insieme di
espressioni generate progressivamente da training set sempre pi`u piccoli (Sezione 3.3),
l’obiettivo FPR impone una pressione evolutiva sulle singole soluzioni atta a migliorare il
tasso di falsi positivi dell’aggregazione delle stesse.
Procedura di ricerca
La procedura di ricerca GP viene eseguita con una popolazione iniziale di npop individui.
La popolazione iniziale `e composta di una porzione di individui generati casualmente e
una porzione di individui costruiti in modo tale da accettare almeno una φ-stringa in
X+. Nel dettaglio, vengono costruiti tre individui da ogni x ∈ X+:
1. un individuo r rappresentante una espressione regolare che `e uguale alla φ-stringa
x;
3. Classificatore GP 16
2. un individuo r ottenuto rimpiazzando in r ogni nodo foglia non incluso in {φ(IVERB),
φ(GENEPTN), φ(IADJ), φ(INOUN)} con un sottoalbero che corrisponde all’espres-
sione regolare
[ˆφ(GENEPTN)φ(IVERB)φ(IADJ)φ(INOUN)] ,
ovvero con la classe di caratteri che esclude quelli che corrispondono a geni/proteine
e interatori;
3. un individuo r ottenuto rimpiazzando in r ripetizioni consecutive di caratteri che
non rappresentano geni/proteine o interatori con [ˆφ(GENEPTN)φ(IVERB)φ(IADJ)
φ(INOUN)]++, ovvero con il sottoalbero che corrisponde a una o pi`u ripetizioni
della classe di caratteri.
Se il numero di individui generati con questa procedura `e maggiore di npop, vengono
rimossi individui scelti a caso (con le configurazioni utilizzate nel presente lavoro questo
evento non si verifica); invece, qualora il numero di individui sia strettamente minore di
npop, ne vengono generati altri in modo casuale con metodo ramped half-and-half [16]
finch´e non viene raggiunto il limite di popolazione imposto.
La popolazione iniziale viene evoluta secondo la seguente procedura. Ad ogni iterazione
(o generazione), vengono generati npop individui, di cui:
• l’80% tramite crossover tra individui della popolazione corrente;
• il 10% tramite mutazione di individui della popolazione corrente;
• il rimanente 10% a caso con metodo ramped half-and-half.
Dei 2npop individui complessivi a disposizione ne viene scartata la met`a con fitness
peggiore e i rimanenti npop diventano la nuova popolazione corrente. Sia per il crossover
che per la mutazione, la scelta di un individuo candidato viene effettuata con selezione
a torneo (tournament selection): si considerano 7 individui casuali della popolazione
corrente e si sceglie quello con fitness migliore. Ogniqualvolta viene generato un individuo
che rappresenta una espressione regolare non valida, esso viene scartato e ne viene
generato un altro.
Viene inoltre effettuata l’imposizione della diversit`a fenotipica come segue. Se viene
generato un individuo r1 che rappresenta la stessa espressione regolare di un altro individuo
r2 appartenente alla popolazione corrente, allora r1 viene scartato e si genera un altro
individuo—un meccanismo simile `e utilizzato in [19] per prevenire la creazione di soluzioni
duplicate. Si `e osservato sperimentalmente che questo semplice meccanismo porta a
soluzioni notevolmente migliori in questo scenario, con una penalizzazione trascurabile
del tempo di completamento della ricerca. `E presumibile che tale miglioramento sia
influenzato dall’utilizzo di una popolazione iniziale non completamente composta da
individui generati a caso e dall’impiego di una ricerca GP multi-obiettivo. Riguardo
quest’ultimo punto, si sono osservati benefici apportati dai meccanismi espliciti per la
promozione di forme di diversit`a tra gli individui, siano esse implementate a livello
17 Generazione del classificatore
genetipico o comportamentale delle soluzioni, oppure implementate nello spazio della
fitness [9, 6].
La ricerca GP termina quando si verifica uno dei seguenti eventi: (i) un numero
prefissato di ngen iterazioni sono state effettuate; o (ii) la tupla fitness del miglior individuo
`e rimasta inalterata per nstop iterazioni consecutive. L’esito della ricerca `e l’espressione
regolare rappresentata dal miglior individuo della popolazione finale.
3.3 Generazione del classificatore
Inizialmente, i learning set S+
L e S−
L vengono trasformati negli insiemi di φ-stringhe
X+
L , X−
L , rispettivamente, applicando la procedura descritta nella Sezione 3.1. Succes-
sivamente, X+
L , X−
L vengono campionati a caso per costruire i training set X+, X−,
rispettivamente, garantendo che |X+|
|X−|
=
|X+
L |
|X−
L |
.
Il classificatore `e inizializzato come un insieme vuoto di espressioni regolari (C = ∅) e
viene via via arricchito di elementi per mezzo della seguente procedura iterativa (dove
τFPR `e una soglia prefissata):
1. si effettua una ricerca GP su X+, X− e si ottiene r ;
2. se FPR(r , X−) ≤ 1 − τFPR o la ricerca `e terminata dopo aver eseguito ngen
generazioni, allora si pone C := C ∪ {r }, altrimenti si termina;
3. si rimuove da X+ ogni φ-stringa x tale che x, o una sottostringa di x, `e accettata
da r ;
4. se X+ `e vuoto, si termina, altrimenti si torna al passo 1.
L’esito della procedura `e il classificatore C.
Vengono eseguite njob esecuzioni indipendenti della procedura, tutte a partire dagli
stessi training set X+, X−, ma con differenti semi per la generazione di numeri casuali.
Perci`o, vengono ottenuti (fino a) njob classificatori diversi5 e tra essi viene scelto quello
con minore tasso d’errore su i learning set X+
L , X−
L . In altre parole, gli njob classificatori
vengono validati su dati parzialmente non disponibili durante l’addestramento, al fine di
prevenire/mitigare il fenomeno dell’overfitting.
Negli esperimenti effettuati sono state utilizzate le seguenti configurazioni: τFPR = 0.7,
ngen = 1000, nstop = 200, npop = 1000, njob = 8 e profondit`a massima degli alberi pari a
15. I valori sono stati scelti dopo sperimentazioni preliminari (in particolare per ngen,
npop, e njob) e considerando le proposte presenti in letteratura.
3.4 Modifiche effettuate a Regex Turtle
La versione originale del motore Regex Turtle consente di generare espressioni regolari che
accettano stringhe composte di caratteri in codifica UTF-166, con lo scopo di individuare
5
I classificatori generati negli esperimenti relativi al presente lavoro sono risultati sempre tutti diversi.
6
http://tools.ietf.org/html/rfc2781.
3. Classificatore GP 18
specifiche porzioni di testo. In altre parole, Regex Turtle `e progettato per risolvere il
problema della estrazione di informazione a livello di piccole porzioni di testo. L’obiettivo
del presente lavoro `e invece la classificazione di intere frasi.
Nella versione originale del motore, gli esempi utili ad addestrare e a validare una
espressione r (i) non rappresentano necessariamente frasi, (ii) specificano quali porzioni
di testo devono essere accettate e quali non devono essere accettate da r.
Le modifiche apportate al motore permettono di generare il classificatore descritto in
questo capitolo. Anzich´e rimpiazzare componenti, si `e scelto di scrivere nuove classi che
eriditano/implementano opportune classi/interfacce preesistenti. Cos`ı facendo vengono
mantenute le vecchie funzionalit`a e la modularit`a del sistema: il nuovo Regex Turtle pu`o
essere utilizzato sia per il compito di estrazione di porzioni di testo che per quello di
classificazione di frasi, scegliendo opportunamente i moduli coinvolti tramite un file di
configurazione. Nello specifico:
• `e stata scritta una nuova classe descrittiva della struttura della ricerca GP al fine
di implementare la procedura separate-and-conquer con uno scenario di natura
classificativa;
• sono state ampliate le funzionalit`a della classe che gestisce il dataset in modo da
poter operare la scissione del problema nella porzione risolta e non risolta, durante
la procedura separate-and-conquer con scenario classificativo;
• `e stata scritta una nuova classe per generare la popolazione iniziale della procedura
di ricerca GP, affinch´e fosse possibile generare parte degli individui a partire dalle
φ-stringhe (Sezione 3.2);
• `e stata scritta una nuova classe per implementare la valutazione degli individui,
ovvero il calcolo di alcune prestazioni utili (come FPR e FNR) e la fitness.
Sono inoltre stati introdotti ulteriori elementi non strettamente legati al processo evolutivo,
come ad esempio un modulo per l’output dei risultati su un foglio di calcolo su cloud.
Capitolo 4
Dataset
In questo capitolo viene discussa nel dettaglio la costruzione del dataset utilizzato per gli
esperimenti, a partire da due corpus di frasi contenute in articoli scientifici biomedici:
BioCreAtIvE corpus1 (BC) e Genic Interaction Basic Training Dataset2 (GI ).
4.1 Dataset utilizzato
Gli esperimenti sono stati condotti utilizzando un corpus di 456 frasi in lingua inglese,
costruito a partire da due dataset (comprensivi di ground-truth fornita da un esperto del
settore), entrambi derivanti da competizioni di interesse biomedico riguardo l’estrazione
di interazioni tra geni e proteine. Le frasi costituenti tali dataset sono estrapolate da
articoli scientifici presenti nel database bibliografico di letteratura scientifia biomedica
PubMed. La Tabella 4.1 mostra alcuni esempi, dai quali si evince che la mera presenza
delle parole nei dizionari Dgenes e Dinteractors non `e sufficiente per qualificare una frase
come contenente una interazione tra geni e proteine.
4.2 Dataset BC e GI
Il corpus BioCreAtIvE `e composto da 1000 frasi codificate in formato XML. In 173 frasi
sono riportate interazioni tra geni e proteine, mentre le rimanenti 827 non contengono
alcuna interazione. La ground truth relativa alle frasi `e descritta con una codifica non
standard in un file di testo esterno, il quale specifica quali sono i componenti delle
interazioni delle 173 frasi. Gli elementi XML del corpus sono i seguenti:
• sentences: `e l’elemento root, contiene elementi sentence;
• sentence: rappresenta la particolare frase, ha attributo id che identifica la frase
stessa e contiene gli elementi gene, interactor, token ed elementi puramente testuali;
1
https://www2.informatik.hu-berlin.de/∼hakenber/corpora/#bc
2
http://genome.jouy.inra.fr/texte/LLLchallenge/#task1
19
4. Dataset 20
Frasi in cui `e presente almeno una
interazione tra geni e/o proteine
In this mutant, expression
of the spoIIG gene, whose
transcription depends on
both sigma(A) and the
phosphorylated Spo0A protein,
Spo0A-P, a major transcription
factor during early stages
of sporulation, was greatly
reduced at 43 degrees C.
These results suggest
that YfhP may act as a
negative regulator for the
transcription of yfhQ, yfhR,
sspE and yfhP.
These results demonstrate that
sigmaK-dependent transcription
of gerE initiates a negative
feedback loop in which GerE
acts as a repressor to limit
production of sigmaK.
In this study, we used
footprinting and gel mobility
retardation assays to reveal
that bacterially sinthetized
Zta fusion proteins bound
directly to six TGTGCAA-like
motifs within DSL.
Frasi in cui non `e presente alcuna
interazione tra geni e/o proteine
From day 10, a significant
increase in platelet count
was observed in eight of the
ten patients treated with
heparin (p < 0.05), with
return to the initial value
after heparin cessation in six
of the responders.
Two phosphopeptides,
identified as
RS-[32P]SGASGLLTSEHHSR and
S-[32P]SGASGLLTSEHHSR, were
obtained after stoichiometric
phosphorylation and
trypsinization of the peptide.
Levels of TSG-14 protein
(also termed PTX-3) become
elevated in the serum
of mice and humans after
injection with bacterial
lipopolysaccharide, but in
contrast to conventional acute
phase proteins, the bulk of
TSG-14 synthesis in the intact
organism occurs outside the
liver.
No mutations were found in
follicular adenomas.
Tabella 4.1: Otto frasi del corpus utilizzato negli esperimenti, 4 che includono (sinistra) e 4
che non includono (destra) interazioni tra geni e proteine. Per facilitare la comprensione, le
parole appartenenti al dizionario Dgenes sono in grassetto e le parole appartenenti al dizionario
Dinteractors sono in corsivo (si veda la Sezione 3.1).
21 Dataset BC e GI
• gene: contiene del testo che rappresenta un gene o una proteina, non ha attributi;
• interactor: contiene del testo che rappresenta un interatore, ha attributo pos il cui
valore rappresenta l’analisi grammaticale del testo contenuto;
• token: contiene del testo che non rappresenta un gene, una proteina o un interatore,
ha attributo pos il cui valore rappresenta l’analigi grammaticale del testo contenuto,
secondo lo standard Penn Treebank;
• elemento puramente testuale: utilizzato sempre per rappresentare lo spazio, viene
interposto tra elementi gene, interactor e token.
Un esempio di frase `e riportato di seguito (le righe vuote rappresentano il carattere
spazio).
<sentence id="@@0006">
<token pos="DT">These</token>
<token pos="NNS">observations</token>
<token pos="VB">establish</token>
<token pos="IN">that</token>
<gene>RsmC</gene>
<token pos="RB">negatively</token>
<interactor pos="VBZ">regulates</interactor>
<gene>rsmB</gene>
<token pos="NN">transcription</token>
<token pos="CC">but</token>
<token pos="RB">positively</token>
<interactor pos="VBZ">affects</interactor>
<gene>RsmA</gene>
<token pos="NN">production</token>
<token pos=".">.</token>
</sentence>
Il dataset Genic Interaction Basic Training Dataset `e costituito da 55 esempi di interazioni
tra geni e proteine codificati in un formato non standard. Ogni esempio `e costituito dai
seguenti campi:
4. Dataset 22
• ID: l’identificativo dell’esempio;
• sentence: la frase espressa come testo semplice;
• words: suddivisione della frase in parole, dove ogni elemento `e una quadrupla
(indice parola, parola, indice carattere d’inizio, indice carattere di fine).
• agents: specifica gli indici delle parole che sono geni o proteine agenti, ovvero
componenti attivi dell’interazione che influenzano altri geni o proteine;
• targets: specifica gli indici delle parole che sono geni o proteine subenti, ovvero
componenti passivi dell’interazione che sono influenzati da geni o proteine agenti;
• genic interactions: coppie di indici delle parole costituenti una interazione: uno dei
due indici rappresenta un componente agente, l’altro un componente subente.
Un esempio `e riportato di seguito.
ID 11069677-3
sentence In vivo studies of the activity of four of the kinases,
KinA, KinC, KinD (ykvD) and KinE (ykrQ), using abrB transcription
as an indicator of Spo0A˜P level, revealed that KinC and KinD were
responsible for Spo0A˜P production during the exponential phase
of growth in the absence of KinA and KinB.
words word(0,’In’,0,1) word(1,’vivo’,3,6) word(2,’studies’,8,14)
word(3,’of’,16,17) word(4,’the’,19,21) word(5,’activity’,23,30)
word(6,’of’,32,33) word(7,’four’,35,38) word(8,’of’,40,41) word
(9,’the’,43,45) word(10,’kinases’,47,53) word(11,’KinA’,56,59)
word(12,’KinC’,62,65) word(13,’KinD’,68,71) word(14,’ykvD’,74,77)
word(15,’and’,80,82) word(16,’KinE’,84,87) word(17,’ykrQ’,90,93)
word(18,’using’,97,101) word(19,’abrB’,103,106) word(20,’
transcription’,108,120) word(21,’as’,122,123) word(22,’an’
,125,126) word(23,’indicator’,128,136) word(24,’of’,138,139) word
(25,’Spo0A˜P’,141,147) word(26,’level’,149,153) word(27,’
revealed’,156,163) word(28,’that’,165,168) word(29,’KinC’,170,173)
word(30,’and’,175,177) word(31,’KinD’,179,182) word(32,’were’
,184,187) word(33,’responsible’,189,199) word(34,’for’,201,203)
word(35,’Spo0A˜P’,205,211) word(36,’production’,213,222) word(37,
’during’,224,229) word(38,’the’,231,233) word(39,’exponential’
,235,245) word(40,’phase’,247,251) word(41,’of’,253,254) word
(42,’growth’,256,261) word(43,’in’,263,264) word(44,’the’,266,268)
word(45,’absence’,270,276) word(46,’of’,278,279) word(47,’KinA’
,281,284) word(48,’and’,286,288) word(49,’KinB’,290,293)
agents agent(29) agent(31)
targets target(35)
genic_interactions genic_interaction(29,35) genic_interaction
(31,35)
23 Dettagli sulla generazione di φ-stringhe
4.3 Dettagli sulla generazione di φ-stringhe
Riguardo il dataset Genic Interaction Basic Training Dataset, la generazione delle φ-
stringhe avviene esattamente come descritto nella Sezione 3.1, utilizzando i dizionari per
geni, proteine e interatori3. Per le frasi estrapolate dal corpus BioCreAtIvE, invece, `e
stata utilizzata una procedura leggermente diversa per ottenere le φ-stringhe. Infatti,
non `e necessario utilizzare dizionari per identificare parole rappresentanti geni, proteine e
interatori, essendo esse incapsulate in specifici elementi XML. `E altres`ı stato possibile
sfruttare le annotazioni POS gi`a fornite nel corpus, compatibili con lo standard Penn
Treebank.
La procedura di generazione di una φ-stringa x a partire da una frase s (espressa
in XML) del corpus BioCreAtIvE `e la seguente. Per ogni elemento XML e di s, con
eventuale attributo pos a, si determina la annotazione a ricorrendo alle casistiche:
• se e `e un elemento token, si pone a := a;
• se e `e un elemento interactor, si considerano i sottoinsiemi disgiunti Averb, Aadj e
Anoun (definiti nella Sezione 3.1) e:
– se a ∈ Aadj, si pone a := IADJ;
– se a ∈ Anoun, si pone a := INOUN;
– se a ∈ Averb, si pone a := IVERB;
• se e `e un elemento gene, si pone a := GENEPTN.
• infine, se e `e un elemento puramente testuale, lo si ignora4;
Nota la sequenza di annotazioni {a1, . . . , an}, si costruisce la corrispondente φ-stringa
x = φ(a1), . . . , φ(an).
Si riportano due ultimi dettagli tecnici. Nel corpus BC, la frase con id @@0634
presenta un interatore con annotazione POS “FW” (foreign word), quando `e evidente
che si tratta di un verbo presente in terza persona singolare (“VBZ”). Infine, `e stato
necessario uniformare le annotazioni POS nel corpus BC relative alle parentesi aperte e
chiuse, rispettivamente “(” e “)”, con quelle effettuate dall’annotatore POS sviluppato dal
gruppo Stanford Natural Language Processing Group, rispettivamente “LRB” e “RRB”.
4.4 Costruzione del dataset
Il dataset utilizzato nel presente lavoro `e stato ottenuto per aggregazione delle 173 frasi
di BC contenenti interazioni tra geni e proteine con le 55 frasi di GI, per costituire gli
esempi positivi, e prelevando le prime 228 frasi di BC che non contengono interazioni,
3
I dizionari sono disponibili all’indirizzo http://www2.informatik.hu-berlin.de/∼hakenber/publ/suppl/
lll05/.
4
Gli elementi puramente testuali del corpus BioCreAtIvE sono tutti il carattere spazio.
4. Dataset 24
per costituire gli esempi negativi. Il risultato `e un corpus di 456 esempi, met`a positivi e
met`a negativi.
La rappresentazione del dataset `e stata declinata coerentemente alle specifiche del
classificatore impiegato, ovvero rispetto al classificatore ottenuto con GP e ai metodi
di riferimento (discussi nel Capitolo 5). In particolare, per il classificatore ottenuto
con GP, il dataset `e espresso come uno specifio oggetto descritto in formato JSON e
compatibile con il motore Regex Turtle modificato per la classificazione. La separazione
del dataset in insiemi per l’addestramento, la validazione e il test avviene attraverso un
file di configurazione esterno. Per i metodi di riferimento, il dataset presenta ciascun
esempio come una linea di testo ed `e costituito da quattro file: addestramento positivo,
addestramento negativo, test positivo e test negativo.
4.5 Dettagli implementativi
Dal punto di vista implementativo, le procedure per la generazione delle φ-stringhe
e per la costruzione del dataset sono state operate in modo automatico per mezzo di
software Java e script per shell Bash appositamente preparati. Gli strumenti sviluppati
hanno permesso di analizzare i dataset BC e GI, estrarre le informazioni utili, ottenere le
annotazioni POS, effettuare la conversione in φ-stringhe e generare il dataset finale nei
formati precedentemente descritti (Sezione 4.4), il tutto in modo automatico.
In particolare, sono state utilizzate librerie del progetto Stanford CoreNLP5 (v3.4.1)—
per le operazioni tokenization e POS tagging sul dataset GI—e i package della libreria
dataSetManager6—per costruire il dataset nel formato adatto al motore Regex Turtle.
5
http://nlp.stanford.edu/software/corenlp.shtml.
6
Sviluppata dal Machine Learning Lab dell’Universit`a degli Studi di Trieste.
Capitolo 5
Valutazione sperimentale
Al fine di valutare i risultati ottenuti con la metodologia descritta nel Capitolo 3, sono state
implementate e utilizzate diverse tecniche alternative di classificazione come riferimenti:
(i) un approccio evolutivo allo stato dell’arte per desumere pattern da esempi, (ii) due
approcci che racchiudono una grande quantit`a di conoscenza specifica del problema e
(iii) due metodi tradizionali per la classificazione di testo. Specificamente, nel presente
lavoro si `e modificata una versione sviluppata di i, implementati ex novo strumenti per
eseguire ii e applicati strumenti gi`a pronti di iii1. Tutti gli approcci sono stati utilizzati
sullo stesso dataset.
5.1 Algoritmo evolutivo per la generazione di DFA
`E stato modificato e utilizzato un classificatore basato sull’algoritmo Smart State Labeling
Evolutionary Algorithm (SSLEA) descritto in [21]. Il lavoro citato propone un algoritmo
allo stato dell’arte per apprendere un automa deterministico a stati finiti a partire da
esempi del comportamento di classificazione desiderato. SSLEA `e stato sviluppato alcuni
anni dopo una competizione di grande influenza nella comunit`a del grammar learning
e ha dimostrato prestazioni migliori degli strumenti vincitori della gara (e di versioni
perfezionate degli stessi), sulla stessa classe di problemi [18, 8] e persino in presenza di
dati rumorosi.
SSLEA rappresenta una soluzione candidata come una coppia composta da un vettore
di output di dimensione n e una matrice di transizione di dimensione n × |α|, dove n `e il
numero di stati dell’automa desiderato e |α| `e il numero di simboli presenti nell’alfabeto
in input: il primo ha un elemento per ogni stato dell’automa e ciascun elemento contiene
l’etichetta (accettazione o rifiuto) dello stato corrispondente; la seconda contiene, per ogni
stato e transizione, l’indice del corrispondente stato di destinazione. SSLEA implementa
una forma di hill-climbing in cui la fitness di una soluzione `e il tasso di esempi classificati
1
L’approccio evolutivo e i metodi tradizionali di classificazione sono stati forniti dal Machine Learning
Lab dell’Universit`a degli Studi di Trieste.
25
5. Valutazione sperimentale 26
correttamente. La ricerca termina qualora l’automa evoluto raggiunga la fitness perfetta
oppure dopo che siano state effettuate un numero predefinito nit di iterazioni.
Le operazioni fondamentali che occorrono nell’evoluzione dell’automa sono lo Smart
State Labeling e la mutazione. La prima implementa un algoritmo che si basa sulla
matrice di transizione e sugli esempi di addestramento, il cui impiego consente di ridurre
notevolmente lo spazio di ricerca: per ogni stato, si contano il numero p di esempi che
si vogliono siano accettati e il numero q di esempi che si vogliono siano rifiutati che
terminano nello stato stesso, dopodich´e se p > q allora lo stato viene etichettato come
d’accettazione, altrimenti viene etichettato come di rifiuto. La mutazione consiste nella
modifica casuale dell’indice di uno stato di destinazione, scelto anch’esso a caso, nella
matrice di transizione.
Nel presente lavoro `e stata modificata una versione gi`a implementata di SSLEA in
linguaggio C++ per adattarla al problema ed `e stata applicata alle φ-stringhe. Il metodo
`e stato denominato φ-SSLEA. Dopo alcune sperimentazioni esplorative, i migliori risultati
sono stati ottenuti con α = range(φ), n = 7 e nit = 5000 e tale configurazione `e stata
utilizzata nella presente valutazione. In particolare, si `e verificato sperimentalmente
che aumentare il numero nit di iterazioni disponibili, anche di molto, non porta a una
migliore accuratezza sui dati di test.
5.2 Metodi di riferimento basati sul problema
Sono stati implementati due classificatori che racchiudono una considerevole quantit`a di
conoscenza legata allo specifico problema in esame.
Il classificatore denominato Annotations-Co-occurrence classifica positivamente una
frase s se e solo se s contiene almeno due geni/proteine e un interatore—chiaramente, `e
pesantemente confezionato per questo particolare problema.
Il classificatore denominato Annotations-LLL05-patterns `e costruito a partire dai
risultati dell’articolo [13], nel quale `e proposto un metodo per identificare pattern
sintattici ad allineamento che descrivono interazioni tra geni e proteine in testi scientifici.
Un pattern ad allineamento `e descritto in termini di (i) sequenze di annotazioni POS
rilevanti che devono presentarsi in una frase, senza specifiche limitazioni sul tipo e sulla
quantit`a di ulteriori annotazioni che potrebbero essere presenti tra le annotazioni salienti;
(ii) dipendenze tra i componenti estratti, ovvero informazioni su quale gene/proteina `e
componente attivo (agente) e quale `e componente passivo (subente) nell’interazione. Si
noti che il punto ii non `e rilevante in termini di classificazione delle frasi—ma di estrazione
delle componenti di una interazione—e pertanto `e stato ignorato. Il metodo sfrutta una
considerevole quantit`a di conoscenza specifica del dominio nella calibrazione di decine di
coefficienti utilizzati per pesare gli errori commessi dai pattern, errori che sono associati
a specifiche annotazioni POS e annotazioni che rappresentano geni e interatori. Il lavoro
citato fornisce una lista dei 10 pattern ad allineamento pi`u frequenti imparati su tutto
il corpus usato nell’articolo, che `e pi`u grande di quello usato nel presente lavoro (esso
consiste di ≈ 1000 frasi). Annotations-LLL05-patterns classifica positivamente una frase
s se e solo se s `e accettata da almeno uno dei 10 pattern ad allineamento nella suddetta
27 Metodi di classificazione tradizionali
lista. Il corpus di questo lavoro `e composto, per ≈ 90%, di frasi derivate dal corpus usato
nell’articolo citato.
Entrambi i classificatori sono stati realizzati per mezzo di opportune espressioni
regolari Perl eseguite su shell Bash con il comando grep -P su φ-stringhe. Nello specifico,
Annotations-Co-occurrence `e implementato come applicazione dell’espressione regolare
G.*[JRP].*G|[JRP].*G.*G|G.*G.*[JRP] ,
la cui prima parte—ovvero ci`o che antecede l’operatore or “|”—`e espressa in annotazioni
POS (con spazi tra gli elementi per facilitare la lettura) come
GENEPTN .* [ INOUN IVERB IADJ ] .* GENEPTN .
La classificazione operata dall’unione dei 10 pattern ad allineamento, alla base di
Annotations-LLL05-patterns, `e stata implementata con l’espressione regolare
G.*R.*G|G.*J.*G|J.*G.*G ,
che accetta le φ-stringhe in cui compaiono, ordinatamente e non necessariamente in
modo consecutivo, (i) un gene/proteina, un interatore verbo e un gene/proteina, o (ii) un
gene/proteina, un interatore nome e un gene/proteina, o (iii) un interatore nome e due
geni/proteine.
5.3 Metodi di classificazione tradizionali
Sono stati utilizzati due metodi di machine learning tipicamente impiegati per la clas-
sificazione del testo [23], uno basato su Naive Bayes e l’altro su Macchine a Vettori di
Supporto (SVM 2).
I classificatori Naive Bayes sono degli strumenti addestrati in modo supervisionato che
basano il discernimento sul teorema di Bayes. Essi assumono che le feature caratterizzanti
l’istanza del problema in esame, rappresentate come punti nello spazio, seguano una
certa distribuzione di probabilit`a (ad esempio gaussiana) e siano indipendenti tra loro
(ipotesi naive). I classificatori SVM sono dei modelli di classificazione lineare, anch’essi
ad addestramento supervisionato e rappresentanti gli esempi come punti nello spazio. La
classificazione avviene definendo un iperpiano che separa le categorie in modo tale da
massimizzare il margine geometrico. Per rendere possibile la separazione lineare delle
classi, tali metodi ricorrono alla tecnica kernel trick, che consiste nel proiettare le istanze
del problema in un nuovo spazio di dimensioni maggiori in cui tipicamente esiste un
iperpiano lineare separatore.
Come anticipato, quanto segue `e stato realizzato dal Machine Learning Lab dell’Uni-
versit`a degli Studi di Trieste.
Innanzitutto `e stato effettuato il seguente pre-processamento di ogni frase s: (i) si
rimpiazza ogni occorrenza di una stringa contenuta in Dinteractors con interactor;
2
Dall’inglese Support Vector Machines
5. Valutazione sperimentale 28
(ii) si rimpiazza ogni occorrenza di una stringa contenuta in Dgenes con geneptn; (iii) si
convertono tutti i caratteri di s in minuscolo; (iv) si sostituiscono tutti i caratteri non
alfabetici (precisamente quelli che sono accettati dall’espressione regolare [ˆa-zA-Z ])
con uno spazio; (v) si esegue uno stemming su ciascuna parola, ad eccezione di geneptn
e interactor. I passi i e ii sono eseguiti al fine di sfruttare la conoscenza contenuta
nei dizionari, la quale non sarebbe altrimenti disponibile al classificatore.
Per costruire il classificatore:
1. Si costruisce un insieme ordinato W di parole composto di tutte le parole che
appaiono almeno una volta nei learning set S+
L , S−
L ;
2. Si trasforma ciascuna frase s in un vettore f in cui l’i-esimo elemento corrisponde
al numero di occorrenze in s della parola wi ∈ W;
3. Si esegue una procedura di feature selection per identificare i k elementi di f che
meglio discriminano tra le frasi appartenenti a S+
L o S−
L (si veda sotto). Sia f il
vettore ottenuto considerando solo i k elementi scelti di f —ovvero, f contiene
solo il conteggio delle occorrenze della parole selezionate nella procedura di feature
selection;
4. Infine, si addestra un classificatore binario usando i vettori f1, f2, ..., fn corrispon-
denti alle frasi s1, s2, ..., sn nei learning set S+
L , S−
L (|S+
L ∪ S−
L | = n).
Una volta costruito il classificatore, al fine di classificare una nuova frase s: (i) si pre-
processa s come descritto sopra; (ii) si ottiene il corrispondente vettore di feature f; e,
infine, (iii) si fornisce f al classificatore addestrato.
La procedura di feature selection `e basata sui vettori f = [ρ1, ..., ρm], dove ρi `e la
i-esima feature del vettore. Tale metodo necessita di due parametri k, k , con k k, e
lavora in due passi, come segue. Si consideri la matrice ottenuta prendendo come righe i
vettori f1, f2, ..., fn, ogni colonna della matrice corrisponde a una feature. Al primo passo
si calcola, per ogni i-esima ρi feature, la differenza relativa δi tra il suo valore medio sulle
frasi dei due insiemi:
δi =
1
|S+
L | S+
L
ρi − 1
|S−
L | S−
L
ρi
maxS+
L ∪S−
L
ρi
Successivamente si selezionano le k feature con maggior δi—tra quelle per le quali
maxS+
L ∪S−
L
ρi > 0. Al secondo passo si calcola, per ogni i-esima feature tra le k scelte al
passo precedente, la mutua informazione Ii con una etichetta—l’etichetta `e un valore
binario che `e positivo per gli elementi in S+
L e negativa per gli elementi in S−
L . Si scelgono
poi le k feature con la maggiore Ii.
Nel presente lavoro sono stati utilizzati due classificatori binari precedentemente
realizzati in linguaggio R secondo il metodo riportato: Words-NaiveBayes e Words-SVM.
Riguardo i parametri di feature selection k e k, si `e posto k = 1000 per entrambi i
classificatori mentre il valore di k `e stato scelto in modo da massimizzare l’accuratezza
29 Risultati
Classificatore Accuratezza FPR FNR
Annotations-Co-occurrence 77.8 40.0 4.5
Annotations-LLL05-patterns 82.3 25.0 10.5
Words-NaiveBayes 51.3 25.0 95.0
Words-SVM 73.8 29.0 23.5
φ-SSLEA 61.3 44.0 33.5
C 77.0 23.5 22.5
Tabella 5.1: Risultati percentuali del metodo proposto nel presente lavoro e dei 5 metodi di
riferimento, mediati sui 5 fold.
sui learning set, ovvero, k = 25 per Words-NaiveBayes e k = 50 per Words-SVM. Words-
NaiveBayes assume che le feature seguano una distribuzione gaussiana. Infine, riguardo
SVM, `e stato utilizzato un kernel radiale Gaussiano con parametro di costo posto a 1.
5.4 Risultati
`E stata eseguita una validazione incrociata a 5 fold, ovvero, sono state generate casual-
mente 5 diverse istanze del problema dal corpus. Per ciascuna istanza, ≈ 80% dei dati
sono stati utilizzati per l’apprendimento e ≈ 20% per il test. Nello specifico, sono stati
utilizzati i learning set S+
L , S−
L (con |S+
L | = |S−
L | = 188) per addestrare il classificatore
generato con la programmazione genetica C, φ-SSLEA, Words-NaiveBayes e Words-SVM;
mentre `e stata valutata l’accuratezza di tutti i metodi di classificazione su due insiemi
di test (testing set) S+
T , S−
T (con |S+
T | = |S−
T | = 40), distinti dai precedenti. Sono stati
utilizzati gli stessi learning set e testing set per tutti i metodi considerati.
La Tabella 5.1 mostra i risultati ottenuti dai 6 metodi. I risultati sono espressi in
accuratezza, FPR e FNR, mediati sui 5 fold.
Si pu`o osservare che il classificatore C `e quello che ottiene la maggiore accuratezza
(77%) tra i 4 metodi che addestrano un classificatore solo a partire dagli esempi e dai
dizionari—ovvero, senza alcun indizio relativo allo specifico problema. In altre parole si
`e dimostrato che la programmazione genetica `e di fatto in grado di dedurre pattern da
esempi, anche in scenari di elaborazione del linguaggio naturale di interesse pratico.
Le accuratezze dei metodi di riferimento basati sullo specifico problema sono del 82.3%
e 77.8% per Annotations-LLL05-patterns e Annotations-Co-occurrence, rispettivamente.
I buoni risultati ottenuti da questi classificatori non sono sorprendenti se si considera
che tali metodi sono basati su una considerevole quantit`a di conoscenza relativa al
problema, come spiegato precedentemente nella Sezione 5.2. Inoltre, l’accuratezza di
Annotations-Co-occurrence `e solo di poco migliore di quella di C.
`E interessante notare che la accuratezza ottenuta da φ-SSLEA `e di molto peggiore ri-
spetto a quella ottenuta dal classificatore generato con GP, nonostante i due approcci siano
basati su strumenti simili—apprendimento evoluzionistico di DFA contro apprendimento
evoluzionistico di insiemi di espressioni regolari. Sebbene questo risultato possa apparire
piuttosto insolito—come detto, φ-SSLEA `e derivato da una metodologia considerata allo
5. Valutazione sperimentale 30
r1 = G[ˆo][ˆc3G]++G[ˆzfcB][ˆzc]
r2 = .JiG.[ˆf9]
r1 = GENEPTN [ ˆ RB ] [ ˆ NNS VBN GENEPTN ] ++
GENEPTN [ ˆ ( DT NNS RRB ] [ ˆ ( NNS ]
r2 = . INOUN IN GENEPTN . [ ˆ DT NN ]
Figura 5.1: Un esempio di classificatore generato con GP composto da due espressioni regolari,
mostrate sia nella loro forma originale con i simboli in U (sopra), sia usando le annotazioni (sotto).
Nelle epressioni con annotazioni sono stati inseriti degli spazi fra gli elementi per facilitare la
lettura.
stato dell’arte nell’addestramento di DFA—`e presumibile che ci`o sia dovuto al fatto che i
problemi di benchmark tipici del DFA learning considerano brevi sequenze di simboli
binari, con dati di addestramento presi uniformemente dallo spazio di input. Scenari di
questo genere non calzano le problematiche di applicazioni NLP di interesse pratico, in cui
si devono affrontare sequenze di simboli molto pi`u lunghe, alfabeti di dimensioni maggiori,
dati non presi uniformemente dallo spazio di tutte le possibili sequenze. Questa possibile
interpretazione `e avvalorata dalle recenti affermazioni di diversi autori: i problemi di
benchmark per DFA learning non sono ispirati da applicazioni di interesse pratico [8] e
l’applicabilit`a dei corrispondenti algoritmi di addestramento ad altri domini applicativi `e
ancora un argomento largamente inesplorato [4].
La Figura 5.1 mostra uno dei classificatori ottenuti con GP negli esperimenti effettuati,
composto di due espressioni regolari. Al fine di facilitare la comprensione, sono riportate
anche le epressioni utilizzando le annotazioni (A ) oltre che i simboli di U. Si pu`o osservare
che le espressioni includono annotazioni salienti (GENEPTN e INOUN) nonostante ad esse
non sia stato attribuito un peso speciale nel meccanismo evolutivo. I due pattern non
risultano di facile lettura, il che non `e sorprendente poich´e non `e stato implementato alcun
meccanismo per l’agevolazione di individui rappresentanti espressioni regolari leggibili
(tale aspetto rappresenta un possibile obiettivo da perseguire per lavori futuri).
Capitolo 6
Ulteriori esperimenti
Nel presente capitolo sono descritti ulteriori esperimenti eseguiti con variazioni dell’algo-
ritmo φ-SSLEA e con variazioni del metodo GP. I risultati sono sempre riferiti ad una
media su 5 fold, analogamente a quanto descritto nella Sezione 5.4.
6.1 Ulteriori esperimenti con φ-SSLEA
Il classificatore ottenuto con l’algoritmo evolutivo φ-SSLEA raggiunge il 61.3% di accura-
tezza sui dati di test, con parametri n = 7 (stati dell’automa) e nit = 5000 (iterazioni).
Come riportato nella Sezione 5.1, si `e verificato che aumentare il numero di iterazioni
non porta ad un aumento dell’accuratezza.
La Figura 6.1 mostra le prestazioni degli automi ottenuti fissando n = 7 e variando il
numero di iterazioni effettuate dall’algoritmo evolutivo. In particolare, con 1000 e 10000
iterazioni si ottiene, in entrambi i casi, un’accuratezza pari al 60.8%.
La Figura 6.2 mostra invece i risultati per automi generati con nit = 5000 e variando
il numero stati. Sono rilevanti i risultati ottenuti con 5 e 8 stati, per i quali l’accuratezza
`e rispettivamente del 61.0% e 59.5%.
6.2 Ulteriori esperimenti con GP
Analogamente a quanto effettuato per il metodo φ-SSLEA, sono stati condotti diversi
esperimenti con i classificatori ottenuti per GP al variare dei parametri evolutivi. Si `e
osservato, ad esempio, il diverso comportamento di classificazione influendo sul numero
di individui nella popolazione iniziale npop, sul numero di generazioni ngen e sul numero
di esecuzioni indipendenti njob.
Sono discussi di seguito due esperimenti particolarmente rilevanti, relativi ad una
differente metodologia evolutiva, piuttosto che alla mera messa a punto di alcun parametri.
Essi sono (i) l’esperimento w/o separate-and-conquer e (ii) l’esperimento full precision. Il
primo conduce una procedura priva del metodo separate-and-conquer, ovvero la ricerca
31
6. Ulteriori esperimenti 32
0
10
20
30
40
50
60
70
500 1000 5000 10 000 25 000
Prestazioni%
Iterazioni
Accuratezza
FPR
FNR
Figura 6.1: Prestazioni di φ-SSLEA con n = 7 e nit variabile.
0
10
20
30
40
50
60
70
3 4 5 6 7 8 9 10
Prestazioni%
Stati
Accuratezza
FPR
FNR
Figura 6.2: Prestazioni di φ-SSLEA con n variabile e nit = 5000.
33 Ulteriori esperimenti con GP
GP viene eseguita una sola volta e da essa si ottiene un’unica espressione regolare,
addestrata su tutti i dati dei training set X+ e X−. Dal punto di vista implementativo,
`e sufficiente porre nstop ≥ ngen per ottenere tale comportamento. Il secondo esperimento
mira a produrre un classificatore ad alta precisione ed `e stato implementato utilizzando
la fitness
f(r) := (FPR(r, X−
), FNR(r, X+
), (r))
e imponendo τFPR = 1. La fitness f e l’ordinamento applicato—sulla dominanza di
Pareto prima, lessicografico poi—promuovono individui che rappresentano espressioni
regolari tali da accettare pochi esempi negativi, mentre la soglia τFPR = 1 impone che
il metodo separate-and-conquer venga effettuato solo se il miglior individuo r, rimasto
immutato per nstop generazioni, `e tale che FPR(r, X−) = 0.
La Figura 6.3 riporta i risultati in termini di accuratezza, FPR e FNR, relativi agli
esperimenti i e ii, confrontati con l’esito del metodo “standard” esplicato nel Capitolo 3.
Osservando gli istogrammi si possono trarre le seguenti conclusioni:
(i) `e presumibile che le prestazioni di w/o separate-and-conquer siano inferiori rispetto
a quelle di standard perch´e il primo affronta l’intero problema con un solo pattern,
mentre il problema stesso `e intrinsecamente multi-pattern;
(ii) sebbene full precision sia migliore di standard in termini di FPR, l’eccessiva pressione
evolutiva sulla precisione porta il metodo ad ottenere un pessimo tasso FNR.
6. Ulteriori esperimenti 34
0
10
20
30
40
50
60
70
80
standard w/o s&c full precision
Prestazioni%
Metodi
Accuratezza
FPR
FNR
Figura 6.3: Prestazioni dei classificatori GP ottenuti con metodo standard, w/o separate-and-
conquer e full precision.
Capitolo 7
Conclusioni
Nel presente lavoro di tesi `e stato presentato un metodo evolutivo per generare pattern
sintattici a partire da esempi testuali espressi in linguaggio naturale. Il metodo `e stato
applicato ad un problema tanto interessante quanto arduo: la classificazione di frasi
presenti in articoli scientifici del dominio biomedico. In particolare, la classificazione
effettuata `e binaria e discerne tra frasi che contegono almeno una interazione tra geni e
proteine e frasi che non ne contengono alcuna.
Il metodo proposto si basa sulla programmazione genetica e trae spunto da recenti studi
riguardo la generazione automatica di espressioni regolari da esempi del comportamento
desiderato. `E stata inoltre studiata e applicata una tecnica per rappresentare le frasi come
stringhe di simboli, le quali possono essere manipolate da comuni espressioni regolari.
I simboli corrispondono ad annotazioni POS estese utilizzando dizionari relativi allo
specifico problema. Lavorare al livello d’astrazione di annotazioni comporta diversi
vantaggi pratici, tra i quali la modularit`a e la possibilit`a di sfruttare strumenti di
annotazione considerati allo stato dell’arte, costantemente aggiornati. Il numero di
pattern da generare a partire da un insieme di frasi d’esempio non `e noto priori, bens`ı
viene determinato automaticamente attraverso la procedura separate-and-conquer, che
scompone il problema in sottoproblemi pi`u semplici.
Il metodo `e stato valutato su un corpus di 456 frasi etichettate a mano e confrontato
con 5 metodi di riferimento significativi. Le prestazioni di classificazione sono risultate le
migliori tra quelle dei metodi ad apprendimento. I buoni risultati ottenuti indicano che
la programmazione genetica `e effettivamente in grado di imparare pattern sintattici a
partire da esempi, anche in scenari dell’elaborazione del linguaggio naturale di interesse
pratico.
`E presumibile che il metodo sviluppato e i risultati conseguiti possano essere miglio-
rati con l’impiego di ulteriori fonti di informazione applicate al corpus di frasi e una
modellizzazione pi`u espressiva del problema. Infatti, impiegare strumenti capaci di estrar-
re particolari informazioni semantiche da una frase, come ad esempio l’identificazione
di entit`a e l’albero di dipendenze logiche tra le parole, potrebbe aiutare la capacit`a
discernitiva del classificatore. Sarebbe inoltre opportuno valutare l’impiego di modelli pi`u
35
7. Conclusioni 36
espressivi delle espressioni regolari [7], da rappresentare opportunamente come individui
del processo di programmazione genetica.
Bibliografia
[1] A. Bartoli, G. Davanzo, A. De Lorenzo, M. Mauri, E. Medvet, E. Sorio. Automatic
generation of regular expressions from examples with genetic programming. In
Proceedings of the fourteenth international conference on Genetic and evolutionary
computation conference companion, pagine 1477–1478. ACM, 2012. [citato a p. 9]
[2] A. Bartoli, G. Davanzo, A. De Lorenzo, E. Medvet, E. Sorio. Automatic synthesis
of regular expressions from examples. Computer, 47:72–80, 2014. [citato a p. 1, 9]
[3] A. Bartoli, A. De Lorenzo, E. Medvet, F. Tarlao. Learning text patterns using
separate-and-conquer genetic programming. In 18-th European Conference on
Genetic Programming (EuroGP), 2015. [citato a p. 10]
[4] J. Bongard H. Lipson. Active coevolutionary learning of deterministic finite automata.
The Journal of Machine Learning Research, 6:1651–1678, 2005. [citato a p. 35]
[5] M. Bundschus, M. Dejori, M. Stetter, V. Tresp, H.-P. Kriegel. Extraction of semantic
biomedical relations from text using conditional random fields. BMC Bioinformatics,
9(1):207, 2008. [citato a p. 1]
[6] E. K. Burke, S. Gustafson, G. Kendall. Diversity in genetic programming: An
analysis of measures and correlation with fitness. Evolutionary Computation, IEEE
Transactions on, 8(1):47–62, 2004. [citato a p. 18]
[7] A. X. Chang C. D. Manning. Tokensregex: Defining cascaded regular expressions
over tokens. Technical report, Technical Report CSTR 2014-02, Department of
Computer Science, Stanford University, 2014. [citato a p. 42]
[8] O. Cicchello S. C. Kremer. Inducing grammars from sparse data sets: a survey of
algorithms and results. The Journal of Machine Learning Research, 4:603–632, 2003.
[citato a p. 29, 34]
[9] E. D. De Jong J. B. Pollack. Multi-objective methods for tree size control. Genetic
Programming and Evolvable Machines, 4(3):211–233, 2003. [citato a p. 16, 18]
37
BIBLIOGRAFIA 38
[10] J. Friedl. Mastering regular expressions. O’Reilly Media, Inc., 2006. [citato a p. 7]
[11] K. Fundel, R. K¨uffner, R. Zimmer. Relex—relation extraction using dependency
parse trees. Bioinformatics, 23(3):365–371, 2007. [citato a p. 1, 3]
[12] S. Gupta, D. L. MacLean, J. Heer, C. D. Manning. Induced lexico-syntactic patterns
improve information extraction from online medical forums. Journal of the American
Medical Informatics Association, 21(5):902–909, 2014. [citato a p. 1, 3, 4]
[13] J. Hakenberg, C. Plake, U. Leser, H. Kirsch, D. Rebholz-Schuhmann. LLL’05
challenge: Genic interaction extraction-identification of language patterns based on
alignment and finite state automata. In Proceedings of the 4th Learning Language
in Logic workshop (LLL05), pagine 38–45, 2005. [citato a p. 1, 3, 4, 30]
[14] J. Kasprzak, M. Brandejs, et al. Improving the reliability of the plagiarism detection
system. Notebook Papers of CLEF, 2010. [citato a p. 4]
[15] S. Kleene. Representation of events in neuron networks and finite automata.
Automata studies, Princeton, 1956. [citato a p. 7]
[16] J. R. Koza. Genetic Programming: On the Programming of Computers by Means
of Natural Selection. pagine 93–94, 1992. [citato a p. 17]
[17] S. Kulick, A. Bies, M. Liberman, M. Mandel, R. McDonald, M. Palmer, A. Schein,
L. Ungar, S. Winters, P. White. Integrated annotation for biomedical information
extraction. In Proc. of HLT/NAACL, pagine 61–68, 2004. [citato a p. 1]
[18] K. J. Lang, B. A. Pearlmutter, R. A. Price. Results of the abbadingo one DFA learning
competition and a new evidence-driven state merging algorithm. In Grammatical
Inference, pagine 1–12. Springer, 1998. [citato a p. 29]
[19] W. Langdon M. Harman. Optimizing existing software with genetic program-
ming. Evolutionary Computation, IEEE Transactions on, 19(1):118–135, Feb 2015.
[citato a p. 18]
[20] J. Li, Z. Zhang, X. Li, H. Chen. Kernel-based learning for biomedical relation
extraction. Journal of the American Society for Information Science and Technology,
59(5):756–769, 2008. [citato a p. 1]
[21] S. M. Lucas T. J. Reynolds. Learning deterministic finite automata with a smart
state labeling evolutionary algorithm. IEEE Transactions on Pattern Analysis and
Machine Intelligence, 27(7):1063–1074, 2005. [citato a p. 29]
[22] H. Poon, C. Quirk, C. DeZiel, D. Heckerman. Literome: Pubmed-scale genomic
knowledge base in the cloud. Bioinformatics, 2014. [citato a p. 1]
[23] F. Sebastiani. Machine learning in automated text categorization. ACM computing
surveys (CSUR), 34(1):1–47, 2002. [citato a p. 31]
39 BIBLIOGRAFIA
[24] M. Volk, B. Ripplinger, ˇS. Vintar, P. Buitelaar, D. Raileanu, B. Sacaleanu. Se-
mantic annotation for concept-based cross-language medical information retrieval.
International Journal of Medical Informatics, 67(1):97–112, 2002. [citato a p. 1]
[25] A. Yakushiji, Y. Miyao, T. Ohta, Y. Tateisi, J. Tsujii. Automatic construction
of predicate-argument structure patterns for biomedical information extraction.
In Proceedings of the 2006 Conference on Empirical Methods in Natural Langua-
ge Processing, pagine 284–292. Association for Computational Linguistics, 2006.
[citato a p. 1]
[26] L. Yao, C.-J. Sun, X.-L. Wang, X. Wang. Relationship extraction from biomedical
literature using maximum entropy based on rich features. In Machine Learning
and Cybernetics (ICMLC), 2010 International Conference on, volume 6, pagine
3358–3361, July 2010. [citato a p. 1]
Ringraziamenti
Apriamo le danze.
Ringrazio in primis il buon Dio della religione pseudocristiana in cui credo. Senza di
Lui tutto non sarebbe stato possibile. Proprio tutto.
Ringrazio i miei genitori, che hanno foraggiato i miei studi e il mio stomaco: una
spesa notevole. Solo il tempo potr`a rivelarci se tale scelta sia stata oculata o meno. Due
brave e oneste persone, non tutti sono fortunati quanto me. Un grazie soprattutto per
l’educazione e l’affetto datomi. Spero che questo mio traguardo possa in parte ripagare
lo sforzo che hanno sostenuto.
Ringrazio tutti gli altri familiari che hanno concorso a darmi affetto e incoraggiarmi
durante questo percorso. Non dimentico Ottavia, la cui luce si `e purtroppo spenta durante
il percoso universitario, perch´e so che mi `e stata e mi star`a sempre accanto.
Ringrazio inoltre tutte le persone che, per qualche motivo, mi vogliono bene e mi
sono state vicine.
Ringrazio i miei amici, sia i belli quasi-quanto-me, sia i brutti e i molto brutti, per
tutte le attivit`a extra-universitarie che hanno concorso a mantenere integra la mia sanit`a
mentale. Ringrazio anche Daniele, compagno di intense sessioni di programmazione
per sviluppare app di successo al limite della legalit`a, che non rientra nelle categorie
sopracitate in quanto palesemente pi`u bello (e pi`u intelligente) di me.
Ringrazio i volontari del Burlo, di cui sono diventato membro negli ultimi mesi, perch´e
cercano di portare un sorriso ai bimbi malati e un conforto alle famiglie di queste piccole
anime. Un nobile intento. L’opportunit`a di partecipare a questo volontariato `e una delle
cose che considero pi`u importanti. Keep up the good work.
Ringrazio Rossella per l’aiuto a scrivere il seguente paragrafo in friulano.
O ringracii il professor Alberto Bartoli che al a permetˆut di puart`a indenant cheste
tesi. Cun di plui che al `e stˆat un otim insegnant e relatˆor, o pensi che al sedi ancje
une grande persone. In ogni cˆas, cemˆut che si use d`ı, “Chi di schiena e chi di petto,
tutti abbiam qualche difetto”: al `e un vˆer pecj`at che nol sedi bon di preseˆa le gloriose
marilenghe furlane. Pi`u seriamente: una grande, grande persona, di cui ho tanta, tanta
stima. Non ha senso fare complimenti sul campo professionale, sarebbero ridondanti
41
Ringraziamenti 42
dopo che `e stata riconosciuta la sua supremazia come miglior docente... xe proprio cos`ı
ci`o dei.
Ringrazio Eric. Nonostante la giovine et`a, un capacissimo docente. Ottimi sugge-
rimenti dovuti ad una grande creativit`a, risposta e battuta sempre pronta1. Inoltre, `e
sempre il migliore in qualsivoglia disciplina—a patto di restringere opportunamente il
subset.
Ringrazio Andrea. Un postdoc di cui francamente invidio le capacit`a e le conoscenze.
Grazie a lui mi sento un po’ meno capra. Tuttavia, ci tengo a precisare che non lo
ringrazio affatto per i metodi di approccio fallimentari che mi ha suggerito con le ragazze:
il “lui non verr`a” `e stato uno dei miei flop peggiori. E non lo ringrazio nemmeno per
aver sabotato il “posto della merenda di Marco”.
Ringrazio Fabiano. Oh sapiente dottorando, a lui, antico saggio, dedico i miei
ringratiamenti in modo s`ı aulico, poich´e da altre e lontane epoche ello giunge a noi et
ergo merita le miliori vocationi! Con la sua snervante pazienza e irritante riflessivit`a mi
ha aiutato pi`u volte a trovare il bandolo della matassa, mentre io modificavo casualmente
righe di codice2, in preda allo sclero pi`u totale. Come per Andrea, non lo posso ringraziare
per i consigli con le donne.
Possa il MaLe Lab continuare a produrre conoscenza scientifica e spadroneggiare negli
alti piani del C3.
Un pensiero va poi a chi, putroppo, ci ha lasciato proprio durante questa esperienza.
In effetti nessuno si aspettava che potesse durare molto e cos`ı `e tristemente stato. Certo
i segni della malattia c’erano, ha avuto spesso problemi. Ci siamo conosciuti appena, ma
so che rester`a nel mio cuore.
Caro Odyssey, R.I.P. (Riposa In Pezzi).
1
Purtroppo la quantit`a di battute `e spesso compensata dalla qualit`a delle stesse.
2
In realt`a mi ispiravo a GP: generare tante soluzioni casuali e poi scegliere la migliore, con fitness
f = “forse cos`ı funziona”. Anzich´e crossover, facevo cross-fingers.
43 Ringraziamenti
Ultimo ma non ultimo, ringrazio me stesso. Sono soddisfatto dell’impegno profuso e
di come io sia cresciuto professionalmente e umanamente in questi anni. Bravo Marco,
sono fiero di me.

Contenu connexe

Similaire à Classificazione di frasi in linguaggio naturale per il riconoscimento di interazioni tra geni e proteine con tecniche di Machine Learning

Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010Stefano Bragaglia
 
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...Simone Cumar
 
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...mfurlanetto
 
Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...
Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...
Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...Danny Tagliapietra
 
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...Nicola Timeus
 
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - TesiAnalisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - TesiMicheleDamian
 
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Davide Bravin
 
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...Università degli Studi di Trieste
 
Extended summary of code building genetic programming
Extended summary of code building genetic programmingExtended summary of code building genetic programming
Extended summary of code building genetic programmingMartinaMaione1
 
Analisi delle differenze strutturali nelle espressioni regolari costruite da ...
Analisi delle differenze strutturali nelle espressioni regolari costruite da ...Analisi delle differenze strutturali nelle espressioni regolari costruite da ...
Analisi delle differenze strutturali nelle espressioni regolari costruite da ...Marco Potok
 
Applicazioni intelligenzaartificiale
Applicazioni intelligenzaartificialeApplicazioni intelligenzaartificiale
Applicazioni intelligenzaartificialeAntonella79
 
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...daniel_zotti
 
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...fcecutti
 
(E book ita) java introduzione alla programmazione orientata ad oggetti in ...
(E book ita) java   introduzione alla programmazione orientata ad oggetti in ...(E book ita) java   introduzione alla programmazione orientata ad oggetti in ...
(E book ita) java introduzione alla programmazione orientata ad oggetti in ...Raffaella D'angelo
 
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Francesco Komauli
 
Openfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistemsOpenfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistemsLorenzo Stacchio
 
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...Filippo Muscolino
 

Similaire à Classificazione di frasi in linguaggio naturale per il riconoscimento di interazioni tra geni e proteine con tecniche di Machine Learning (20)

Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
 
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
 
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
 
Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...
Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...
Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...
 
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo e...
 
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - TesiAnalisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
 
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
 
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
 
Extended summary of code building genetic programming
Extended summary of code building genetic programmingExtended summary of code building genetic programming
Extended summary of code building genetic programming
 
Analisi delle differenze strutturali nelle espressioni regolari costruite da ...
Analisi delle differenze strutturali nelle espressioni regolari costruite da ...Analisi delle differenze strutturali nelle espressioni regolari costruite da ...
Analisi delle differenze strutturali nelle espressioni regolari costruite da ...
 
tesi
tesitesi
tesi
 
Applicazioni intelligenzaartificiale
Applicazioni intelligenzaartificialeApplicazioni intelligenzaartificiale
Applicazioni intelligenzaartificiale
 
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
 
TesiEtta
TesiEttaTesiEtta
TesiEtta
 
Prova Tesi
Prova TesiProva Tesi
Prova Tesi
 
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
 
(E book ita) java introduzione alla programmazione orientata ad oggetti in ...
(E book ita) java   introduzione alla programmazione orientata ad oggetti in ...(E book ita) java   introduzione alla programmazione orientata ad oggetti in ...
(E book ita) java introduzione alla programmazione orientata ad oggetti in ...
 
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
 
Openfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistemsOpenfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistems
 
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
 

Plus de Marco Virgo

Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...
Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...
Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...Marco Virgo
 
Presentazione sviluppo di un'applicazione windows phone 7.5 per la visualizza...
Presentazione sviluppo di un'applicazione windows phone 7.5 per la visualizza...Presentazione sviluppo di un'applicazione windows phone 7.5 per la visualizza...
Presentazione sviluppo di un'applicazione windows phone 7.5 per la visualizza...Marco Virgo
 
Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...
Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...
Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...Marco Virgo
 
12 classifica palio
12 classifica palio12 classifica palio
12 classifica palioMarco Virgo
 
Graph classifica borghi 11
Graph classifica borghi 11Graph classifica borghi 11
Graph classifica borghi 11Marco Virgo
 
11 classifica borghi
11 classifica borghi11 classifica borghi
11 classifica borghiMarco Virgo
 
10 classifica palio
10 classifica palio10 classifica palio
10 classifica palioMarco Virgo
 
9 classifica borghi
9 classifica borghi9 classifica borghi
9 classifica borghiMarco Virgo
 
8 classifica borghi
8 classifica borghi8 classifica borghi
8 classifica borghiMarco Virgo
 
7 classifica borghi
7 classifica borghi7 classifica borghi
7 classifica borghiMarco Virgo
 
Classifica Generale Palio 7
Classifica Generale Palio 7Classifica Generale Palio 7
Classifica Generale Palio 7Marco Virgo
 
classifica borghi
classifica borghiclassifica borghi
classifica borghiMarco Virgo
 
VI Giorno Classifica Palio
VI Giorno Classifica PalioVI Giorno Classifica Palio
VI Giorno Classifica PalioMarco Virgo
 
giorno 3 classifica borghi
giorno 3 classifica borghigiorno 3 classifica borghi
giorno 3 classifica borghiMarco Virgo
 
Regolamento Giochi Palio
Regolamento Giochi PalioRegolamento Giochi Palio
Regolamento Giochi PalioMarco Virgo
 
Regolamento giochi
Regolamento giochiRegolamento giochi
Regolamento giochiMarco Virgo
 
Regolamento Giochi
Regolamento GiochiRegolamento Giochi
Regolamento GiochiMarco Virgo
 
Regolamenti giochi
Regolamenti giochiRegolamenti giochi
Regolamenti giochiMarco Virgo
 

Plus de Marco Virgo (20)

Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...
Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...
Classificazione di frasi in linguaggio naturale per il riconoscimento di inte...
 
Presentazione sviluppo di un'applicazione windows phone 7.5 per la visualizza...
Presentazione sviluppo di un'applicazione windows phone 7.5 per la visualizza...Presentazione sviluppo di un'applicazione windows phone 7.5 per la visualizza...
Presentazione sviluppo di un'applicazione windows phone 7.5 per la visualizza...
 
Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...
Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...
Sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati ...
 
14 borghi
14 borghi14 borghi
14 borghi
 
13 borghi
13 borghi13 borghi
13 borghi
 
12 classifica palio
12 classifica palio12 classifica palio
12 classifica palio
 
Graph classifica borghi 11
Graph classifica borghi 11Graph classifica borghi 11
Graph classifica borghi 11
 
11 classifica borghi
11 classifica borghi11 classifica borghi
11 classifica borghi
 
10 classifica palio
10 classifica palio10 classifica palio
10 classifica palio
 
9 classifica borghi
9 classifica borghi9 classifica borghi
9 classifica borghi
 
8 classifica borghi
8 classifica borghi8 classifica borghi
8 classifica borghi
 
7 classifica borghi
7 classifica borghi7 classifica borghi
7 classifica borghi
 
Classifica Generale Palio 7
Classifica Generale Palio 7Classifica Generale Palio 7
Classifica Generale Palio 7
 
classifica borghi
classifica borghiclassifica borghi
classifica borghi
 
VI Giorno Classifica Palio
VI Giorno Classifica PalioVI Giorno Classifica Palio
VI Giorno Classifica Palio
 
giorno 3 classifica borghi
giorno 3 classifica borghigiorno 3 classifica borghi
giorno 3 classifica borghi
 
Regolamento Giochi Palio
Regolamento Giochi PalioRegolamento Giochi Palio
Regolamento Giochi Palio
 
Regolamento giochi
Regolamento giochiRegolamento giochi
Regolamento giochi
 
Regolamento Giochi
Regolamento GiochiRegolamento Giochi
Regolamento Giochi
 
Regolamenti giochi
Regolamenti giochiRegolamenti giochi
Regolamenti giochi
 

Classificazione di frasi in linguaggio naturale per il riconoscimento di interazioni tra geni e proteine con tecniche di Machine Learning

  • 1. UNIVERSIT`A DEGLI STUDI DI TRIESTE Dipartimento di Ingegneria e Architettura Corso di Laurea Magistrale in Ingegneria Informatica Tesi di Laurea in Reti di Calcolatori II Classificazione di frasi in linguaggio naturale per il riconoscimento di interazioni tra geni e proteine con tecniche di Machine Learning LAUREANDO RELATORE Marco Virgolin prof. Alberto Bartoli CORRELATORI prof. Eric Medvet dott. Andrea De Lorenzo dott. Fabiano Tarlao Anno Accademico 2013/2014
  • 2.
  • 3. Indice 1 Introduzione 1 2 Scenario 3 2.1 Scopo del lavoro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Aspetti utili di NLP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Fondamentali di GP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.4 Richiami su DFA ed espressioni regolari . . . . . . . . . . . . . . . . . . . 6 3 Classificatore GP 9 3.1 Rappresentazione delle frasi . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2 Generazione di una espressione regolare . . . . . . . . . . . . . . . . . . . 11 3.3 Generazione del classificatore . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.4 Modifiche effettuate a Regex Turtle . . . . . . . . . . . . . . . . . . . . . . 19 4 Dataset 21 4.1 Dataset utilizzato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.2 Dataset BC e GI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.3 Dettagli sulla generazione di φ-stringhe . . . . . . . . . . . . . . . . . . . 25 4.4 Costruzione del dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.5 Dettagli implementativi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5 Valutazione sperimentale 29 5.1 Algoritmo evolutivo per la generazione di DFA . . . . . . . . . . . . . . . 29 5.2 Metodi di riferimento basati sul problema . . . . . . . . . . . . . . . . . . 30 5.3 Metodi di classificazione tradizionali . . . . . . . . . . . . . . . . . . . . . 31 5.4 Risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6 Ulteriori esperimenti 37 6.1 Ulteriori esperimenti con φ-SSLEA . . . . . . . . . . . . . . . . . . . . . . 37 6.2 Ulteriori esperimenti con GP . . . . . . . . . . . . . . . . . . . . . . . . . 37 i
  • 4. INDICE ii 7 Conclusioni 41 Bibliografia 43 Ringraziamenti 47
  • 5. Elenco delle figure 2.1 Tokenization e POS tagging applicate ad una frase. . . . . . . . . . . . . . 5 2.2 Funzionamento tipico della programmazione genetica. . . . . . . . . . . . 6 2.3 Esempio di DFA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 Esempio di espressione regolare. . . . . . . . . . . . . . . . . . . . . . . . . 8 3.1 Trasformazione di una frase in φ-stringa. . . . . . . . . . . . . . . . . . . . 10 3.2 Albero rappresentante una espressione regolare. . . . . . . . . . . . . . . . 15 5.1 Esempio di classificatore generato con GP. . . . . . . . . . . . . . . . . . . 35 6.1 Prestazioni di φ-SSLEA con n = 7 e nit variabile. . . . . . . . . . . . . . . 38 6.2 Prestazioni di φ-SSLEA con n variabile e nit = 5000. . . . . . . . . . . . . 38 6.3 Prestazioni di tre diversi classificatori GP. . . . . . . . . . . . . . . . . . . 40 iii
  • 6.
  • 7. Elenco delle tabelle 3.1 Porzioni dei due dizionari di geni/proteine e interatori. . . . . . . . . . . . 12 3.2 Lista parziale delle annotazioni utilizzate. . . . . . . . . . . . . . . . . . . 13 4.1 Alcune frasi del corpus utilizzato negli esperimenti. . . . . . . . . . . . . . 22 5.1 Risultati del metodo proposto nel presente lavoro e dei metodi di riferimento. 34 v
  • 8.
  • 9. Capitolo 1 Introduzione Lo studio di tecniche per l’estrazione automatica di informazioni da testi scritti `e un argomento di enorme interesse, sia nella comunit`a scientifica, sia dal punto di vista delle applicazioni tecnologiche. L’estrazione automatica di conoscenza inerente la ricerca biomedica, in particolare, `e uno degli ambiti in cui queste tecniche devono affrontare molte sfide importanti [24, 17, 25, 5, 26, 22, 12]. Uno dei problemi maggiormente rilevanti in questo scenario consiste nella costruzione automatica di descrizioni sistematiche e strutturate di osservazioni di interesse biomedico riportate nella letteratura scientifica [13, 11, 20]. Il presente lavoro di tesi riguarda l’identificazione automatica di frasi contenenti interazioni tra geni e proteine in articoli scientifici, utilizzando tecniche di Machine Learning quali l’elaborazione del linguaggio naturale e la programmazione genetica. I dati a disposizione sono un dizinario di geni, proteine e interatori1 e un piccolo insieme di frasi d’esempio [5, 26, 22]. La difficolt`a del problema `e determinata dal fatto che la mera occorrenza di parole del dizionario in una frase non implica che quest’ultima contenga una interazione (si veda la Tabella 4.1). L’approccio descritto in questo documento prevede l’utilizzo della programmazione genetica per generare un modello dei pattern sintattici corrispondenti alle sole frasi che contengono interazioni tra geni/proteine. I pattern sono implementati tramite espressioni regolari su annotazioni part-of-speech (POS) rappresentanti l’analisi grammaticale delle relative parole. In particolare, la costruzione di espressioni regolari viene realizzata traendo spunto da recenti proposte [2], mentre l’impiego delle annotazioni permette di affrontare il problema ad un pi`u alto livello di astrazione e comporta vantaggi pratici notevoli: (i) `e possibile basare il lavoro su annotatori gi`a esistenti, considerati allo stato dell’arte nel campo dell’elaborazione del linguaggio naturale, ed (ii) `e sufficiente cambiare annotatore per affrontare testo espresso in una lingua diversa o per includere gli ultimi progressi sviluppati nella tecnologia, senza dover apportare alcuna modifica al framework. 1 Con “interatore” si intende una parola che descrive il tipo di interazione che avviene tra due geni/proteine. 1
  • 10. 1. Introduzione 2 Le prestazioni della classificazione operata dal metodo sono state valutate su un dataset di frasi estratte da articoli scientifici biomedici e sono state confrontate con quelle di alcuni importanti metodi di riferimento. I risultati ottenuti consentono di affermare che il classificatore generato per mezzo della programmazione genetica `e di fatto in grado di apprendere pattern sintattici in uno scenario di elaborazione del linguaggio naturale di interesse pratico. Il lavoro `e stato condotto presso il Machine Learning Lab dell’Universit`a degli Studi di Trieste, perseguendo i seguenti obiettivi tattici: 1. studio delle basi della programmazione genetica, di alcuni aspetti dell’elaborazione del linguaggio naturale e di articoli rilevanti a riguardo; 2. studio delle tecnologie e degli strumenti a disposizione; 3. progettazione e sviluppo di modifiche da effettuare al motore evolutivo fornito dal laboratorio per poter generare un classificatore; 4. generazione del dataset per gli esperimenti; 5. valutazione sperimentale e confronto con risultati ottenuti utilizzando metodi di classificazione di riferimento. In particolare, l’algoritmo evolutivo per la generazione del classificatore `e stato imple- mentato in linguaggio Java, modificando il preesistente motore Regex Turtle, capace di generare espressioni regolari a partire da esempi. Per quanto concerne i capitoli successivi, il capitolo Scenario introduce lo scopo del lavoro e richiama elementi dell’informatica discussi in seguito; il capitolo Classificatore GP esplica il processo di programmazione genetica utilizzato per generare il classificatore; il capitolo Dataset descrive la costruzione del dataset utilizzato per gli esperimenti; il capitolo Valutazione sperimentale tratta i metodi di riferimento utilizzati e i risultati ottenuti; il capitolo Ulteriori esperimenti discute ulteriori esperimenti effettuati modi- ficando alcuni aspetti di due metodi trattati; infine, il capitolo Conclusioni riporta un sunto di quanto discusso e alcune considerazioni finali.
  • 11. Capitolo 2 Scenario In questo capitolo `e descritto lo scopo del presente lavoro e sono riportati richiami di concetti trattati, utili a facilitare la lettura dei capitoli successivi. Nello specifico, vengono descritti alcuni aspetti di interesse dell’elaborazione del linguaggio naturale (NLP1), si introducono i concetti fondamentali della programmazione genetica (GP2) e si richiamano gli automi deterministici a stati finiti e le espressioni regolari. 2.1 Scopo del lavoro Lo scopo del presente lavoro consta nella generazione di un classificatore C che, data una frase s espressa in linguaggio naturale, effettui una classificazione binaria rappresentativa del fatto che s contenga o meno almeno una interazione tra un gene e una proteina, o tra un gene e un gene, o tra una proteina e una proteina (per brevit`a, con la locuzione “interazione tra gene e proteina” si intendono i tre casi). Si vuole realizzare il classificatore a partire da due insiemi di apprendimento, detti learning set, S+ L , S− L : le frasi contenute in S+ L contengono (almeno) una iterazione gene-proteina, mentre quelle contenute in S− L no. Sono disponibili anche due dizionari di geni/proteine e interatori, come solitamente avviene in questo tipo di scenari [13, 11, 12]. Al fine di poter apprezzare la natura e la difficolt`a del problema, `e opportuno sottolineare che gli insiemi S+ L , S− L non sono etichettati automaticamente utilizzando un pattern predefinito tenuto nascosto al processo di generazione del classificatore. Piuttosto, l’etichettatura `e stata operata da esperti del settore che leggono e analizzano il significato di ciascuna frase nella sua interezza. Ancora, gli esperti non scelgono la classe di appartenenza di una frase utilizzando un pattern sintattico predefinito—non si pu`o escludere la possibilit`a che un pattern adatto ad effettuare la classificazione desiderata potrebbe non esistere nemmeno. 1 Dall’inglese Natural Language Processing. 2 Dall’inglese Genetic Programming. 3
  • 12. 2. Scenario 4 Nothing ↓ NCS is ↓ VP3S certain ↓ AGG but ↓ CG death ↓ NCS and ↓ CG taxes ↓ NCP Figura 2.1: Esempio di tokenization e POS tagging applicate ad una frase. La scissione in token operata dalla tokenization `e rappresentata dalle sottolineature sotto ciascuna parola, mentre l’analisi grammaticale assegnata dal POS tagging `e rappresentata dalle sigle sotto alle frecce. In particolare, i significati delle sigle sono: NCS-nome comune singolare, VP3S-verbo presente in terza persona singolare, AGG-aggettivo, CG-congiunzione, NCP-nome comune plurale. 2.2 Aspetti utili di NLP Il Natural Language Processing (NLP) `e un campo dell’informatica che riguarda l’insieme degli studi e delle tecniche per il trattamento automatico di informazioni espresse in linguaggio naturale. Il problema principale `e rappresentato dalla comprensione automatica del linguaggio naturale, ovvero l’estrazione automatica del significato di un discorso o di un testo. Le applicazioni sono molteplici e spaziano da scenari di ricerca di alto livello, come lo studio dell’intelligenza artificiale e della linguistica, a contesti pi`u pratici, come il rilevamento del plagio [14] e l’individuazione di relazioni tra entit`a di interesse biomedico [13, 12]. Al fine di facilitare la comprensione dei prossimi capitoli, si riportano ora alcune definizioni3 di concetti NLP utilizzati in seguito. Sia s una frase, considerata come una sequenza ordinata di parole w. Si dice annotatore a una funzione che assegna un valore va, tipicamente detto annotazione o tag, a una parola w, ovvero a : Q → Va, dove Q `e l’insieme di tutte le possibili parole e Va `e l’insieme di tutti i possibili valori che possono essere assegnati da a. Si dice token t una tupla < va1 , ..., van > di annotazioni assegnate dagli annotatori a1, ..., an ad una parola w. Tipicamente, un token contiene sempre un elemento che `e il valore testuale della parola di partenza stessa. Nel presente lavoro vengono effettuate due operazioni NLP sulle frasi: l’operazione tokenization e l’operazione Part-Of-Speech tagging. La prima scinde una frase in input s in una sequenza ordinata di token, assegnando a ciascuno di essi il valore testuale della parola di partenza. La seconda effettua la annotazione Part-of-Speech (POS), ovvero assegna a ciascun token un valore che rappresenta l’analisi grammaticale della relativa parola originale. La Figura 2.1 esplica gli effetti delle operazioni tokenization e POS tagging, eseguite su una frase in lingua inglese d’esempio. 2.3 Fondamentali di GP La programmazione genetica `e una metodologia di programmazione ispirata all’evoluzione biologica per generare automaticamente uno o pi`u programmi che risolvano un problema. 3 Le definizioni riportate sono da intendersi relative al presente lavoro, poich´e strumenti NLP diversi da quelli utilizzati potrebbero non essere conformi ad esse.
  • 13. 5 Richiami su DFA ed espressioni regolari Inizialmente si considera un insieme di programmi (popolazione), dove ciascun pro- gramma (individuo) `e tipicamente generato in modo casuale o secondo euristiche che dipendono dal particolare problema. Ogni individuo rappresenta una soluzione candidata al problema e la bont`a della soluzione viene misurata da una specifica funzione (fitness). Gli individui che costituiscono una popolazione sono tradizionalmente rappresentati da alberi, costituiti da nodi funzione (non-foglie), nodi terminali (foglie) e archi che collegano gerarchicamente i nodi. L’albero `e considerato il genotipo dell’individuo, perch´e lo descri- ve con componenti elementari (nodi e archi), ovvero al pi`u basso livello di astrazione. Il fenotipo di un individuo `e il programma ottenuto dall’interpretazione dell’albero, mentre il comportamento di un individuo `e la soluzione che il programma d`a al problema4. Due individui con differente genotipo possono avere il medesimo fenotipo, cos`ı come individui con differente fenotipo possono avere il medesimo comportamento. Su una selezione di individui sono tipicamente impiegate due operazioni genetiche, ispirate anch’esse all’evoluzione biologica: l’operazione crossover e l’operazione mutazione. La prima emula la riproduzione sessuata tra organismi viventi e consiste nella generazione di nuovi individui ottenuti scambiando due sottoalberi, scelti casualmente, di due individui di partenza; la seconda riproduce la mutazione di entit`a biologiche generando un individuo che `e ottenuto modificando casualmente un sottoalbero o un nodo di un individuo originale. Successivamente, si crea una nuova popolazione di individui rimpiazzando le soluzioni che risultano inadatte a risolvere il problema con quelle che hanno prestazioni migliori (secondo la fitness). `E inoltre tipico promuovere una piccola parte della popolazione precedente alla popolazione successiva (elitismo). Il ripetersi di tali operazioni permette di generare individui sempre migliori dei precedenti, finch´e si converge ad una soluzione ottima o si raggiunge un numero prefissato di iterazioni (generazioni). Uno schema della procedura complessiva `e riportato in Figura 2.2. 2.4 Richiami su DFA ed espressioni regolari Un automa a stati finiti deterministico (DFA5) `e una quintupla A =< Σ, S, δ, s0, F >, dove: • Σ = {α0, α1, . . . , αn} `e l’insieme finito dei simboli (alfabeto); • S = {s0, s1, . . . , sm} `e l’insieme finito degli stati; • δ : S × σ → S `e la funzione (o matrice) di transizione; • s0 ∈ S `e lo stato iniziale; • F ⊆ S `e l’insieme degli stati di accettazione. 4 Le definizioni date sono relative al presente lavoro. In altri scenari fenotipo e comportamento possono coincidere ed essere associati alla fitness dell’individuo. 5 Dall’inglese Deterministic Finite Automaton
  • 14. 2. Scenario 6 Figura 2.2: Funzionamento tipico della programmazione genetica. s0start s1 1 0 1 0 Figura 2.3: Esempio di DFA con alfabeto Σ = {0, 1} e insieme degli stati S = {s0, s1}. La rappresentazione indica che s0 `e lo stato iniziale e che s1 `e stato di accettazione. L’automa accetta tutte le stringhe che hanno un numero dispari di zeri. Il principio di funzionamento `e il seguente. Sia σ una stringa in input di simboli nell’alfabeto Σ, che inizia con simbolo αi. Inizialmente, l’automa A `e nello stato iniziale s0 e applica la funzione di transizione δ sulla coppia (s0, αi), passando cos`ı al nuovo stato sk = δ(s0, αi). Sia ora αj il successivo simbolo di σ. Nuovamente, A applica δ su (sk, αj) e commuta il proprio stato nel risultante sl. Quando tutta σ `e stata consumata, si dice che A accetta σ se lo stato in cui si trova l’automa sf `e di accettazione, ovvero sf ∈ F, altrimenti si dice che A rifiuta σ se sf `e di rifiuto, ovvero sf ∈ S F. `E possibile operare una classificazione binaria di una stringa valutando l’accettazione o il rifiuto della stessa da parte di un automa. La Figura 2.3 mostra un esempio di semplice DFA con due stati e alfabeto binario. Una espressione regolare `e una descrizione concisa e compatta di insiemi di stringhe. La descrizione consiste di una sequenza di costanti ed operatori espressa in un formalismo apposito. Le costanti rappresentano i caratteri dell’alfabeto con cui sono espresse le stringhe in esame, classi di tali caratteri (ad esempio ., w, d) e altri elementi sintattici
  • 15. 7 Richiami su DFA ed espressioni regolari r = href="[ˆ"]+" s = <a href="www.units.it">sito web UniTs</a> Figura 2.4: L’espressione regolare r permette di individuare la porzione sottolineata della stringa s. Infatti, r accetta le (sotto)stringhe che cominciano con la sequenza di caratteri href=", seguita da una sequenza non vuota di caratteri diversi da ", seguita dal carattere ". (ad esempio l’inizio e la fine della stringa), mentre gli operatori sono costrutti sintattici che si applicano sulle costanti per ampliare l’espressivit`a dell’espressione regolare (ad esempio i quantificatori, i gruppi catturanti, i lookaround). Analogamente a quanto avviene utilizzando DFA, una espressione regolare pu`o accettare o meno una stringa in input. In particolare, `e sempre possibile individuare una espressione regolare a partire da un automa deterministico a stati finiti [15]. Il viceversa non `e sempre vero: esistono costrutti delle espressioni regolari che trascendono le capacit`a discriminative degli automi, come i quantificatori possessivi e la backreference. Ancora, mentre DFA pu`o solo accettare o rifiutare interamente una stringa s, una espressione regolare consente di determinare esattamente quali sottostringhe di s sono accettate. Di conseguenza, le espressioni regolari possono essere impiegate per affrontare problemi di estrazione di informazioni. Per una completa e approfondita analisi delle espressioni regolari, si rimanda a [10]. La Figura 2.4 mostra un esempio di espressione regolare applicata ad una stringa.
  • 16.
  • 17. Capitolo 3 Classificatore GP Il presente capitolo descrive la costruzione e le caratteristiche del classificatore C, costruito con tecniche di programmazione genetica (GP) e capace di individuare pattern sintattici delle frasi che devono essere estratte, al di l`a della mera co-occorrenza di parole rilevanti. Esso viene istruito per mezzo di esempi, utilizzando due insiemi di apprendimento (learning set) S+ L , S− L : le frasi contenute in S+ L contegono almeno una interazione tra geni e proteine, mentre quelle in S− L non ne contegono alcuna. Il classificatore non opera direttamente sulle frasi espresse in linguaggio naturale, bens`ı su sequenze di caratteri Unicode, qui denominate φ-stringhe, da esse derivate. In breve, ogni frase `e stata prima trasformata in una sequenza di annotazioni Part-of-Speech1 (POS) e di altra natura, dopodich´e ogni annotazione `e stata sostituita da un simbolo Unicode ad essa univocamente associato. Tutti i dettagli su questa procedura sono riportati nella Sezione 3.1 e un esempio `e disponibile in Figura 3.1. Il classificatore desiderato C consiste di un insieme di espressioni regolari {r1, r2, . . . } tali che l’output di C per una φ-stringa x in input sar`a positivo (cio`e C asserisce che la frase corrispondente a x contiene almeno una interazione tra geni e proteine) se almeno una ri accetta x o una sottostringa non vuota di x. La costruzione di ri `e stata affrontata per mezzo di una procedura GP ispirata da recenti studi riguardo l’apprendimento di espressioni regolari da esempi [1, 2]. Dal punto di vista implementativo, `e stato modificato e utilizzato il motore Java Regex Turtle, sviluppato dal Machine Learning Lab dell’Universit`a degli Studi di Trieste, affinch´e fosse possibile effettuare classificazione su annotazioni anzich´e estrazione di caratteri. A tal riguardo si consideri, ad esempio, il fatto che le espressioni regolari includono costrutti che permettono la generalizzazione e la compattezza quando applicati su testo, come w e d, che non sono ragionevolmente applicabili su sequenze di annotazioni POS. Inoltre, mentre solitamente gli esempi sono costituiti esattamente da sezioni di testo da estrarre, di cui `e possibile individuare dei pattern ben definiti, in questo scenario si vogliono identificare frasi intere, in cui l’informazione `e diluita e non `e nemmeno detto che esista 1 Data una parola, la annotazione POS ne esprime l’analisi grammaticale. 9
  • 18. 3. Classificatore GP 10 The ↓ DT ↓ DT ↓ f physiological ↓ JJ ↓ JJ ↓ 6 role ↓ NN ↓ NN ↓ 9 of ↓ IN ↓ IN ↓ i sigmaB-dependent ↓ JJ ↓ GENEPTN ↓ G katX ↓ NN ↓ GENEPTN ↓ G expression ↓ NN ↓ INOUN ↓ J remains ↓ VBZ ↓ VBZ ↓ 5 obscure ↓ JJ ↓ JJ ↓ 6 . ↓ . ↓ . ↓ x Figura 3.1: La frase originale s (in cima) viene trasformata in una φ-stringa x (in fondo) per mezzo di due trasformazioni a cascata: la prima produce una sequenza di annotazioni POS e la seconda sostituisce alcune di esse con altre annotazioni specifiche (Sezione 3.1). un pattern specifico. Le principali modifiche effettuate al motore sono riportate nella Sezione 3.4. Il numero di espressioni regolari che costituiscono C non `e determinato a priori ma in modo dinamico e automatico durante la procedura. Inizialmente viene generata una prima espressione regolare utilizzando tutta l’informazione disponibile. Quando viene trovata un’espressione regolare con performance adeguate su un subset di esempi, la ricerca evolutiva viene reinizializzata sugli esempi che non sono stati identificati adeguatamente, portando cos`ı alla generazione di una nuova espressione regolare. Tale metodo prende il nome di separate-and-conquer ed `e ispirato da un recente articolo per l’estrazione di frammenti di testo [3]: a differenza dell’articolo citato, in questo scenario si vuole effettuare classificazione anzich´e estrazione e si permette la generazione di espressioni regolari che, in fase di addestramento, non hanno precisione perfetta. 3.1 Rappresentazione delle frasi La rappresentazione delle frasi tramite φ-stringhe prevede l’utilizzo di due dizionari, Dgenes e Dinteractors, il primo contenente parole che rappresentano geni e proteine, il secondo parole che rappresentano interatori. Una porzione dei dizionari `e mostrata nella Tabella 3.1. La trasformazione di ciascuna frase s in una φ-stringa x avviene come segue. 1. s viene scissa in una sequenza {t1, . . . , tn} di token secondo lo standard Penn- Treebank2; 2. Tramite un annotatore Part-of-Speech (POS) eseguito su {t1, . . . , tn} viene ottenuta una sequenza {a1, . . . , an} di annotazioni, con ai ∈ A. L’insieme A di possibili annotazioni dipende dallo specifico annotatore POS utilizzato; Si assume che esistono tre sottoinsiemi di A disgiunti Averb, Aadj, Anoun che corrispondono a verbi, aggettivi e nomi rispettivamente—A potrebbe includere altri elementi non contenuti in Averb ∪Aadj ∪Anoun. L’annotatore utilizzato nel presente lavoro `e quello sviluppato dal gruppo di ricerca Stanford Natural Language Processing Group3, che utilizza le annotazioni dello standard Penn Treebank. La Tabella 3.2 mostra una lista parziale degli elementi di A usati da tale annotatore POS. 2 http://www.cis.upenn.edu/∼treebank 3 http://nlp.stanford.edu/software/tagger.shtml
  • 19. 11 Generazione di una espressione regolare 3. La sequenza di annotazioni {a1, . . . , an} viene modificata come segue. Sia t ∈∗ D se t `e uguale a o inizia con un elemento di D—ad esempio, se D = {sigmaB, katX}, allora sigmaB-dependent ∈∗ D and katX ∈∗ D. Per ogni i, • se ti ∈∗ Dgenes, si pone ai := GENEPTN; • se ti ∈ Dinteractors e ai ∈ Averbi, si pone ai := IVERB; • se ti ∈ Dinteractors e ai ∈ Aadj, si pone ai := IADJ; • infine, se ti ∈ Dinteratori e ai ∈ Anoun, si pone ai := INOUN. L’insieme di tutte le possibili annotazioni viene definito come A = A ∪ {GENEPTN, IVERB, IADJ, INOUN}. 4. Sia U l’insieme di caratteri che includono cifre, lettere minuscole e maiuscole e sia φ : A → U una funzione iniettiva che mappa le annotazioni in caratteri (si veda l’ultima colonna a destra della Tabella 3.2). La φ-stringa x corrispondente a {a1, . . . , an} viene ricavata tramite concatenazione dei caratteri ottenuti dalla applicazione di φ ad ogni elemento della sequenza di annotazioni, in altre parole x = φ(a1) . . . φ(an). La Figura 3.1 mostra i risultati intermedi e finale della procedura applicata ad una frase d’esempio. 3.2 Generazione di una espressione regolare In questa sezione viene descritta la procedura basata su GP per ottenere una espressione regolare r da due insiemi di addestramento (training set) X+, X− di φ-stringhe. Lo scopo di questa procedura `e di generare una espressione regolare r tale che: (i) per ogni φ-stringa x in X+, x, o una sottostringa non-vuota di x, `e accettata da r ; (ii) per ogni φ-stringa x in X−, x e tutte le sottostringhe di x non sono accettate da r . La relazione tra i training set e i learning set utilizzati per sintetizzare il classificatore `e esplicata in seguito. Rappresentazione della soluzione Una soluzione candidata, ovvero un individuo, `e una espressione regolare che viene rappresentata con un albero, come segue. L’insieme di nodi terminali `e composto dal carattere wildcard . e da ogni carattere nel codominio di φ, cio`e ogni caratteri in U che corrisponde ad una annotazione in A . L’insieme di nodi funzione `e composto da: • il concatenatore ◊◊; • la classe di caratteri [◊] e la classe di caratteri negata [ˆ◊];
  • 20. 3. Classificatore GP 12 Dgenes abrB alpha-amylase amyP bkd bmrUR cheV ClpX ComK CtsR degR DksA dltB DnaK Esig29 EsigA EsigB EsigG fabL FlgM gbsA GerE katX kdgR KinC mrpA PhoP P prosigK RpoS sigmaK sigmaH sigmaW SpoIIAB spoIVCB YtxH yfhR altri Dinteractors abrogation acetylation activation binding conversion destabilization downregulation expression induction inhibition modulation phosphorylation repression stabilization suppression synthesis acetylate activate affect bind block comprising conjugate destabilize dimerize encoding enhance exhibit potentiate regulate repressed sever stabilize suppress yield altri Tabella 3.1: Porzioni dei due dizionari di geni/proteine e interatori.
  • 21. 13 Generazione di una espressione regolare a Significato Sottoinsieme φ(a) VB verb, base form Averb 0 VBD verb, past tense 1 VBG verb, pres. part. or gerund 2 VBN verb, past participle 3 VBP verb, pres. tense, ¬3rd p. s. 4 VBZ verb, pres. tense, 3rd p. s. 5 JJ adjective or numeral, ordinal Aadj 6 JJR adjective, comparative 7 JJS adjective, superlative 8 NN noun, common, sing. or mass Anoun 9 NNP noun, proper, singular a NNPS noun, proper, plural b NNS noun, common, plural c CC conjunction, coordinating d CD numeral, cardinal e DT determiner f EX existential there g FW foreign word h IN prep. or conj., subordinating i LS list item marker j PDT pre-determiner k POS genitive marker l PRP pronoun, personal m PRP$ pronoun, possessive n RB adverb o RP particle p SYM symbol q TO “to” as preposition or infinitive marker r UH interjection s WDT WH-determiner t WP WH-pronoun u WP WH-adverb v , comma w . sentence terminator x : colon or ellipsis y ( opening parenthesis z ) closing parenthesis A altre annotazioni GENEPTN gene or protein A A G IVERB verb interactor R IADJ adjective interactor P INOUN noun interactor J Tabella 3.2: Lista parziale degli elementi di A . Per la lista completa degli elementi di A (Penn Treebank Tag-set) si visiti http://www.comp.leeds.ac.uk/amalgam/tagsets/upenn.html.
  • 22. 3. Classificatore GP 14 ◊◊ ◊?+ [ˆ◊] G ◊◊ ◊◊ 3 ◊++ . c Figura 3.2: Albero rappresentante l’espressione regolare G?+[ˆ3c++.]. • i quantificatori possessivi4 ◊*+, ◊++, ◊?+ e ◊{◊,◊}+; • il gruppo non-catturante (?:◊). Un albero rappresenta una espressione regolare come una ricerca in profondit`a (depth- first search) in cui ciascun simbolo ◊ in un nodo non-terminale viene rimpiazzato dalla rappresentazione del nodo figlio corrispondente. Un esempio `e rappresentato in Figura 3.2. Definizione della fitness La fitness di un individuo r quantifica la prestazioni dello stesso sui training set. La fitness scelta `e multi-obiettivo ed `e stata definita con la tupla f(r) := (FPR(r, X− ) + FNR(r, X+ ), FPR(r, X− ), (r)) , dove (r) `e la lunghezza dell’espressione regolare rappresentata da r e FPR(r, X−) e FNR(r, X+) sono il tasso di falsi positivi (False Positive Rate) e il tasso di falsi negativi (False Negative Rate), rispettivamente, di r sui training set. In dettaglio, FPR(r, X−) 4 Sono stati preferiti i quantificatori possessive a quelli greedy e lazy perch´e questi ultimi portano il motore Java ad effettuare il backtracking per valutare le espressioni regolari in cui sono presenti. Il backtracking rappresenta un collo di bottiglia per i tempi di calcolo.
  • 23. 15 Generazione di una espressione regolare `e la percentuale di φ-stringhe x ∈ X− tali che x o almeno una sottostringa non-vuota di x `e accettata da r; FNR(r, X+) `e la percentuale di φ-stringhe x ∈ X+ tali che x e tutte le sottostringhe di x non sono accettate da r. Tutti i componenti della fitness si vogliono minimizzare. Intuitivamente, date due soluzioni candidate r1 e r2, se valgono contemporaneamente (i) FPR(r1, X−) + FNR(r1, X+) < FPR(r2, X−) + FNR(r2, X+), (ii) FPR(r1, X−) < FPR(r2, X−) e (iii) (r1) < (r2), allora r1 `e migliore di r2. Si noti che il primo obiettivo di f(r), cio`e FPR(r, X−) + FNR(r, X+), fa le veci della accuratezza della classificazione di r sugli esempi in X−, X+. Gli individui vengono classificati in base alle loro fitness secondo il principio di dominanza di Pareto e l’ordine lessicografico, come segue. In principio, gli individui vengono ordinati secondo la loro frontiera di Pareto: un individuo appartiene i-esima frontiera se e solo se `e dominato secondo Pareto solo da individui, se esistono, che appartengono alla j-esima frontiera, con j < i—un individuo domina secondo Pareto un altro individuo se `e migliore su almeno un elemento della fitness e non `e peggiore sugli altri. Successivamente, viene stabilito un ordinamento totale sugli individui che appartengono alla stessa frontiera di Pareto: vengono preferiti gli individui con pi`u bassa FPR + FNR; in caso di uguale FPR + FNR vengono preferiti quelli con pi`u bassa FPR; in caso di uguale FPR vengono preferiti quelli con pi`u bassa . Come si pu`o notare, si `e deciso di non inserire aspetti specifici del problema in esame nella definizione della fitness. Ad esempio, annotazioni POS rappresentative di geni/proteine o interatori non hanno alcuna influenza particolare su di essa. L’approccio multi-obiettivo utilizzato ha lo scopo di massimizzare l’accuratezza e, nel contempo, promuovere soluzioni compatte prevenendo cos`ı il fenomeno del bloat [9]. Infine, poich´e il classificatore non consiste di una singola espressione regolare ma di un insieme di espressioni generate progressivamente da training set sempre pi`u piccoli (Sezione 3.3), l’obiettivo FPR impone una pressione evolutiva sulle singole soluzioni atta a migliorare il tasso di falsi positivi dell’aggregazione delle stesse. Procedura di ricerca La procedura di ricerca GP viene eseguita con una popolazione iniziale di npop individui. La popolazione iniziale `e composta di una porzione di individui generati casualmente e una porzione di individui costruiti in modo tale da accettare almeno una φ-stringa in X+. Nel dettaglio, vengono costruiti tre individui da ogni x ∈ X+: 1. un individuo r rappresentante una espressione regolare che `e uguale alla φ-stringa x;
  • 24. 3. Classificatore GP 16 2. un individuo r ottenuto rimpiazzando in r ogni nodo foglia non incluso in {φ(IVERB), φ(GENEPTN), φ(IADJ), φ(INOUN)} con un sottoalbero che corrisponde all’espres- sione regolare [ˆφ(GENEPTN)φ(IVERB)φ(IADJ)φ(INOUN)] , ovvero con la classe di caratteri che esclude quelli che corrispondono a geni/proteine e interatori; 3. un individuo r ottenuto rimpiazzando in r ripetizioni consecutive di caratteri che non rappresentano geni/proteine o interatori con [ˆφ(GENEPTN)φ(IVERB)φ(IADJ) φ(INOUN)]++, ovvero con il sottoalbero che corrisponde a una o pi`u ripetizioni della classe di caratteri. Se il numero di individui generati con questa procedura `e maggiore di npop, vengono rimossi individui scelti a caso (con le configurazioni utilizzate nel presente lavoro questo evento non si verifica); invece, qualora il numero di individui sia strettamente minore di npop, ne vengono generati altri in modo casuale con metodo ramped half-and-half [16] finch´e non viene raggiunto il limite di popolazione imposto. La popolazione iniziale viene evoluta secondo la seguente procedura. Ad ogni iterazione (o generazione), vengono generati npop individui, di cui: • l’80% tramite crossover tra individui della popolazione corrente; • il 10% tramite mutazione di individui della popolazione corrente; • il rimanente 10% a caso con metodo ramped half-and-half. Dei 2npop individui complessivi a disposizione ne viene scartata la met`a con fitness peggiore e i rimanenti npop diventano la nuova popolazione corrente. Sia per il crossover che per la mutazione, la scelta di un individuo candidato viene effettuata con selezione a torneo (tournament selection): si considerano 7 individui casuali della popolazione corrente e si sceglie quello con fitness migliore. Ogniqualvolta viene generato un individuo che rappresenta una espressione regolare non valida, esso viene scartato e ne viene generato un altro. Viene inoltre effettuata l’imposizione della diversit`a fenotipica come segue. Se viene generato un individuo r1 che rappresenta la stessa espressione regolare di un altro individuo r2 appartenente alla popolazione corrente, allora r1 viene scartato e si genera un altro individuo—un meccanismo simile `e utilizzato in [19] per prevenire la creazione di soluzioni duplicate. Si `e osservato sperimentalmente che questo semplice meccanismo porta a soluzioni notevolmente migliori in questo scenario, con una penalizzazione trascurabile del tempo di completamento della ricerca. `E presumibile che tale miglioramento sia influenzato dall’utilizzo di una popolazione iniziale non completamente composta da individui generati a caso e dall’impiego di una ricerca GP multi-obiettivo. Riguardo quest’ultimo punto, si sono osservati benefici apportati dai meccanismi espliciti per la promozione di forme di diversit`a tra gli individui, siano esse implementate a livello
  • 25. 17 Generazione del classificatore genetipico o comportamentale delle soluzioni, oppure implementate nello spazio della fitness [9, 6]. La ricerca GP termina quando si verifica uno dei seguenti eventi: (i) un numero prefissato di ngen iterazioni sono state effettuate; o (ii) la tupla fitness del miglior individuo `e rimasta inalterata per nstop iterazioni consecutive. L’esito della ricerca `e l’espressione regolare rappresentata dal miglior individuo della popolazione finale. 3.3 Generazione del classificatore Inizialmente, i learning set S+ L e S− L vengono trasformati negli insiemi di φ-stringhe X+ L , X− L , rispettivamente, applicando la procedura descritta nella Sezione 3.1. Succes- sivamente, X+ L , X− L vengono campionati a caso per costruire i training set X+, X−, rispettivamente, garantendo che |X+| |X−| = |X+ L | |X− L | . Il classificatore `e inizializzato come un insieme vuoto di espressioni regolari (C = ∅) e viene via via arricchito di elementi per mezzo della seguente procedura iterativa (dove τFPR `e una soglia prefissata): 1. si effettua una ricerca GP su X+, X− e si ottiene r ; 2. se FPR(r , X−) ≤ 1 − τFPR o la ricerca `e terminata dopo aver eseguito ngen generazioni, allora si pone C := C ∪ {r }, altrimenti si termina; 3. si rimuove da X+ ogni φ-stringa x tale che x, o una sottostringa di x, `e accettata da r ; 4. se X+ `e vuoto, si termina, altrimenti si torna al passo 1. L’esito della procedura `e il classificatore C. Vengono eseguite njob esecuzioni indipendenti della procedura, tutte a partire dagli stessi training set X+, X−, ma con differenti semi per la generazione di numeri casuali. Perci`o, vengono ottenuti (fino a) njob classificatori diversi5 e tra essi viene scelto quello con minore tasso d’errore su i learning set X+ L , X− L . In altre parole, gli njob classificatori vengono validati su dati parzialmente non disponibili durante l’addestramento, al fine di prevenire/mitigare il fenomeno dell’overfitting. Negli esperimenti effettuati sono state utilizzate le seguenti configurazioni: τFPR = 0.7, ngen = 1000, nstop = 200, npop = 1000, njob = 8 e profondit`a massima degli alberi pari a 15. I valori sono stati scelti dopo sperimentazioni preliminari (in particolare per ngen, npop, e njob) e considerando le proposte presenti in letteratura. 3.4 Modifiche effettuate a Regex Turtle La versione originale del motore Regex Turtle consente di generare espressioni regolari che accettano stringhe composte di caratteri in codifica UTF-166, con lo scopo di individuare 5 I classificatori generati negli esperimenti relativi al presente lavoro sono risultati sempre tutti diversi. 6 http://tools.ietf.org/html/rfc2781.
  • 26. 3. Classificatore GP 18 specifiche porzioni di testo. In altre parole, Regex Turtle `e progettato per risolvere il problema della estrazione di informazione a livello di piccole porzioni di testo. L’obiettivo del presente lavoro `e invece la classificazione di intere frasi. Nella versione originale del motore, gli esempi utili ad addestrare e a validare una espressione r (i) non rappresentano necessariamente frasi, (ii) specificano quali porzioni di testo devono essere accettate e quali non devono essere accettate da r. Le modifiche apportate al motore permettono di generare il classificatore descritto in questo capitolo. Anzich´e rimpiazzare componenti, si `e scelto di scrivere nuove classi che eriditano/implementano opportune classi/interfacce preesistenti. Cos`ı facendo vengono mantenute le vecchie funzionalit`a e la modularit`a del sistema: il nuovo Regex Turtle pu`o essere utilizzato sia per il compito di estrazione di porzioni di testo che per quello di classificazione di frasi, scegliendo opportunamente i moduli coinvolti tramite un file di configurazione. Nello specifico: • `e stata scritta una nuova classe descrittiva della struttura della ricerca GP al fine di implementare la procedura separate-and-conquer con uno scenario di natura classificativa; • sono state ampliate le funzionalit`a della classe che gestisce il dataset in modo da poter operare la scissione del problema nella porzione risolta e non risolta, durante la procedura separate-and-conquer con scenario classificativo; • `e stata scritta una nuova classe per generare la popolazione iniziale della procedura di ricerca GP, affinch´e fosse possibile generare parte degli individui a partire dalle φ-stringhe (Sezione 3.2); • `e stata scritta una nuova classe per implementare la valutazione degli individui, ovvero il calcolo di alcune prestazioni utili (come FPR e FNR) e la fitness. Sono inoltre stati introdotti ulteriori elementi non strettamente legati al processo evolutivo, come ad esempio un modulo per l’output dei risultati su un foglio di calcolo su cloud.
  • 27. Capitolo 4 Dataset In questo capitolo viene discussa nel dettaglio la costruzione del dataset utilizzato per gli esperimenti, a partire da due corpus di frasi contenute in articoli scientifici biomedici: BioCreAtIvE corpus1 (BC) e Genic Interaction Basic Training Dataset2 (GI ). 4.1 Dataset utilizzato Gli esperimenti sono stati condotti utilizzando un corpus di 456 frasi in lingua inglese, costruito a partire da due dataset (comprensivi di ground-truth fornita da un esperto del settore), entrambi derivanti da competizioni di interesse biomedico riguardo l’estrazione di interazioni tra geni e proteine. Le frasi costituenti tali dataset sono estrapolate da articoli scientifici presenti nel database bibliografico di letteratura scientifia biomedica PubMed. La Tabella 4.1 mostra alcuni esempi, dai quali si evince che la mera presenza delle parole nei dizionari Dgenes e Dinteractors non `e sufficiente per qualificare una frase come contenente una interazione tra geni e proteine. 4.2 Dataset BC e GI Il corpus BioCreAtIvE `e composto da 1000 frasi codificate in formato XML. In 173 frasi sono riportate interazioni tra geni e proteine, mentre le rimanenti 827 non contengono alcuna interazione. La ground truth relativa alle frasi `e descritta con una codifica non standard in un file di testo esterno, il quale specifica quali sono i componenti delle interazioni delle 173 frasi. Gli elementi XML del corpus sono i seguenti: • sentences: `e l’elemento root, contiene elementi sentence; • sentence: rappresenta la particolare frase, ha attributo id che identifica la frase stessa e contiene gli elementi gene, interactor, token ed elementi puramente testuali; 1 https://www2.informatik.hu-berlin.de/∼hakenber/corpora/#bc 2 http://genome.jouy.inra.fr/texte/LLLchallenge/#task1 19
  • 28. 4. Dataset 20 Frasi in cui `e presente almeno una interazione tra geni e/o proteine In this mutant, expression of the spoIIG gene, whose transcription depends on both sigma(A) and the phosphorylated Spo0A protein, Spo0A-P, a major transcription factor during early stages of sporulation, was greatly reduced at 43 degrees C. These results suggest that YfhP may act as a negative regulator for the transcription of yfhQ, yfhR, sspE and yfhP. These results demonstrate that sigmaK-dependent transcription of gerE initiates a negative feedback loop in which GerE acts as a repressor to limit production of sigmaK. In this study, we used footprinting and gel mobility retardation assays to reveal that bacterially sinthetized Zta fusion proteins bound directly to six TGTGCAA-like motifs within DSL. Frasi in cui non `e presente alcuna interazione tra geni e/o proteine From day 10, a significant increase in platelet count was observed in eight of the ten patients treated with heparin (p < 0.05), with return to the initial value after heparin cessation in six of the responders. Two phosphopeptides, identified as RS-[32P]SGASGLLTSEHHSR and S-[32P]SGASGLLTSEHHSR, were obtained after stoichiometric phosphorylation and trypsinization of the peptide. Levels of TSG-14 protein (also termed PTX-3) become elevated in the serum of mice and humans after injection with bacterial lipopolysaccharide, but in contrast to conventional acute phase proteins, the bulk of TSG-14 synthesis in the intact organism occurs outside the liver. No mutations were found in follicular adenomas. Tabella 4.1: Otto frasi del corpus utilizzato negli esperimenti, 4 che includono (sinistra) e 4 che non includono (destra) interazioni tra geni e proteine. Per facilitare la comprensione, le parole appartenenti al dizionario Dgenes sono in grassetto e le parole appartenenti al dizionario Dinteractors sono in corsivo (si veda la Sezione 3.1).
  • 29. 21 Dataset BC e GI • gene: contiene del testo che rappresenta un gene o una proteina, non ha attributi; • interactor: contiene del testo che rappresenta un interatore, ha attributo pos il cui valore rappresenta l’analisi grammaticale del testo contenuto; • token: contiene del testo che non rappresenta un gene, una proteina o un interatore, ha attributo pos il cui valore rappresenta l’analigi grammaticale del testo contenuto, secondo lo standard Penn Treebank; • elemento puramente testuale: utilizzato sempre per rappresentare lo spazio, viene interposto tra elementi gene, interactor e token. Un esempio di frase `e riportato di seguito (le righe vuote rappresentano il carattere spazio). <sentence id="@@0006"> <token pos="DT">These</token> <token pos="NNS">observations</token> <token pos="VB">establish</token> <token pos="IN">that</token> <gene>RsmC</gene> <token pos="RB">negatively</token> <interactor pos="VBZ">regulates</interactor> <gene>rsmB</gene> <token pos="NN">transcription</token> <token pos="CC">but</token> <token pos="RB">positively</token> <interactor pos="VBZ">affects</interactor> <gene>RsmA</gene> <token pos="NN">production</token> <token pos=".">.</token> </sentence> Il dataset Genic Interaction Basic Training Dataset `e costituito da 55 esempi di interazioni tra geni e proteine codificati in un formato non standard. Ogni esempio `e costituito dai seguenti campi:
  • 30. 4. Dataset 22 • ID: l’identificativo dell’esempio; • sentence: la frase espressa come testo semplice; • words: suddivisione della frase in parole, dove ogni elemento `e una quadrupla (indice parola, parola, indice carattere d’inizio, indice carattere di fine). • agents: specifica gli indici delle parole che sono geni o proteine agenti, ovvero componenti attivi dell’interazione che influenzano altri geni o proteine; • targets: specifica gli indici delle parole che sono geni o proteine subenti, ovvero componenti passivi dell’interazione che sono influenzati da geni o proteine agenti; • genic interactions: coppie di indici delle parole costituenti una interazione: uno dei due indici rappresenta un componente agente, l’altro un componente subente. Un esempio `e riportato di seguito. ID 11069677-3 sentence In vivo studies of the activity of four of the kinases, KinA, KinC, KinD (ykvD) and KinE (ykrQ), using abrB transcription as an indicator of Spo0A˜P level, revealed that KinC and KinD were responsible for Spo0A˜P production during the exponential phase of growth in the absence of KinA and KinB. words word(0,’In’,0,1) word(1,’vivo’,3,6) word(2,’studies’,8,14) word(3,’of’,16,17) word(4,’the’,19,21) word(5,’activity’,23,30) word(6,’of’,32,33) word(7,’four’,35,38) word(8,’of’,40,41) word (9,’the’,43,45) word(10,’kinases’,47,53) word(11,’KinA’,56,59) word(12,’KinC’,62,65) word(13,’KinD’,68,71) word(14,’ykvD’,74,77) word(15,’and’,80,82) word(16,’KinE’,84,87) word(17,’ykrQ’,90,93) word(18,’using’,97,101) word(19,’abrB’,103,106) word(20,’ transcription’,108,120) word(21,’as’,122,123) word(22,’an’ ,125,126) word(23,’indicator’,128,136) word(24,’of’,138,139) word (25,’Spo0A˜P’,141,147) word(26,’level’,149,153) word(27,’ revealed’,156,163) word(28,’that’,165,168) word(29,’KinC’,170,173) word(30,’and’,175,177) word(31,’KinD’,179,182) word(32,’were’ ,184,187) word(33,’responsible’,189,199) word(34,’for’,201,203) word(35,’Spo0A˜P’,205,211) word(36,’production’,213,222) word(37, ’during’,224,229) word(38,’the’,231,233) word(39,’exponential’ ,235,245) word(40,’phase’,247,251) word(41,’of’,253,254) word (42,’growth’,256,261) word(43,’in’,263,264) word(44,’the’,266,268) word(45,’absence’,270,276) word(46,’of’,278,279) word(47,’KinA’ ,281,284) word(48,’and’,286,288) word(49,’KinB’,290,293) agents agent(29) agent(31) targets target(35) genic_interactions genic_interaction(29,35) genic_interaction (31,35)
  • 31. 23 Dettagli sulla generazione di φ-stringhe 4.3 Dettagli sulla generazione di φ-stringhe Riguardo il dataset Genic Interaction Basic Training Dataset, la generazione delle φ- stringhe avviene esattamente come descritto nella Sezione 3.1, utilizzando i dizionari per geni, proteine e interatori3. Per le frasi estrapolate dal corpus BioCreAtIvE, invece, `e stata utilizzata una procedura leggermente diversa per ottenere le φ-stringhe. Infatti, non `e necessario utilizzare dizionari per identificare parole rappresentanti geni, proteine e interatori, essendo esse incapsulate in specifici elementi XML. `E altres`ı stato possibile sfruttare le annotazioni POS gi`a fornite nel corpus, compatibili con lo standard Penn Treebank. La procedura di generazione di una φ-stringa x a partire da una frase s (espressa in XML) del corpus BioCreAtIvE `e la seguente. Per ogni elemento XML e di s, con eventuale attributo pos a, si determina la annotazione a ricorrendo alle casistiche: • se e `e un elemento token, si pone a := a; • se e `e un elemento interactor, si considerano i sottoinsiemi disgiunti Averb, Aadj e Anoun (definiti nella Sezione 3.1) e: – se a ∈ Aadj, si pone a := IADJ; – se a ∈ Anoun, si pone a := INOUN; – se a ∈ Averb, si pone a := IVERB; • se e `e un elemento gene, si pone a := GENEPTN. • infine, se e `e un elemento puramente testuale, lo si ignora4; Nota la sequenza di annotazioni {a1, . . . , an}, si costruisce la corrispondente φ-stringa x = φ(a1), . . . , φ(an). Si riportano due ultimi dettagli tecnici. Nel corpus BC, la frase con id @@0634 presenta un interatore con annotazione POS “FW” (foreign word), quando `e evidente che si tratta di un verbo presente in terza persona singolare (“VBZ”). Infine, `e stato necessario uniformare le annotazioni POS nel corpus BC relative alle parentesi aperte e chiuse, rispettivamente “(” e “)”, con quelle effettuate dall’annotatore POS sviluppato dal gruppo Stanford Natural Language Processing Group, rispettivamente “LRB” e “RRB”. 4.4 Costruzione del dataset Il dataset utilizzato nel presente lavoro `e stato ottenuto per aggregazione delle 173 frasi di BC contenenti interazioni tra geni e proteine con le 55 frasi di GI, per costituire gli esempi positivi, e prelevando le prime 228 frasi di BC che non contengono interazioni, 3 I dizionari sono disponibili all’indirizzo http://www2.informatik.hu-berlin.de/∼hakenber/publ/suppl/ lll05/. 4 Gli elementi puramente testuali del corpus BioCreAtIvE sono tutti il carattere spazio.
  • 32. 4. Dataset 24 per costituire gli esempi negativi. Il risultato `e un corpus di 456 esempi, met`a positivi e met`a negativi. La rappresentazione del dataset `e stata declinata coerentemente alle specifiche del classificatore impiegato, ovvero rispetto al classificatore ottenuto con GP e ai metodi di riferimento (discussi nel Capitolo 5). In particolare, per il classificatore ottenuto con GP, il dataset `e espresso come uno specifio oggetto descritto in formato JSON e compatibile con il motore Regex Turtle modificato per la classificazione. La separazione del dataset in insiemi per l’addestramento, la validazione e il test avviene attraverso un file di configurazione esterno. Per i metodi di riferimento, il dataset presenta ciascun esempio come una linea di testo ed `e costituito da quattro file: addestramento positivo, addestramento negativo, test positivo e test negativo. 4.5 Dettagli implementativi Dal punto di vista implementativo, le procedure per la generazione delle φ-stringhe e per la costruzione del dataset sono state operate in modo automatico per mezzo di software Java e script per shell Bash appositamente preparati. Gli strumenti sviluppati hanno permesso di analizzare i dataset BC e GI, estrarre le informazioni utili, ottenere le annotazioni POS, effettuare la conversione in φ-stringhe e generare il dataset finale nei formati precedentemente descritti (Sezione 4.4), il tutto in modo automatico. In particolare, sono state utilizzate librerie del progetto Stanford CoreNLP5 (v3.4.1)— per le operazioni tokenization e POS tagging sul dataset GI—e i package della libreria dataSetManager6—per costruire il dataset nel formato adatto al motore Regex Turtle. 5 http://nlp.stanford.edu/software/corenlp.shtml. 6 Sviluppata dal Machine Learning Lab dell’Universit`a degli Studi di Trieste.
  • 33. Capitolo 5 Valutazione sperimentale Al fine di valutare i risultati ottenuti con la metodologia descritta nel Capitolo 3, sono state implementate e utilizzate diverse tecniche alternative di classificazione come riferimenti: (i) un approccio evolutivo allo stato dell’arte per desumere pattern da esempi, (ii) due approcci che racchiudono una grande quantit`a di conoscenza specifica del problema e (iii) due metodi tradizionali per la classificazione di testo. Specificamente, nel presente lavoro si `e modificata una versione sviluppata di i, implementati ex novo strumenti per eseguire ii e applicati strumenti gi`a pronti di iii1. Tutti gli approcci sono stati utilizzati sullo stesso dataset. 5.1 Algoritmo evolutivo per la generazione di DFA `E stato modificato e utilizzato un classificatore basato sull’algoritmo Smart State Labeling Evolutionary Algorithm (SSLEA) descritto in [21]. Il lavoro citato propone un algoritmo allo stato dell’arte per apprendere un automa deterministico a stati finiti a partire da esempi del comportamento di classificazione desiderato. SSLEA `e stato sviluppato alcuni anni dopo una competizione di grande influenza nella comunit`a del grammar learning e ha dimostrato prestazioni migliori degli strumenti vincitori della gara (e di versioni perfezionate degli stessi), sulla stessa classe di problemi [18, 8] e persino in presenza di dati rumorosi. SSLEA rappresenta una soluzione candidata come una coppia composta da un vettore di output di dimensione n e una matrice di transizione di dimensione n × |α|, dove n `e il numero di stati dell’automa desiderato e |α| `e il numero di simboli presenti nell’alfabeto in input: il primo ha un elemento per ogni stato dell’automa e ciascun elemento contiene l’etichetta (accettazione o rifiuto) dello stato corrispondente; la seconda contiene, per ogni stato e transizione, l’indice del corrispondente stato di destinazione. SSLEA implementa una forma di hill-climbing in cui la fitness di una soluzione `e il tasso di esempi classificati 1 L’approccio evolutivo e i metodi tradizionali di classificazione sono stati forniti dal Machine Learning Lab dell’Universit`a degli Studi di Trieste. 25
  • 34. 5. Valutazione sperimentale 26 correttamente. La ricerca termina qualora l’automa evoluto raggiunga la fitness perfetta oppure dopo che siano state effettuate un numero predefinito nit di iterazioni. Le operazioni fondamentali che occorrono nell’evoluzione dell’automa sono lo Smart State Labeling e la mutazione. La prima implementa un algoritmo che si basa sulla matrice di transizione e sugli esempi di addestramento, il cui impiego consente di ridurre notevolmente lo spazio di ricerca: per ogni stato, si contano il numero p di esempi che si vogliono siano accettati e il numero q di esempi che si vogliono siano rifiutati che terminano nello stato stesso, dopodich´e se p > q allora lo stato viene etichettato come d’accettazione, altrimenti viene etichettato come di rifiuto. La mutazione consiste nella modifica casuale dell’indice di uno stato di destinazione, scelto anch’esso a caso, nella matrice di transizione. Nel presente lavoro `e stata modificata una versione gi`a implementata di SSLEA in linguaggio C++ per adattarla al problema ed `e stata applicata alle φ-stringhe. Il metodo `e stato denominato φ-SSLEA. Dopo alcune sperimentazioni esplorative, i migliori risultati sono stati ottenuti con α = range(φ), n = 7 e nit = 5000 e tale configurazione `e stata utilizzata nella presente valutazione. In particolare, si `e verificato sperimentalmente che aumentare il numero nit di iterazioni disponibili, anche di molto, non porta a una migliore accuratezza sui dati di test. 5.2 Metodi di riferimento basati sul problema Sono stati implementati due classificatori che racchiudono una considerevole quantit`a di conoscenza legata allo specifico problema in esame. Il classificatore denominato Annotations-Co-occurrence classifica positivamente una frase s se e solo se s contiene almeno due geni/proteine e un interatore—chiaramente, `e pesantemente confezionato per questo particolare problema. Il classificatore denominato Annotations-LLL05-patterns `e costruito a partire dai risultati dell’articolo [13], nel quale `e proposto un metodo per identificare pattern sintattici ad allineamento che descrivono interazioni tra geni e proteine in testi scientifici. Un pattern ad allineamento `e descritto in termini di (i) sequenze di annotazioni POS rilevanti che devono presentarsi in una frase, senza specifiche limitazioni sul tipo e sulla quantit`a di ulteriori annotazioni che potrebbero essere presenti tra le annotazioni salienti; (ii) dipendenze tra i componenti estratti, ovvero informazioni su quale gene/proteina `e componente attivo (agente) e quale `e componente passivo (subente) nell’interazione. Si noti che il punto ii non `e rilevante in termini di classificazione delle frasi—ma di estrazione delle componenti di una interazione—e pertanto `e stato ignorato. Il metodo sfrutta una considerevole quantit`a di conoscenza specifica del dominio nella calibrazione di decine di coefficienti utilizzati per pesare gli errori commessi dai pattern, errori che sono associati a specifiche annotazioni POS e annotazioni che rappresentano geni e interatori. Il lavoro citato fornisce una lista dei 10 pattern ad allineamento pi`u frequenti imparati su tutto il corpus usato nell’articolo, che `e pi`u grande di quello usato nel presente lavoro (esso consiste di ≈ 1000 frasi). Annotations-LLL05-patterns classifica positivamente una frase s se e solo se s `e accettata da almeno uno dei 10 pattern ad allineamento nella suddetta
  • 35. 27 Metodi di classificazione tradizionali lista. Il corpus di questo lavoro `e composto, per ≈ 90%, di frasi derivate dal corpus usato nell’articolo citato. Entrambi i classificatori sono stati realizzati per mezzo di opportune espressioni regolari Perl eseguite su shell Bash con il comando grep -P su φ-stringhe. Nello specifico, Annotations-Co-occurrence `e implementato come applicazione dell’espressione regolare G.*[JRP].*G|[JRP].*G.*G|G.*G.*[JRP] , la cui prima parte—ovvero ci`o che antecede l’operatore or “|”—`e espressa in annotazioni POS (con spazi tra gli elementi per facilitare la lettura) come GENEPTN .* [ INOUN IVERB IADJ ] .* GENEPTN . La classificazione operata dall’unione dei 10 pattern ad allineamento, alla base di Annotations-LLL05-patterns, `e stata implementata con l’espressione regolare G.*R.*G|G.*J.*G|J.*G.*G , che accetta le φ-stringhe in cui compaiono, ordinatamente e non necessariamente in modo consecutivo, (i) un gene/proteina, un interatore verbo e un gene/proteina, o (ii) un gene/proteina, un interatore nome e un gene/proteina, o (iii) un interatore nome e due geni/proteine. 5.3 Metodi di classificazione tradizionali Sono stati utilizzati due metodi di machine learning tipicamente impiegati per la clas- sificazione del testo [23], uno basato su Naive Bayes e l’altro su Macchine a Vettori di Supporto (SVM 2). I classificatori Naive Bayes sono degli strumenti addestrati in modo supervisionato che basano il discernimento sul teorema di Bayes. Essi assumono che le feature caratterizzanti l’istanza del problema in esame, rappresentate come punti nello spazio, seguano una certa distribuzione di probabilit`a (ad esempio gaussiana) e siano indipendenti tra loro (ipotesi naive). I classificatori SVM sono dei modelli di classificazione lineare, anch’essi ad addestramento supervisionato e rappresentanti gli esempi come punti nello spazio. La classificazione avviene definendo un iperpiano che separa le categorie in modo tale da massimizzare il margine geometrico. Per rendere possibile la separazione lineare delle classi, tali metodi ricorrono alla tecnica kernel trick, che consiste nel proiettare le istanze del problema in un nuovo spazio di dimensioni maggiori in cui tipicamente esiste un iperpiano lineare separatore. Come anticipato, quanto segue `e stato realizzato dal Machine Learning Lab dell’Uni- versit`a degli Studi di Trieste. Innanzitutto `e stato effettuato il seguente pre-processamento di ogni frase s: (i) si rimpiazza ogni occorrenza di una stringa contenuta in Dinteractors con interactor; 2 Dall’inglese Support Vector Machines
  • 36. 5. Valutazione sperimentale 28 (ii) si rimpiazza ogni occorrenza di una stringa contenuta in Dgenes con geneptn; (iii) si convertono tutti i caratteri di s in minuscolo; (iv) si sostituiscono tutti i caratteri non alfabetici (precisamente quelli che sono accettati dall’espressione regolare [ˆa-zA-Z ]) con uno spazio; (v) si esegue uno stemming su ciascuna parola, ad eccezione di geneptn e interactor. I passi i e ii sono eseguiti al fine di sfruttare la conoscenza contenuta nei dizionari, la quale non sarebbe altrimenti disponibile al classificatore. Per costruire il classificatore: 1. Si costruisce un insieme ordinato W di parole composto di tutte le parole che appaiono almeno una volta nei learning set S+ L , S− L ; 2. Si trasforma ciascuna frase s in un vettore f in cui l’i-esimo elemento corrisponde al numero di occorrenze in s della parola wi ∈ W; 3. Si esegue una procedura di feature selection per identificare i k elementi di f che meglio discriminano tra le frasi appartenenti a S+ L o S− L (si veda sotto). Sia f il vettore ottenuto considerando solo i k elementi scelti di f —ovvero, f contiene solo il conteggio delle occorrenze della parole selezionate nella procedura di feature selection; 4. Infine, si addestra un classificatore binario usando i vettori f1, f2, ..., fn corrispon- denti alle frasi s1, s2, ..., sn nei learning set S+ L , S− L (|S+ L ∪ S− L | = n). Una volta costruito il classificatore, al fine di classificare una nuova frase s: (i) si pre- processa s come descritto sopra; (ii) si ottiene il corrispondente vettore di feature f; e, infine, (iii) si fornisce f al classificatore addestrato. La procedura di feature selection `e basata sui vettori f = [ρ1, ..., ρm], dove ρi `e la i-esima feature del vettore. Tale metodo necessita di due parametri k, k , con k k, e lavora in due passi, come segue. Si consideri la matrice ottenuta prendendo come righe i vettori f1, f2, ..., fn, ogni colonna della matrice corrisponde a una feature. Al primo passo si calcola, per ogni i-esima ρi feature, la differenza relativa δi tra il suo valore medio sulle frasi dei due insiemi: δi = 1 |S+ L | S+ L ρi − 1 |S− L | S− L ρi maxS+ L ∪S− L ρi Successivamente si selezionano le k feature con maggior δi—tra quelle per le quali maxS+ L ∪S− L ρi > 0. Al secondo passo si calcola, per ogni i-esima feature tra le k scelte al passo precedente, la mutua informazione Ii con una etichetta—l’etichetta `e un valore binario che `e positivo per gli elementi in S+ L e negativa per gli elementi in S− L . Si scelgono poi le k feature con la maggiore Ii. Nel presente lavoro sono stati utilizzati due classificatori binari precedentemente realizzati in linguaggio R secondo il metodo riportato: Words-NaiveBayes e Words-SVM. Riguardo i parametri di feature selection k e k, si `e posto k = 1000 per entrambi i classificatori mentre il valore di k `e stato scelto in modo da massimizzare l’accuratezza
  • 37. 29 Risultati Classificatore Accuratezza FPR FNR Annotations-Co-occurrence 77.8 40.0 4.5 Annotations-LLL05-patterns 82.3 25.0 10.5 Words-NaiveBayes 51.3 25.0 95.0 Words-SVM 73.8 29.0 23.5 φ-SSLEA 61.3 44.0 33.5 C 77.0 23.5 22.5 Tabella 5.1: Risultati percentuali del metodo proposto nel presente lavoro e dei 5 metodi di riferimento, mediati sui 5 fold. sui learning set, ovvero, k = 25 per Words-NaiveBayes e k = 50 per Words-SVM. Words- NaiveBayes assume che le feature seguano una distribuzione gaussiana. Infine, riguardo SVM, `e stato utilizzato un kernel radiale Gaussiano con parametro di costo posto a 1. 5.4 Risultati `E stata eseguita una validazione incrociata a 5 fold, ovvero, sono state generate casual- mente 5 diverse istanze del problema dal corpus. Per ciascuna istanza, ≈ 80% dei dati sono stati utilizzati per l’apprendimento e ≈ 20% per il test. Nello specifico, sono stati utilizzati i learning set S+ L , S− L (con |S+ L | = |S− L | = 188) per addestrare il classificatore generato con la programmazione genetica C, φ-SSLEA, Words-NaiveBayes e Words-SVM; mentre `e stata valutata l’accuratezza di tutti i metodi di classificazione su due insiemi di test (testing set) S+ T , S− T (con |S+ T | = |S− T | = 40), distinti dai precedenti. Sono stati utilizzati gli stessi learning set e testing set per tutti i metodi considerati. La Tabella 5.1 mostra i risultati ottenuti dai 6 metodi. I risultati sono espressi in accuratezza, FPR e FNR, mediati sui 5 fold. Si pu`o osservare che il classificatore C `e quello che ottiene la maggiore accuratezza (77%) tra i 4 metodi che addestrano un classificatore solo a partire dagli esempi e dai dizionari—ovvero, senza alcun indizio relativo allo specifico problema. In altre parole si `e dimostrato che la programmazione genetica `e di fatto in grado di dedurre pattern da esempi, anche in scenari di elaborazione del linguaggio naturale di interesse pratico. Le accuratezze dei metodi di riferimento basati sullo specifico problema sono del 82.3% e 77.8% per Annotations-LLL05-patterns e Annotations-Co-occurrence, rispettivamente. I buoni risultati ottenuti da questi classificatori non sono sorprendenti se si considera che tali metodi sono basati su una considerevole quantit`a di conoscenza relativa al problema, come spiegato precedentemente nella Sezione 5.2. Inoltre, l’accuratezza di Annotations-Co-occurrence `e solo di poco migliore di quella di C. `E interessante notare che la accuratezza ottenuta da φ-SSLEA `e di molto peggiore ri- spetto a quella ottenuta dal classificatore generato con GP, nonostante i due approcci siano basati su strumenti simili—apprendimento evoluzionistico di DFA contro apprendimento evoluzionistico di insiemi di espressioni regolari. Sebbene questo risultato possa apparire piuttosto insolito—come detto, φ-SSLEA `e derivato da una metodologia considerata allo
  • 38. 5. Valutazione sperimentale 30 r1 = G[ˆo][ˆc3G]++G[ˆzfcB][ˆzc] r2 = .JiG.[ˆf9] r1 = GENEPTN [ ˆ RB ] [ ˆ NNS VBN GENEPTN ] ++ GENEPTN [ ˆ ( DT NNS RRB ] [ ˆ ( NNS ] r2 = . INOUN IN GENEPTN . [ ˆ DT NN ] Figura 5.1: Un esempio di classificatore generato con GP composto da due espressioni regolari, mostrate sia nella loro forma originale con i simboli in U (sopra), sia usando le annotazioni (sotto). Nelle epressioni con annotazioni sono stati inseriti degli spazi fra gli elementi per facilitare la lettura. stato dell’arte nell’addestramento di DFA—`e presumibile che ci`o sia dovuto al fatto che i problemi di benchmark tipici del DFA learning considerano brevi sequenze di simboli binari, con dati di addestramento presi uniformemente dallo spazio di input. Scenari di questo genere non calzano le problematiche di applicazioni NLP di interesse pratico, in cui si devono affrontare sequenze di simboli molto pi`u lunghe, alfabeti di dimensioni maggiori, dati non presi uniformemente dallo spazio di tutte le possibili sequenze. Questa possibile interpretazione `e avvalorata dalle recenti affermazioni di diversi autori: i problemi di benchmark per DFA learning non sono ispirati da applicazioni di interesse pratico [8] e l’applicabilit`a dei corrispondenti algoritmi di addestramento ad altri domini applicativi `e ancora un argomento largamente inesplorato [4]. La Figura 5.1 mostra uno dei classificatori ottenuti con GP negli esperimenti effettuati, composto di due espressioni regolari. Al fine di facilitare la comprensione, sono riportate anche le epressioni utilizzando le annotazioni (A ) oltre che i simboli di U. Si pu`o osservare che le espressioni includono annotazioni salienti (GENEPTN e INOUN) nonostante ad esse non sia stato attribuito un peso speciale nel meccanismo evolutivo. I due pattern non risultano di facile lettura, il che non `e sorprendente poich´e non `e stato implementato alcun meccanismo per l’agevolazione di individui rappresentanti espressioni regolari leggibili (tale aspetto rappresenta un possibile obiettivo da perseguire per lavori futuri).
  • 39. Capitolo 6 Ulteriori esperimenti Nel presente capitolo sono descritti ulteriori esperimenti eseguiti con variazioni dell’algo- ritmo φ-SSLEA e con variazioni del metodo GP. I risultati sono sempre riferiti ad una media su 5 fold, analogamente a quanto descritto nella Sezione 5.4. 6.1 Ulteriori esperimenti con φ-SSLEA Il classificatore ottenuto con l’algoritmo evolutivo φ-SSLEA raggiunge il 61.3% di accura- tezza sui dati di test, con parametri n = 7 (stati dell’automa) e nit = 5000 (iterazioni). Come riportato nella Sezione 5.1, si `e verificato che aumentare il numero di iterazioni non porta ad un aumento dell’accuratezza. La Figura 6.1 mostra le prestazioni degli automi ottenuti fissando n = 7 e variando il numero di iterazioni effettuate dall’algoritmo evolutivo. In particolare, con 1000 e 10000 iterazioni si ottiene, in entrambi i casi, un’accuratezza pari al 60.8%. La Figura 6.2 mostra invece i risultati per automi generati con nit = 5000 e variando il numero stati. Sono rilevanti i risultati ottenuti con 5 e 8 stati, per i quali l’accuratezza `e rispettivamente del 61.0% e 59.5%. 6.2 Ulteriori esperimenti con GP Analogamente a quanto effettuato per il metodo φ-SSLEA, sono stati condotti diversi esperimenti con i classificatori ottenuti per GP al variare dei parametri evolutivi. Si `e osservato, ad esempio, il diverso comportamento di classificazione influendo sul numero di individui nella popolazione iniziale npop, sul numero di generazioni ngen e sul numero di esecuzioni indipendenti njob. Sono discussi di seguito due esperimenti particolarmente rilevanti, relativi ad una differente metodologia evolutiva, piuttosto che alla mera messa a punto di alcun parametri. Essi sono (i) l’esperimento w/o separate-and-conquer e (ii) l’esperimento full precision. Il primo conduce una procedura priva del metodo separate-and-conquer, ovvero la ricerca 31
  • 40. 6. Ulteriori esperimenti 32 0 10 20 30 40 50 60 70 500 1000 5000 10 000 25 000 Prestazioni% Iterazioni Accuratezza FPR FNR Figura 6.1: Prestazioni di φ-SSLEA con n = 7 e nit variabile. 0 10 20 30 40 50 60 70 3 4 5 6 7 8 9 10 Prestazioni% Stati Accuratezza FPR FNR Figura 6.2: Prestazioni di φ-SSLEA con n variabile e nit = 5000.
  • 41. 33 Ulteriori esperimenti con GP GP viene eseguita una sola volta e da essa si ottiene un’unica espressione regolare, addestrata su tutti i dati dei training set X+ e X−. Dal punto di vista implementativo, `e sufficiente porre nstop ≥ ngen per ottenere tale comportamento. Il secondo esperimento mira a produrre un classificatore ad alta precisione ed `e stato implementato utilizzando la fitness f(r) := (FPR(r, X− ), FNR(r, X+ ), (r)) e imponendo τFPR = 1. La fitness f e l’ordinamento applicato—sulla dominanza di Pareto prima, lessicografico poi—promuovono individui che rappresentano espressioni regolari tali da accettare pochi esempi negativi, mentre la soglia τFPR = 1 impone che il metodo separate-and-conquer venga effettuato solo se il miglior individuo r, rimasto immutato per nstop generazioni, `e tale che FPR(r, X−) = 0. La Figura 6.3 riporta i risultati in termini di accuratezza, FPR e FNR, relativi agli esperimenti i e ii, confrontati con l’esito del metodo “standard” esplicato nel Capitolo 3. Osservando gli istogrammi si possono trarre le seguenti conclusioni: (i) `e presumibile che le prestazioni di w/o separate-and-conquer siano inferiori rispetto a quelle di standard perch´e il primo affronta l’intero problema con un solo pattern, mentre il problema stesso `e intrinsecamente multi-pattern; (ii) sebbene full precision sia migliore di standard in termini di FPR, l’eccessiva pressione evolutiva sulla precisione porta il metodo ad ottenere un pessimo tasso FNR.
  • 42. 6. Ulteriori esperimenti 34 0 10 20 30 40 50 60 70 80 standard w/o s&c full precision Prestazioni% Metodi Accuratezza FPR FNR Figura 6.3: Prestazioni dei classificatori GP ottenuti con metodo standard, w/o separate-and- conquer e full precision.
  • 43. Capitolo 7 Conclusioni Nel presente lavoro di tesi `e stato presentato un metodo evolutivo per generare pattern sintattici a partire da esempi testuali espressi in linguaggio naturale. Il metodo `e stato applicato ad un problema tanto interessante quanto arduo: la classificazione di frasi presenti in articoli scientifici del dominio biomedico. In particolare, la classificazione effettuata `e binaria e discerne tra frasi che contegono almeno una interazione tra geni e proteine e frasi che non ne contengono alcuna. Il metodo proposto si basa sulla programmazione genetica e trae spunto da recenti studi riguardo la generazione automatica di espressioni regolari da esempi del comportamento desiderato. `E stata inoltre studiata e applicata una tecnica per rappresentare le frasi come stringhe di simboli, le quali possono essere manipolate da comuni espressioni regolari. I simboli corrispondono ad annotazioni POS estese utilizzando dizionari relativi allo specifico problema. Lavorare al livello d’astrazione di annotazioni comporta diversi vantaggi pratici, tra i quali la modularit`a e la possibilit`a di sfruttare strumenti di annotazione considerati allo stato dell’arte, costantemente aggiornati. Il numero di pattern da generare a partire da un insieme di frasi d’esempio non `e noto priori, bens`ı viene determinato automaticamente attraverso la procedura separate-and-conquer, che scompone il problema in sottoproblemi pi`u semplici. Il metodo `e stato valutato su un corpus di 456 frasi etichettate a mano e confrontato con 5 metodi di riferimento significativi. Le prestazioni di classificazione sono risultate le migliori tra quelle dei metodi ad apprendimento. I buoni risultati ottenuti indicano che la programmazione genetica `e effettivamente in grado di imparare pattern sintattici a partire da esempi, anche in scenari dell’elaborazione del linguaggio naturale di interesse pratico. `E presumibile che il metodo sviluppato e i risultati conseguiti possano essere miglio- rati con l’impiego di ulteriori fonti di informazione applicate al corpus di frasi e una modellizzazione pi`u espressiva del problema. Infatti, impiegare strumenti capaci di estrar- re particolari informazioni semantiche da una frase, come ad esempio l’identificazione di entit`a e l’albero di dipendenze logiche tra le parole, potrebbe aiutare la capacit`a discernitiva del classificatore. Sarebbe inoltre opportuno valutare l’impiego di modelli pi`u 35
  • 44. 7. Conclusioni 36 espressivi delle espressioni regolari [7], da rappresentare opportunamente come individui del processo di programmazione genetica.
  • 45. Bibliografia [1] A. Bartoli, G. Davanzo, A. De Lorenzo, M. Mauri, E. Medvet, E. Sorio. Automatic generation of regular expressions from examples with genetic programming. In Proceedings of the fourteenth international conference on Genetic and evolutionary computation conference companion, pagine 1477–1478. ACM, 2012. [citato a p. 9] [2] A. Bartoli, G. Davanzo, A. De Lorenzo, E. Medvet, E. Sorio. Automatic synthesis of regular expressions from examples. Computer, 47:72–80, 2014. [citato a p. 1, 9] [3] A. Bartoli, A. De Lorenzo, E. Medvet, F. Tarlao. Learning text patterns using separate-and-conquer genetic programming. In 18-th European Conference on Genetic Programming (EuroGP), 2015. [citato a p. 10] [4] J. Bongard H. Lipson. Active coevolutionary learning of deterministic finite automata. The Journal of Machine Learning Research, 6:1651–1678, 2005. [citato a p. 35] [5] M. Bundschus, M. Dejori, M. Stetter, V. Tresp, H.-P. Kriegel. Extraction of semantic biomedical relations from text using conditional random fields. BMC Bioinformatics, 9(1):207, 2008. [citato a p. 1] [6] E. K. Burke, S. Gustafson, G. Kendall. Diversity in genetic programming: An analysis of measures and correlation with fitness. Evolutionary Computation, IEEE Transactions on, 8(1):47–62, 2004. [citato a p. 18] [7] A. X. Chang C. D. Manning. Tokensregex: Defining cascaded regular expressions over tokens. Technical report, Technical Report CSTR 2014-02, Department of Computer Science, Stanford University, 2014. [citato a p. 42] [8] O. Cicchello S. C. Kremer. Inducing grammars from sparse data sets: a survey of algorithms and results. The Journal of Machine Learning Research, 4:603–632, 2003. [citato a p. 29, 34] [9] E. D. De Jong J. B. Pollack. Multi-objective methods for tree size control. Genetic Programming and Evolvable Machines, 4(3):211–233, 2003. [citato a p. 16, 18] 37
  • 46. BIBLIOGRAFIA 38 [10] J. Friedl. Mastering regular expressions. O’Reilly Media, Inc., 2006. [citato a p. 7] [11] K. Fundel, R. K¨uffner, R. Zimmer. Relex—relation extraction using dependency parse trees. Bioinformatics, 23(3):365–371, 2007. [citato a p. 1, 3] [12] S. Gupta, D. L. MacLean, J. Heer, C. D. Manning. Induced lexico-syntactic patterns improve information extraction from online medical forums. Journal of the American Medical Informatics Association, 21(5):902–909, 2014. [citato a p. 1, 3, 4] [13] J. Hakenberg, C. Plake, U. Leser, H. Kirsch, D. Rebholz-Schuhmann. LLL’05 challenge: Genic interaction extraction-identification of language patterns based on alignment and finite state automata. In Proceedings of the 4th Learning Language in Logic workshop (LLL05), pagine 38–45, 2005. [citato a p. 1, 3, 4, 30] [14] J. Kasprzak, M. Brandejs, et al. Improving the reliability of the plagiarism detection system. Notebook Papers of CLEF, 2010. [citato a p. 4] [15] S. Kleene. Representation of events in neuron networks and finite automata. Automata studies, Princeton, 1956. [citato a p. 7] [16] J. R. Koza. Genetic Programming: On the Programming of Computers by Means of Natural Selection. pagine 93–94, 1992. [citato a p. 17] [17] S. Kulick, A. Bies, M. Liberman, M. Mandel, R. McDonald, M. Palmer, A. Schein, L. Ungar, S. Winters, P. White. Integrated annotation for biomedical information extraction. In Proc. of HLT/NAACL, pagine 61–68, 2004. [citato a p. 1] [18] K. J. Lang, B. A. Pearlmutter, R. A. Price. Results of the abbadingo one DFA learning competition and a new evidence-driven state merging algorithm. In Grammatical Inference, pagine 1–12. Springer, 1998. [citato a p. 29] [19] W. Langdon M. Harman. Optimizing existing software with genetic program- ming. Evolutionary Computation, IEEE Transactions on, 19(1):118–135, Feb 2015. [citato a p. 18] [20] J. Li, Z. Zhang, X. Li, H. Chen. Kernel-based learning for biomedical relation extraction. Journal of the American Society for Information Science and Technology, 59(5):756–769, 2008. [citato a p. 1] [21] S. M. Lucas T. J. Reynolds. Learning deterministic finite automata with a smart state labeling evolutionary algorithm. IEEE Transactions on Pattern Analysis and Machine Intelligence, 27(7):1063–1074, 2005. [citato a p. 29] [22] H. Poon, C. Quirk, C. DeZiel, D. Heckerman. Literome: Pubmed-scale genomic knowledge base in the cloud. Bioinformatics, 2014. [citato a p. 1] [23] F. Sebastiani. Machine learning in automated text categorization. ACM computing surveys (CSUR), 34(1):1–47, 2002. [citato a p. 31]
  • 47. 39 BIBLIOGRAFIA [24] M. Volk, B. Ripplinger, ˇS. Vintar, P. Buitelaar, D. Raileanu, B. Sacaleanu. Se- mantic annotation for concept-based cross-language medical information retrieval. International Journal of Medical Informatics, 67(1):97–112, 2002. [citato a p. 1] [25] A. Yakushiji, Y. Miyao, T. Ohta, Y. Tateisi, J. Tsujii. Automatic construction of predicate-argument structure patterns for biomedical information extraction. In Proceedings of the 2006 Conference on Empirical Methods in Natural Langua- ge Processing, pagine 284–292. Association for Computational Linguistics, 2006. [citato a p. 1] [26] L. Yao, C.-J. Sun, X.-L. Wang, X. Wang. Relationship extraction from biomedical literature using maximum entropy based on rich features. In Machine Learning and Cybernetics (ICMLC), 2010 International Conference on, volume 6, pagine 3358–3361, July 2010. [citato a p. 1]
  • 48.
  • 49. Ringraziamenti Apriamo le danze. Ringrazio in primis il buon Dio della religione pseudocristiana in cui credo. Senza di Lui tutto non sarebbe stato possibile. Proprio tutto. Ringrazio i miei genitori, che hanno foraggiato i miei studi e il mio stomaco: una spesa notevole. Solo il tempo potr`a rivelarci se tale scelta sia stata oculata o meno. Due brave e oneste persone, non tutti sono fortunati quanto me. Un grazie soprattutto per l’educazione e l’affetto datomi. Spero che questo mio traguardo possa in parte ripagare lo sforzo che hanno sostenuto. Ringrazio tutti gli altri familiari che hanno concorso a darmi affetto e incoraggiarmi durante questo percorso. Non dimentico Ottavia, la cui luce si `e purtroppo spenta durante il percoso universitario, perch´e so che mi `e stata e mi star`a sempre accanto. Ringrazio inoltre tutte le persone che, per qualche motivo, mi vogliono bene e mi sono state vicine. Ringrazio i miei amici, sia i belli quasi-quanto-me, sia i brutti e i molto brutti, per tutte le attivit`a extra-universitarie che hanno concorso a mantenere integra la mia sanit`a mentale. Ringrazio anche Daniele, compagno di intense sessioni di programmazione per sviluppare app di successo al limite della legalit`a, che non rientra nelle categorie sopracitate in quanto palesemente pi`u bello (e pi`u intelligente) di me. Ringrazio i volontari del Burlo, di cui sono diventato membro negli ultimi mesi, perch´e cercano di portare un sorriso ai bimbi malati e un conforto alle famiglie di queste piccole anime. Un nobile intento. L’opportunit`a di partecipare a questo volontariato `e una delle cose che considero pi`u importanti. Keep up the good work. Ringrazio Rossella per l’aiuto a scrivere il seguente paragrafo in friulano. O ringracii il professor Alberto Bartoli che al a permetˆut di puart`a indenant cheste tesi. Cun di plui che al `e stˆat un otim insegnant e relatˆor, o pensi che al sedi ancje une grande persone. In ogni cˆas, cemˆut che si use d`ı, “Chi di schiena e chi di petto, tutti abbiam qualche difetto”: al `e un vˆer pecj`at che nol sedi bon di preseˆa le gloriose marilenghe furlane. Pi`u seriamente: una grande, grande persona, di cui ho tanta, tanta stima. Non ha senso fare complimenti sul campo professionale, sarebbero ridondanti 41
  • 50. Ringraziamenti 42 dopo che `e stata riconosciuta la sua supremazia come miglior docente... xe proprio cos`ı ci`o dei. Ringrazio Eric. Nonostante la giovine et`a, un capacissimo docente. Ottimi sugge- rimenti dovuti ad una grande creativit`a, risposta e battuta sempre pronta1. Inoltre, `e sempre il migliore in qualsivoglia disciplina—a patto di restringere opportunamente il subset. Ringrazio Andrea. Un postdoc di cui francamente invidio le capacit`a e le conoscenze. Grazie a lui mi sento un po’ meno capra. Tuttavia, ci tengo a precisare che non lo ringrazio affatto per i metodi di approccio fallimentari che mi ha suggerito con le ragazze: il “lui non verr`a” `e stato uno dei miei flop peggiori. E non lo ringrazio nemmeno per aver sabotato il “posto della merenda di Marco”. Ringrazio Fabiano. Oh sapiente dottorando, a lui, antico saggio, dedico i miei ringratiamenti in modo s`ı aulico, poich´e da altre e lontane epoche ello giunge a noi et ergo merita le miliori vocationi! Con la sua snervante pazienza e irritante riflessivit`a mi ha aiutato pi`u volte a trovare il bandolo della matassa, mentre io modificavo casualmente righe di codice2, in preda allo sclero pi`u totale. Come per Andrea, non lo posso ringraziare per i consigli con le donne. Possa il MaLe Lab continuare a produrre conoscenza scientifica e spadroneggiare negli alti piani del C3. Un pensiero va poi a chi, putroppo, ci ha lasciato proprio durante questa esperienza. In effetti nessuno si aspettava che potesse durare molto e cos`ı `e tristemente stato. Certo i segni della malattia c’erano, ha avuto spesso problemi. Ci siamo conosciuti appena, ma so che rester`a nel mio cuore. Caro Odyssey, R.I.P. (Riposa In Pezzi). 1 Purtroppo la quantit`a di battute `e spesso compensata dalla qualit`a delle stesse. 2 In realt`a mi ispiravo a GP: generare tante soluzioni casuali e poi scegliere la migliore, con fitness f = “forse cos`ı funziona”. Anzich´e crossover, facevo cross-fingers.
  • 51. 43 Ringraziamenti Ultimo ma non ultimo, ringrazio me stesso. Sono soddisfatto dell’impegno profuso e di come io sia cresciuto professionalmente e umanamente in questi anni. Bravo Marco, sono fiero di me.