17
ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA TECNOLOGIA COGITO Relatore: Chiar.mo prof. Sonia Bergamaschi Candidato: Fabio Manganiello

ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

  • Upload
    jethro

  • View
    21

  • Download
    0

Embed Size (px)

DESCRIPTION

ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA TECNOLOGIA COGITO. Relatore: Chiar.mo prof. Sonia Bergamaschi. Candidato: Fabio Manganiello. ~ Contesto. > Realizzazione di un software in grado di riconoscere e classificare in - PowerPoint PPT Presentation

Citation preview

Page 1: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

ESTRAZIONE DI ENTITÀ NON NOTEDA CORPUS DI DOCUMENTI

NON STRUTTURATI UTILIZZANDO LATECNOLOGIA COGITO

Relatore:Chiar.mo prof. Sonia Bergamaschi

Candidato:Fabio Manganiello

Page 2: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Contesto

> Realizzazione di un software in grado di riconoscere e classificare in base al contesto d'uso entità non note all'interno di corpus di documenti non strutturati di grandi dimensioni

> Contesto: tirocinio trimestrale presso Expert System S.p.a., azienda leader nel campo delle tecnologie semantiche

> Sviluppo del software sulla base delle librerie aziendali [e sulla tecnologia proprietaria COGITO]

> Sviluppo del task di tirocinio: integrazione come modulo all'interno del progetto Okkam, progetto semantico finanziato dall'UE

Page 3: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Obiettivo del software> Realizzazione di un database di entità non note a priori (nomi propri di persone, aziende, prodotti, luoghi...) con relativa classificazione in base ai casi d'uso e potenziale definizione

ENTITÀ DI PARTENZA

Apache Tomcat

OBIETTIVO FINALE

> web server> java> installare> open source

> software

Page 4: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Perché i corpus> Non ha senso lavorare su singoli documenti o piccoli gruppi di documenti

> Pochi elementi di classificazione

> Poche potenziali entità da classificare

> Potenziali occorrenze di entità usate al di fuori dei loro contesti usuali

> Corpus usati in fase di test

> Newton – utilme 5 annate (ca. 1500 articoli)> Enciclopedia della Storia del Cinema (ca. 100 000 voci)> Enciclopedia Encarta (ca. 200 000 voci)> Corriere della Sera – ultime 15 annate (ca. 1 000 000 articoli)

Page 5: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Architettura del sistema

documenti

client dispatcherrisorsa opportuna[server GSL]

disambiguazione

XML

database

Page 6: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Linguaggi utilizzati

> C++ [sviluppo del server GSL]

> Perl [sviluppo del client]

> XML [scambio delle informazioni server -> client]

> SQL [inserimento e analisi dei dati su database]

Page 7: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Client

Analizza struttura directory

Ci sono file f da processare?

[si][no]

Invia f al dispatcher

Leggi XML di risposta

Leggi f

Parsing XML

Salvataggio su DB

Page 8: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Server GSL

Associazione al dispatcher

Comando di disambiguazione arrivato?

Leggi documento

Costruisci tree di disambiguazione

Ottieni domini del documento

Ci sono word w da esaminare?

[si]

[si]

[no]

[no]

Ottieni supernomen virtuale, predicato,soggetto/complemento di w e loro domini

Costruisci XML e invialo al dispatcher

Page 9: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Robustezza del codice> Non conoscendo a priori il tipo di entità che verranno esaminate e le dimensioni dei corpus da esaminare, è richiesto che l'applicazione sia il più robusta possibile e operi con stretti margini di errore in ogni situazione.

> XML generato sempre valido (parsing di eventuali doppi apici)

> Query SQL sempre valide (parsing di eventuali apici singoli, misure contro SQL injection)> Minimizzare l'allocazione di memoria dinamica per evitare potenziali memory leak> Ottimizzazione delle operazioni su DB (effettuare inserimenti o aggiornamenti su database solo quando la cache di INSERT è piena)> Ottimizzazione delle query su DB (indicizzazione per ridurre I tempi di query)

Page 10: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Analisi dei dati su Newton – 1

mysql> select dom,count(*)

from doc_domains d join entity e on d.id_doc=e.id_doc and e.ent='Hubble' group by 1 order by 2 desc limit 12;

