• Non ci sono risultati.

Algoritmi per il word sense disambiguation

3.2 Passi fondamentali

Prima di procedere al calcolo della similarità semantica, ogni frase sorgente subisce una trasformazione che è fatta di 3 passi: parsing, stemming, combinazione dei due passi precedenti (vedi fig. 3.1).

Fig.3.1 Activity diagram delle trasformazioni subite dalla frase sorgente

Vediamo ora di illustrare in cosa consistono queste trasformazioni.

Parsing Stemming

Estrazione liste nomi e verbi

Lo stemming è un processo che comporta l’eliminazione di parole molto comuni (stopwords) come articoli e preposizioni, e la normalizzazione delle altre parole: i nomi vengono portati al singolare, i verbi all’infinito, ecc. Per lo stemming è stato utilizzato un package realizzato da F. Gavioli[16] per la lingua inglese.

Il parsing effettua l’analisi grammaticale della frase: ad ogni parola associa un tag che ne indica il tipo: nome, verbo, aggettivo, avverbio, articolo, preposizione, ecc. Ad esempio la frase “The white cat is hunting the mouse” diventa “The/DT white/JJ cat/NN is/VBZ hunting/VBG the/DT mouse/NN”.

Per effettuare questo tipo di operazione, è stato utilizzata la versione 1.0 del tagger Monty Tagger (scaricabile dal sito http://web.media.mit.edu/~hugo/montytagger ). Questo tagger utilizza il set di tag definiti dal Penn Treebank Project[17,18,19]; di seguito è riportata la lista completa dei tag e il loro significato.

Simbolo Significato CC Congiunzione CD Numero cardinale

DT Articolo (anche every, some, ecc)

EX There “esistenziale” (quando viene usato come soggetto) FW Parola straniera IN Preposizione JJ Aggettivo JJR Aggettivo comparativo JJS Aggettivo superlativo LS Lettere e numeri

MD Verbo modale (can, could, would, ecc)

NN Nome singolare

NNS Nome plurale

NNP Nome proprio singolare NNPS Nome proprio plurale

PDT Parole tipo all, many, both, such POS Indica il genitivo sassone ‘s PRP Pronome personale

PRP$ Pronome possessivo

RB Avverbio

RBR Avverbio comparativo

RBS Avverbio superlativo

RP Parola monosillabica tipo off, up, ecc. SYM Simbolo

TO To

UH Esclamazione

VB Verbo, forma base VBD Verbo, passato

VBG Verbo, gerundio o participio presente VBN Verbo, participio passato

VBP Verbo, presente, non terza persona singolare VBZ Verbo, presente, terza persona singolare

WDT Wh-word che precede un nome WP Wh-pronome (inizia con wh) WP$ Wh-pronome possessivo WRB Wh-avverbio

Grazie al parsing è possibile analizzare i termini contenuti nella frase al fine di estrarre la lista dei nomi e quella dei verbi compresi nella frase.

Dunque la frase dell’esempio precedente subisce le seguenti trasformazioni:

Frase originale: The white cat is hunting the mouse. Frase all’uscita dello stemmer: white cat be hunt mouse

Frase all’uscita del parser: The/DT white/JJ cat/NN is/VBZ hunting/VBG the/DT mouse/NN

La lista dei nomi comprende cat e mouse, quella dei verbi be e hunt.

Dopo aver subito queste trasformazioni, la frase è ora pronta per essere elaborata dal punto di vista semantico.

Usando le liste dei nomi e dei verbi si procederà al calcolo della similarità semantica mediante un paio di algoritmi. Queste procedure calcolano il significato più appropriato del nome o del verbo presente nella frase. Con i risultati ottenuti, ogni termine contenuto nel periodo viene sostituito dal corrispondente codice identificativo del significato che è apparso essere il più adatto per tale parola. Tale codice è univoco e viene assegnato all’interno di WordNet ad ogni significato di ogni parola.

Considerando sempre la frase utilizzata nell’esempio, si ottiene un risultato di questo tipo:

Frase “stemmizzata”: white cat be hunt mouse Frase con i codici di WordNet:

white *1788952* *2058045* *903354* *1993014*

Come si può notare il termine white non viene sostituito da nessun codice perchè è un aggettivo e perciò non viene considerato dagli algoritmi di word sense disambiguation. Nel caso in cui una parola non venga trovata nel dizionario di WordNet non viene inserito nessun codice ma viene lasciata la parola originale. Per esempio, se nella frase precedente non venisse trovato il verbo hunt si avrebbe questo tipo di risultato: white *1788952* *2058045* hunt *1993014*.

Per quanto riguarda l’insieme delle delle parole di riferimento, è stata vagliata la possibilità di calcolare, fissando un parametro, la similarità semantica dei nomi della frase, tenendo conto delle frasi adiacenti ad essa nel testo che si sta analizzando. Ciò viene fatto perché nelle frasi adiacenti potrebbero esserci parole utili per il word sense disambiguation dei termini contenuti nella frase sorgente. Consideriamo il caso in cui nella frase sia presente la parola mouse: se nelle frasi adiacenti si parla di animali, allora mouse è da intendersi col significato di roditore, se invece si parla di computer allora mouse è da intendersi col significato di dispositivo elettronico. Questo procedimento viene applicato solo ai nomi perché nel caso dei verbi non è molto significativo.

In particolare alla lista dei nomi della frase vanno aggiunti anche i nomi appartenenti alle frasi adiacenti. Mediante questa nuova lista si procederà al calcolo della misura di similarità semantica.

Nella figura 3.2 sono illustrati i passi fondamentali eseguiti per la risoluzione di ambiguità. L’attività di elaborazione viene eseguita per ogni frase contenuta nel documento che si vuole analizzare.

La generazione dei codici è relativa alla frase sorgente.

Fig. 3.2 Activity diagram dei passi fondamentali del progetto

Prima di passare a descrivere gli algoritmi utilizzati per il word sense disambiguation, nel prossimo paragrafo verrà introdotto il concetto che sta alla base del calcolo di similarità semantica fra sostantivi: l’iperonimo minimo comune, ossia il concetto meno generale comune a due sostantivi.

* Elaborazione frase Algoritmo wsd per nomi Generazione frase con codici

Algoritmo wsd per verbi

Documenti correlati