• Non ci sono risultati.

2.4 Information retrieval e dati semi-strutturati: XML retrieval

3.1.1 Indexing process

L’architettura del processo di indicizzazione si suddivide in tre blocchi principali (figura 3.2):6

• l’acquisizione del testo (text acquisition); 4 Bass, Clements e Kazman 2013.

5 Croft, Metzler e Strohman 2015. 6 Croft, Metzler e Strohman 2015.

• la trasformazione del testo (text transformation); • la creazione dell’indice (index creation).

Figura 3.2: Componenti del processo di indicizzazione.

Fonte: Croft, Metzler e Strohman 2015. La parte di acquisizione del testo (text acquisition) si occupa di recuperare e rendere disponibili i documenti sui quali si intende effettuare la ricerca, creando un archivio dati, formato sia dal contenuto testuale, sia dai metadati7a esso collegato. Successivamente, il

processo prevede la fase di trasformazione del testo (text transformation o text analysis), per mezzo della quale si elaborano i documenti estraendo da essi le unità di indicizza- zione (index terms), ovvero gli elementi informativi che verranno utilizzati dalla fase di indicizzazione (index creation), che avvierà dunque la creazione dell’indice, processo che richiede accortezza computazionale sia in termini di tempo che di spazio occupato.

Di seguito verranno esaminati in dettaglio i componenti di ciascun blocco, premet- tendo che non tutti i componenti sono obbligatori per la realizzazione di un motore di ricerca, in quanto ognuno di essi viene implementato sulla base dei requisiti specifici dell’applicazione e degli obiettivi che si vogliono raggiungere.

Text acquisition

La prima fase del processo di indicizzazione è, come abbiamo già introdotto, l’acqui- sizione del testo, in merito al quale possiamo individuare varie modalità di recupero. In 7 I metadati sono dati (informazioni) che forniscono informazioni su altri dati. Un esempio tipico di metadato è l’identificativo di un libro (ISBN), ossia un dato numerico che ha il compito di descrivere un altro dato (libro). Metadata:https://developer.mozilla.org/en- US/docs/Glossary/Metadata.

molte applicazioni il componente che si occupa di identificare e acquisire i documenti per il motore di ricerca è chiamato crawler, utilizzato principalmente nell’ambito dell’indi- cizzazione di documenti Web e che sta alla base del funzionamento degli specifici motori di ricerca. Esso si occupa di scansionare periodicamente i documenti presenti nel Web, compresi i documenti collegati attraverso link interni, allo scopo di creare un indice il più esaustivo possibile. I motori di ricerca, di conseguenza, utilizzano i documenti recuperati dal crawler per creare o aggiornare gli indici, aumentando così l’efficacia delle ricerche condotte dall’utente. Un altro modo per recuperare i documenti è tramite il cosiddet- to feed (flusso), un meccanismo per accedere in tempo reale a un flusso di documenti. Un feed viene reso disponibile agli utenti, al quale possono iscriversi, ed è utilizzato per fornire contenuti frequentemente aggiornati. Esistono vari formati e standard per il tra- sferimento di dati riconducibili alla modalità feed. Il più adottato attualmente è Atom,8

basato sul linguaggio XML.

A loro volta, i documenti recuperati si possono presentare in una varietà di formati molto ampia, come XML, HTML,9 Adobe PDF10 e così via. La gran parte dei motori di

ricerca richiedono che questi documenti siano convertiti in testo e accompagnati dai re- lativi metadati, passaggio fondamentale che prepara i documenti a ulteriori elaborazioni. Un problema di conversione comune deriva dalle codifiche dei caratteri utilizzate dal te- sto del documento, ossia quali tipi di caratteri e quale rappresentazione è stata adottata per la versione elettronica del documento, aspetto molto importante, soprattutto quando siamo in presenza di documenti in lingue diverse. In questo caso le buone pratiche da seguire indicano l’utilizzo di standard universali e plurilingui come lo UNICODE,11che

sfruttano codifiche moderne ed efficienti come l’UTF-8.12

Infine i documenti, con i relativi metadati, vengono compressi e immagazzinati in un archivio, solitamente una banca dati testuale, in modo che siano disponibili e facilmente recuperabili per essere utilizzati nella fase successiva, che è quella di trasformazione del testo.

