Il futuro dei motori di ricerca. Cosa ci aspetta dopo i motori di ricerca semantici (Parte II)
Pagina 2 di 2
Il "problema" , individuato dal LSI, è quindi il mancato reperimento e relativa visualizzazione di documenti che hanno a che fare con l'Iraq pur non contenendone il termine. Ma qual è la soluzione?
Diciamo subito che il Latent Semantic Indexing comprende una serie di implicazioni squisitamente matematiche e statistiche che in questo post non potremo prendere in considerazione; cercheremo di limitare al massimo la parte teorica per occuparci il più possibile solo di quella 'funzionale'.
La soluzione del LSI è questa. Se è vero che non tutti i documenti che "hanno a che fare" con una determinata area semantica non contengono tutte i termini che la definiscono, come è possibile non perdere nulla dei documenti? La soluzione proposta dal LSI è statistica e, come vedremo, esclusivamente statistica.
Il Latent Semantic Indexing 'al lavoro'
Prendiamo come esempio una pagina web, che è molto simile a una pagina di una rivista: contiene testo e immagini e il testo può essere maiuscolo, minuscolo, sottolineato, corsivo etc. Ora, in una pagina web (o di una rivista) moltissimi dei termini contenuti non sono utili per la defizione della sua area semantica.
Il linguaggio naturale è pieno di ‘ridondanze’ e non tutte le parole che appaiono hanno un significato in sé; in tutte le lingue indoeuropee la maggior parte delle parole utilizzate sono parole funzionali, congiunzioni, preposizioni, pronomi, verbi ausiliari, etc.
La prima operazione che deve essere utilizzata in fase di LSI è quella di eliminare tutti questi termini, in quanto inutili e ostacolo per l’analisi semantica della pagina, lasciando soltanto cioè che è veramente significativo. Quindi, data una pagina web si debbono:
- Eliminare gli articoli, le preposizioni e le congiunzioni
- Eliminare i verbi comuni (sapere, vedere, fare, essere)
- Eliminare i pronomi
- Eliminare gli aggettivi comuni (grande, vecchio, alto)
- Eliminare gli avverbi comuni
- Eliminare le parole che appaiono in ogni documento (stiamo supponendo infatti che il sistema di LSI lavori su un archivio di tanti documenti – pagine – differenti)
- Eliminare le parole che appaiono solo in un documento (come direbbero i grecisti, gli Hapax).
Una volta effettuata questa operazione, rimarranno solo le parole utili per il LSI; esse sono però ancora in una forma troppo vicina al linguaggio naturale per essere utili per il LSI, quindi bisogna procedere a quello che gli anglofoni chiamano “stemming”. Lo stemming non è altro che l’accorciamento, per arrivare alla loro 'radice', dei termini che sono rimasti disponibili dopo l’opera di eliminazione dei termini non necessari.
Poniamo che dopo la suddetta eliminazione siano rimasti cinque termini (ovviamente, nella realtà, il numero di termini per documento sarà molto più alto)
- Presidente
- Rivoluzione
- Guerreggiare
- America
- Dittatore
Lo stemming produrrà i seguenti ‘tronchi’ di parole
- Presid
- Rivoluz
- Guerr
- Americ
- Dittat
Queste sono finalmente le informazioni che saranno utilizzate per generare quello che in inglese viene definito "term-document matrix" , ovverosia la matrice dei termini del documento e questo per tutti i documenti contenuti nel nostro archivio (per esempio, in Internet, di tutte le pagine web che sono state indicizzate).
La TDM (Term Document Matrix)
La TDM è una griglia che rappresenta ogni termine contenuto in un documento. Abbiamo visto sopra come un documento (una pagina web), scritto in linguaggio naturale, sia 'ridotto' ai suoi elementi essenziali. La TDM viene generata disponendo la lista di tutti i termini sull’asse verticale e disponendo la lista di tutti i documenti (le pagine web) sull’asse orizzontale. Non è necessario che venga rispettato un qualche ordine anche se normalmente sarà utilizzata una disposizione alfabetica.
La TMD sarà quindi composta disponendo sull’asse verticale tutte i termini che lo compongono, una volta eliminate le parole non ritenute utili. Nella matrice, ovviamente, la presenza del termine nella pagina web sarà indicata con 1, mentre l’assenza sarà indicata con 0.
Questo approccio dà già dei risultati molto interessanti, ma esso può essere decisamente migliorato applicando un 'favoritismo' chiamato "term weighting" , ovverosia "peso delle parole".
Il term weighting nasce dalla formalizzazione di due considerazioni facilmente comprensibili.
- le parole che appaiono più volte all'interno del medesimo documento sono probabilmente più significative delle parole che appaiono poche volte o una volta soltanto (sempre che l'opera di 'pulizia' preliminare sia stata fatta correttamente e non siano quindi rimaste parole poco significative).
- le parole che sono usate raramente nel complesso dei documenti sono considerabili più 'interessanti' e quindi più rilevanti.
Queste due variabili danno il 'peso' delle parole all'interno del documento e quindi, in fase di ricerca, daranno al documento stesso (alla pagina web) una importanza relativa e permetteranno di stabilire un ranking 'verticale', ovverosia non fondato solo sulla presenza, ma anche sul loro peso.
C'è infine un terzo 'passaggio' da tenere in considerazione, che potremmo chiamare di 'normalizzazione'. Il principio che sta alla base della normalizzazione è molto semplice. Facciamo un esempio: un documento che parli di Saddam Hussein e che contenga 10.000 parole 'utili' potrà contenere la keyphrase "Saddam Hussein" 100 volte; un altro documento, che parla di Saddam Hussein, ma che contiene soltanto 1000 parole utili, difficilmente potr contenere la stessa keyphrase 100 volte, ma questo non vuol dire che sia meno rilevante; la 'normalizzazione' permette quindi di valutare la frequenza all'interno del documento in termini percentuali e non assoluti. In questo caso, il presupposto che un documento ampio sia più 'interessante' per un ricercatore (per chi, per esempio, esegue una query in un motore di ricerca) viene completamente rifiutato.
Queste tre variabili, peso 'locale', peso 'generale' e fattore di normalizzazione, determineranno il peso dei termini nelle colonne della matrice.
Ciò che viene particolarmente apprezzato nel LSI è il fatto che il sistema è applicabile a qualsiasi lingua o linguaggio, dal momento che non è basato sul significato dei termini ma sulla loro frequenza e sui fattori che abbiamo sopra preso in considerazione e che, come abbiamo visto, sono traducibili in semplici numeri.
Applicazione del LSI nei motori di ricerca
Dopo avere analizzato forse troppo superficialmente gli elementi basilari del LSI, possiamo tornare al focus del mio post, ovverosia l’applicazione di questa teoria alla pratica dell’attività di ricerca in Internet. Abbiamo detto che attualmente chi cercasse infatti con la keyword “Iraq” su Google non troverebbe nelle Serp nessun sito che non contenga la parola chiave "Iraq". Tutti i motori di ricerca, anche il potentissimo Google, 'ragionano' solo in termini di presenza della keyword cercata.
Con il sistema di LSI avremmo invece a disposizione anche una serie di pagine web che “hanno a che fare” con l’Iraq senza citare il termine Iraq; documenti su Saddam Hussein, sulla guerra del Golfo, sull’embargo petrolifero, sull’atavica contrapposizione tra sciiti e sanniti, etc. Senza dubbio, possiamo dire che il primo risultato, riprendendo le tre esigenze del 'web searcher' di cui parlavamo all’inizio prima, sarebbe una maggiore ampiezza dei risultati di ricerca.
Il problema che ora si pone è quello della precisione, ovverosia l’assenza di documenti che nulla hanno a che fare con la keyword/keyphrase cercata, e dell’attinenza, ovverosia del ranking dei documenti in fase di output. Diciamo subito che, a nostro parere, queste due questioni (precisione e attinenza) possono incrinare la validità del LSI in fase di applicazione al funzionamento di un motore di ricerca.
La nostra soluzione, apparentemente contrastante con tutto quanto detto sinora, sarà l’applicazione di un elemento squisitamente umano alla fase di archiviazione dei documenti, rimettendo in gioco quanto detto a proposito dell’archiviazione con Thesaurus.
Prima di arrivare però a questa 'proposta', vediamo come potrebbero rispondere i 'puristi' del LSI alle due questioni della precisione e dell’attinenza. Per quanto riguarda la precisione, potremmo dire che la risposta è tutta nella precisione della fase di 'pulizia' del linguaggio naturale, nella fase di stemming, nella costruzione della matrice, nel 'weighting' dei termini etc.
In sostanza, il sostenitore del LSI potrebbe rispondere: la precisione dei risultati sta tutta nella precisione con cui è stato svolto il processo di indicizzazione dei documenti (pagine web); se il lavoro è stato fatto bene, allora ci sarà estrema precisione, se il lavoro è stato fatto male, allora non ci sarà precisione. Si tratta di una risposta per certi versi semplicistica, ma non si può dire che sia insoddisfacente.
Ben diverso è invece il problema dell’attinenza, ovverosia del ranking dei documenti (pagine web) che sono stati archiviati nel database. Torniamo alla nostra ricerca: “Iraq”; abbiamo detto che oltre alle pagine web che contengono il suddetto termine, grazie al LSI sarebbe anche possibile visualizzare documenti che “hanno a che fare” con l’Iraq.
Ma in che posizione saranno disposti questi documenti che non contengono il termine “Iraq” rispetto a quelli che lo contengono e in che posizione fra loro stessi? Premettendo che stiamo ragionando per pure ipotesi e che il LSI ancora non è stato applicato ai motori di ricerca, possiamo sicuramente trovare delle risposte in parte soddisfacenti. Si potrebbe infatti trovare un sistema di weighting relativo tra le keyword/keyphrase effettivamente ricercate e quelle ‘affini’. Per esempio: se un documento contiene 10.000 parole utili e contiene una sola volta la parola “Iraq”, sarà esso più attinente di un documento di 1000 parole che non contiene affatto la parola Iraq ma che contiene 100 termini ‘vicini’ (ovverosia che si presentano solitamente insieme) alla keyword Iraq? Possiamo dire certamente di no; probabilmente, nel primo documento si parla di Iraq solo ‘di sfuggita’, mentre nel secondo caso (per esempio una biografia di Saddam Hussein) l’iraq è ‘onnipresente’, così presente che non è necessario citare il termine!
A molti, una situazione di questo tipo potrebbe apparire paradossale ed effettivamente sembra strano che in una biografia che parla di Saddam Hussein non sia citata nemmeno una volta la parola “Iraq”. Poniamo però il caso di un articolo scientifico che tratta di equazioni differenziali o di frattali; in questo caso è altamente improbabile che sia presente il termine “matematica” ed è altrettanto vero che un articolo sui frattali o su John Nash “abbia a che fare” con la matematica molto di più di uno che tratti di una notizia di cronaca nera dove si legge nel titolo: “Professore di matematica uccide i suoi studenti con un mitra” (di solito accade il contrario ?).
Una correzione 'umana' a monte e una questione aperta
E’ qui che interviene il fattore umano
a cui abbiamo accennato prima.
Chi può sapere che in una pagina web di geografia
è difficile che non si parli della regione quando si
parla della provincia e che invece in una pagina web che
tratta dei frattali sia normale che non venga citato il
termine “matematica”? Evidentemente lo può
sapere solo un uomo. E chi può sapere che il termine
“dittatore” è sinonimo di
“despota”? Chi può sapere che il
melanoblastoma è un tipo di tumore e non che il tumore
è un tipo di melanoblastoma? Non tratteremo in questo
post dell’effettiva applicazione di
un’archiviazione a Thesaurus a un motore di ricerca che
si basa sul LSI, lasciando aperta la discussione per future
trattazioni.
Quello che possiamo certamente dire è che il LSI ha il pregio di cercare di avvicinarsi il più possibile all’area dei significati piuttosto che di rimanere ancorato ai “significanti”, ma non ha l’umiltà di capire che, se è vero che chi cerca in Internet cerca significati, concetti, argomenti e non ‘parole’ è altrettanto vero che una specie di opera di reverse engineering non è affatto sufficiente per avvicinarsi veramente a quello che l’uomo voleva comunicare.
Abbiamo detto che Internet è soprattutto comunicazione e la comunicazione avviene tra un essere umano e un altro essere umano; per ora, nei motori di ricerca, ci siamo sempre trovati di fronte a un essere umano – chi cerca – che tenta di “comunicare” con un archivio non umano. Una dimensione umanistica a monte di tutto quanto abbiamo detto del LSI (che rappresenta comunque un enorme passo avanti rispetto all’attuale situazione dei motori di ricerca) è certamente da prendere in considerazione per chi voglia veramente rivoluzionare il modo di ricercare nel Web.
D’altronde, chi non fa altro che aumentare enormemente il numero di pagine web indicizzate dovrebbe chiedersi perché le directory, che hanno indicizzati solo una piccola percentuale dei siti presenti nei motori di ricerca, sono ancora tanto amate da chi naviga la Rete.
Spero di essere riuscito a dare qualche ‘clue’ di quanto sia interessante e complesso (anzi direi più che complesso, complicato nella realizzazione) il LSI e la sua applicazione al web. Come potete ben vedere, Accoona e tutto fuorchè un esempio di motore di ricerca semantico, o di motore di ricerca intelligente (diciamo con un core’ di intelligenza artificiale). Per chi fosse interessato a dettagli più tecnici sull’argomento, io sono a disposizione. The doctor is in.
Federico Riva
- Articolo precedente Clusty un motore di ricerca da analizzare e considerare con attenzione (Parte I)
- Articolo successivo Clusty un motore di ricerca da analizzare e considerare con attenzione (Parte II)