+-------------------------+----------+| dom | count(*) |+-------------------------+----------+| aeronautica | 15 || commercio | 15 || astronautica | 15 |

| economia | 15 || astronomia | 15 || spettacolo | 11 || ingegneria aerospaziale | 11 || termini tecnici | 11 || architettura | 11 || diplomazia | 11 || missilistica | 11 |

| astrofisica | 11 |+-------------------------+----------+12 rows in set (0.00 sec)

> Risultati dell'analisi effettuata sul corpus della rivista scientifica Newton (visualizzazione dei domini dei documenti associati all'entità non nota “Hubble”

Page 11: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Analisi dei dati su Newton – 2

> Risultati dell'analisi effettuata sul corpus della rivista scientifica Newton (visualizzazione dei domini dei documenti associati ai lemmi collegati all'entità non nota “Hubble”

mysql> select domain1,count(*) as num

from entity_domains d join entity_synsets s join entity eon e.id_occ=s.id_occand s.id_ent=d.id_entand ent='Hubble'group by 1order by 2 desclimit 20;

+--------------+-----+| domain1 | num |+--------------+-----+| astronautica | 14 |

| fotografia | 1 || diplomazia | 1 |+--------------+-----+3 rows in set (0.00 sec)

Page 12: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Progetto Okkam> Progetto finanziato dalla UE per la creazione di una base di dati in grado di gestire in modo automatizzato la conoscenza disponibile in rete

documenti

Modulo Okkam

disambiguazione

Databasedistribuito

Okkam

output in XML

Page 13: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Come opera il modulo> Trova entità non note nel documento

> Per ogni entità non nota, memorizza lemmi

> Usati nella stessa frase> Usati nelle due frasi adiacenti

> ...

> Fino a una distanza in frasi d

> Peso dell'occorrenza i-esima della coppia (e,l)i :

wie , l=2−di

> Peso complessivo della coppia (e,l):

w e , l =∑i=0

Nw i e , l=∑i=0

N2−d i

Page 14: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Analisi dei dati – Corpus Corriere

> Risultati dell'analisi effettuata sul corpus del biennio 2006-2007 del Corriere della Sera (coppie entità-lemma più ricorrenti)

mysql> select ent,lemma,score

from lemmas order by score desc limit 20;

+-----------------+-----------+--------+| ent | lemma | score |+-----------------+-----------+--------+| Moratti | sindaco | 686.5 || Prodi | governo | 568 || Letizia Moratti | sindaco | 530.5 || Berlusconi | governo | 356 || Moratti | Milano | 284.75 || Letizia Moratti | Milano | 280 || Berlusconi | Prodi | 237 || Palazzo Marino | Comune | 230.5 || Romano Prodi | governo | 208.75 || Vittorio Sgarbi | assessore | 193.25 || Moratti | città | 177 || Romano Prodi | premier | 177 || Prodi | premier | 159.25 || Sforzesco | Castello | 157.25 || Veltroni | sindaco | 156.5 || Lambro | Parco | 140.75 || Palazzo Marino | assessore | 133 || Pirelli | Telecom | 130.25 || Palazzo Marino | sindaco | 127.25 || Vittorio Sgarbi | Cultura | 124.5 |+-----------------+-----------+--------+20 rows in set (0.08 sec)

Page 15: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Considerazioni sull'analisi

mysql> select avg(score)

as "score medio" from lemmas;

+-----------------+| score medio |+-----------------+| 3.2243184912657 |+-----------------+1 row in set (0.02 sec)

> ...tuttavia lo score medio di pertinenza è sorprendentemente basso...

> è quindi necessario fare una scrematura post-analisi sul database per eliminare il “rumore”

Page 16: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

~ Conclusioni

> Le tecnologie semantiche sono il futuro dell'informatica

> in particolare del web (rilvoluzione del web 3.0 alle porte)

> Le tecnologie semantiche consentiranno l'abbattimento delle barriere fra l'utente e un'informatica rigida e pragmatica, attraverso un'informatica in grado potenzialmente di comprendere il linguaggio naturale

Page 17: ESTRAZIONE DI ENTITÀ NON NOTE DA CORPUS DI DOCUMENTI NON STRUTTURATI UTILIZZANDO LA

> grazie_per_l_attenzione