Impetuosa
Impetuosa - Ominide - 5 Punti
Rispondi Cita Salva
Motore di ricerca per documenti ASCII c++:
ciao ragazzi programmo in c++, e mi servirebbe una mano per un compito
Il motore di ricerca è costituito da due applicazioni distinte: l’indicizzatore e il gestore delle interrogazioni.
mi servirebbe il gestore delle interrogazioni cioè il processore:
queste sono le istruzioni che mi hanno dato:Il processore delle interrogazioni
Il processore delle interrogazioni è un programma che riceve in input dall’utente un’interrogazione (cioè una serie di termini, detti “keyword”) e produce in output la lista dei documenti della collezione dove tali termini compaiono, ordinata per rilevanza del documento rispetto all’interrogazione.
Ad esempio, se il processore delle interrogazioni riceve dall’utente l’interrogazione “Brutus Cesar”, deve restituire l’elenco ordinato dei documenti che contengono entrambe le keyword (cioè l’interrogazione equivale a “Brutus AND Cesar”).
In linea di massima, il processore delle interrogazioni opera secondo i passi seguenti:
1. Costruisce l’insieme dei risultati, cioè il gruppo dei documenti che soddisfano l’interrogazione.
2. Ordina (rank) l’insieme dei risultati in base alla rilevanza dei documenti rispetto all’interrogazione.
3. Presenta all’utente il risultato
Costruzione dell’insieme dei risultati
Se l’interrogazione consiste di una sola keyword, la costruzione dell’insieme dei risultati richiede semplicemente la scansione della posting list relativa al termine relativo alla keyword.
Se l’interrogazione consiste di più keyword, la costruzione dell’insieme dei risultati richiede l’intersezione (efficiente) delle posting list riguardanti tutte le keyword dell’interrogazione.
La costruzione dell’insieme dei risultati produce in output la lista dei documenti che soddisfano l’interrogazione.
Ordinamento (ranking) per rilevanza
Ordinare l’insieme dei risultati richiede di calcolare per ogni documento di tale insieme la rilevanza rispetto all’interrogazione.
Ciascun documento riceve un punteggio (score) che esprime la sua rilevanza. I documenti del risultato sono ordinati per punteggio decrescente.
Il punteggio di rilevanza è calcolato come segue.
Ogni documento e l’interrogazione sono rappresentati come vettori di T termini (dove T è il numero di termini nel dizionario); il vettore dell’interrogazione (query) è:
q=(w1,q,w2,q ,...,wt,q).
Il peso w1,q, del termine con codice #1 per l’interrogazione q vale 1 se il termine fa parte dell’interrogazione, 0 altrimenti.
Il vettore di un documento con codice di collezione #j è:
dj=(w1,j,w2,j ,...,wt,j)
Il peso w1,j, del termine con codice #1 per il documento j viene calcolato applicando la funzione tf-idf (term
frequency–inverse document frequency)
http://it.wikipedia.org/wiki/Tf-idf
Una volta determinati i pesi dei due vettori come indicato, il punteggio di rilevanza (score) dell’interrogazione rispetto a ciascun documento nell’insieme dei risultati è calcolata come il coseno (prodotto interno) dei due vettori:
http://it.wikipedia.org/wiki/Coseno_di_similitudine
L’ordinamento (ranking) dell’insieme dei risultati corrisponde all’ordinamento decrescente dei documenti in base al loro punteggio di rilevanza.
Si noti come il calcolo dei pesi nel vettore corrispondente al documento richieda il caricamento in memoria centrale delle strutture dei dati contenute nei file d’indice prodotti dall’indicizzatore.
Pertanto il processore delle interrogazioni procede secondo i seguenti passi:
1. Caricamento in memoria centrale dell’indice invertito
2. Richiesta all’utente dei termini dell’interrogazione
3. Calcolo dell’insieme dei risultati
4. Ordinamento dell’insieme dei risultati
5. Presentazione dell’insieme dei risultati
6. Eventuale nuova interrogazione, riprendendo dal passo 2.
Questo topic è bloccato, non sono ammesse altre risposte.
Come guadagno Punti nel Forum? Leggi la guida completa
In evidenza
Classifica Mensile
Vincitori di agosto
Vincitori di agosto

Come partecipare? | Classifica Community

Community Live

Partecipa alla Community e scala la classifica

Vai al Forum | Invia appunti | Vai alla classifica

.anonimus.

.anonimus. Tutor 45016 Punti

VIP
Registrati via email