8 Introduction to Atom:https://validator.w3.org/feed/docs/atom.html. 9 HTML:https://developer.mozilla.org/en- US/docs/Glossary/HTML.

10Adobe PDF:https://acrobat.adobe.com/us/en/acrobat/about- adobe- pdf.html. 11Unicode standard:https://unicode.org/standard/standard.html.

Text transformation

Dopo aver acquisito e archiviato i documenti, è necessario passare alla fase di tra- sformazione (analisi) del testo. Qua riveste un ruolo fondamentale un componente detto parser (o analyzer), responsabile della segmentazione del contenuto testuale del docu- mento in una sequenza di unità di elaborazione e indicizzazione detti token,13 con lo

scopo di individuare elementi strutturali, come titoli, paragrafi, righe, etc. Il processo che si occupa di dividere il testo in token è detto tokenizzazione (tokenizing). Essa deve essere in grado di gestire anche casi particolari di analisi, come la presenza di lettere maiuscole, apostrofi, parole composte, e così via.

Nell’architettura della fase di trasformazione e analisi sono spesso presenti due ulte- riori componenti importanti. Questi sono il componente di trattamento delle stop words e il componente di stemming. Il primo componente ha il compito di rimuovere dal testo tutte le parole vuote e a frequenza elevata, cioè tutte quelle parole che aiutano a for- mare la struttura della frase, ma hanno poco significato, come articoli, preposizioni e congiunzioni. Essendo molto utilizzati nel testo, l’eliminazione di tali tipologie di token consente di tenere sotto controllo la dimensione dell’indice e l’efficacia dei risultati della query. Il secondo componente invece si occupa di ridurre la forma flessa di una parola alla sua forma radice, che non corrisponde necessariamente alla sua radice morfologica (lemma). Consideriamo le parole “pesce”, “pesci”, “pescare” e “pescando”: sostituendo ogni membro di un gruppo con la radice comune, in questo caso “pesc”, si contribui- sce ad aumentare l’efficacia dei risultati, anche se c’è anche la possiblità di peggiorare la precisione. In questo caso, per esempio, in risposta alla domanda “pescare” non sarà possibile recuperare documenti relativi a diverse varietà di pesci.14Un’altra tecnica utile

è l’estrazione di informazioni (information extraction), usata per identificare le parole con un significato semantico specifico, come le entità nominate (named-entities) o la termi- nologia di dominio. Il processo che si occupa di riconoscere le named-entities identifica le parole con significato semantico e le classifica in categorie predefinite, come “nomi di persone”, “luoghi”, “date”, e così via.15

13Un token è l’unità minima di elaborazione in cui è diviso un testo elettronico. Per approfondire l’argomento vedere Barbera 2013, p. 22.

14Croft, Metzler e Strohman 2015. 15Gupta 2018.

Index creation

L’ultima parte del processo di indicizzazione è la creazione dell’indice (index crea- tion). Il nucleo di quest’ultima fase è il cosiddetto componente di inversione (inversion component), che ha il compito di recuperare i risultati della trasformazione del testo e creare un indice inverso (inverted index), attraverso il quale accedere in modo efficiente ai dati in seguito a un’interrogazione (query).

In aggiunta, si affianca al componente di indicizzazione un componente di elabora- zione delle statistiche del documento (document statistics component), che raccoglie e registra le informazioni statistiche sulle parole e sui documenti. Esse verranno utilizzate successivamente nel processo di query dal componente di classificazione (ranking com- ponent) per calcolare i punteggi di rilevanza, allo scopo di restituire una lista ordinata di documenti rilevanti in risposta a una query. Le tipologie di informazioni generalmente richieste si basano sui conteggi delle ricorrenze del termine, sulla posizione che questo occupa nel documento e sul numero di token che quest’ultimo contiene. Per esempio il peso (weight) di un termine presente nell’indice riflette l’importanza della parola nel documento e viene calcolato usando i dati forniti dalle statistiche sul documento. Uno tra gli indici più utilizzati per il calcolo del peso di un termine è quello conosciuto come tf-idf (term frequency–inverse document frequency), nel quale la term frequency misura le occorrenze di un termine t in un documento d, mentre l’inverse document frequency misura il numero di documenti D che contengono il termine t.

Documenti correlati