The Master's thesis concerns the process of building a classifier by means of Genetic Programming that is able to recognize syntax patterns occurring in sentences containing genes and proteins interactions.
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)
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
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.