Laboratorio di programmazione

Motore di ricerca

Il numero di siti Internet è enorme, ormai ha raggiunto una crescita esponenziale. Ogni sito è costituito da diverse pagine, alcune volte diverse centinaia. Il volume di informazioni è quindi enorme. Era inevitabile che nascessero sistemi che consentissero di eseguire ricerche. Si tratta dei motori di ricerca. Il principio è semplice.

II concetto di motore di ricerca è molto vasto. In realtà esistono due famiglie di prodotti:

  1. I motori di ricerca veri e propri

  2. I portali

La differenza fra i due tipi di prodotti è consistente. I motori dì ricerca non tengono conto della nozione di sito, ma indicizzano le pagine di ogni sito. Analizzano tutte le pagine di un sito, le indicizzano e creano Ì relativi riferimenti nei database. Questo lavoro viene eseguito da un robot tramite un programma, tutto avviene senza l'intervento umano. II principio su cui si basano i portali è molto diverso. Non forniscono riferimenti alle pagine, ma ai siti. Questi siti sono generalmente classificati in categorie da esseri umani. Quando si consultano i portali si hanno quindi due possibilità: utilizzare una ricerca per parole chiave, come per i motori di ricerca. oppure percorrere menu, categorie e sottocategorie, fino a quando si trova il sito che interessa. Questa seconda modalità di consultazione è meno efficace quando si ricerca un'informazione precisa, ma permette di ottenere elenchi di siti per classi e per argomento. Logicamente il numero dei siti presenti nei portali è molto inferiore rispetto a quello dei motori di ricerca. II primo motore di ricerca, Yahoo! è nato quasi per caso. Due studiosi avevano preso l'abitudine di scambiarsi i loro indirizzi Internet utili. Poiché il loro carnet di indirizzi continuava a crescere e si chiedevano spesso consigli sui siti da visitare, hanno deciso di registrare questi indirizzi in un database e di renderla accessibile tramite Internet. In questo modo è nato Yahoo!, che anche oggi si trova nel gruppo di testa dei motori di ricerca.
Il lavoro di un motore di ricerca è articolato in tre parti principali:

La prima parte del lavoro è effettuata dagli spider (chiamati anche crawler o robot): questi non fanno altro che girare per la rete alla ricerca di siti da analizzare. Una volta che uno spider entra su un sito, ne legge la struttura html, analizzando i titoli, i meta tag, il testo e i link contenuti nelle pagine. Proprio grazie ai link, in teoria uno spider dovrebbe proseguire poi instancabilmente la sua opera di esplorazione, saltando da una pagina all'altra tramite i collegamenti ipertestuali. Tutti i dati raccolti durante l'analisi vengono inseriti in un database: lì verranno conservati finchè qualcuno non effettuerà una ricerca che riguardi in qualche maniera proprio loro. L'indicizzazione automatica di un motore di ricerca segue due strade principali: l'uso di metatag e l'indicizzazione full-text. I meta tag sono un caso particolare di meta informazioni, ovvero di informazioni sulle informazioni. Ogni autore web ha la possibilità di inserire nell'intestazione della propria pagina alcune informazioni sulla pagina stessa, ad esempio un elenco di parole chiave, o una breve descrizione del contenuto. L'indicizzazione full-text permette di assegnare come parole chiave di un testo tutte le parole significative che vi compaiono. Questa è una funzionalità estremamente potente e flessibile, perché permette di recuperare tutti i documenti che contengono una determinata parola o frase, cosa che non è assolutamente possibile fare tramite le forme manuali di indicizzazione. Il problema sta nell'attribuire rilevanza diversa alle diverse parole. Non tutte le parole che compaiono in un testo, infatti, sono ugualmente rappresentative del suo contenuto, e non tutti i testi che contengono una data parola sono ugualmente rilavanti rispetto ad essa. Occorrono allora delle procedure per assegnare un peso diverso alle diverse parole che compaiono in un testo. Il modo migliore sarebbe avere qualcuno o qualcosa che è in grado di comprenderne il significato. E' questa la strada seguita dai cataloghi. Al momento, però, non esistono macchine in grado di comprendere e manipolare significati simbolici, come quelli della parola scritta. Non è solo questione di intelligenza. Attualmente, quindi, si usano tecniche statistiche per attribuire un peso alle parole chiave. Gli algoritmi di indicizzazione variano da un motore di ricerca ad un altro, e la loro esatta definizione è protetta dal segreto industriale. In linea di massima comunque si seguono procedure basate sulla frequenza delle parole. Una prima strada è quella di eliminare dal testo tutte le parole prive di significato semantico autonomo, come le congiunzioni, gli articoli, i termini generici (es. "cosa", "questione", ecc.) e altri, identificati sulla base di una lista stilata da esseri umani (questafase viene chiamata parser). Il peso delle parole rimaste viene assegnato in modo direttamente proporzionale alla loro frequenza nel testo. Questo si basa sulla semplice ipotesi che maggiore è la frequenza di un termine in un testo e maggiore è la probabilità che quel termine sia rilevante in quel testo. La valutazione di un sito è quindi strettamente connessa al suo contenuto: grazie ad un'analisi del testo, una pagina viene considerata più o meno significativa per ognuna delle parole contenute in essa. In pratica, se un mio ipotetico sito, con titolo "Francobolli: storia e curiosità", contiene nel testo 10 volte la parola francobolli, ho buone possibilità che venga considerato significativo proprio per le ricerche effettuate utilizzando quella parola, e che venga di conseguenza presentato piuttosto in alto fra i risultati proposti. Infatti, nel momento in cui qualcuno ricerca "francobolli" sul ns. motore, grazie a stringhe particolari di codice, viene interrogato il database, a cui viene chiesto di presentare, in ordine decrescente di importanza, tutti i siti contenenti la parola francobolli.























































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.