Modalità di ricerca documenti simili del server eXtraWay

Autore:
Tirabassi Roberto

Introduzione alla ricerca documenti simili.

Se pure le basi dell'esperienza sulla ricerca dei documenti simili origina nel primigeno progetto HighWay, è solo in eXtraWay che tale funzionalità ha raggiunto un interessante livello di raffinamento.

Il presente documento ha lo scopo di chiarire cosa si intenda per ricerca dei documenti simili e come il server eXtraWay cerchi di raggiungere nel migliore dei modi il risultato desiderato e metta gli amministratori di archivi in condizione di personalizzare il comportamento del server per ottimizzarne i risultati.

Buona parte di quanto descritto in questo documento si applica tanto alla ricerca dei documenti simili quanto alla ricerca pesata di documenti generici in quanto gli algoritmi che tendono a stabilire se un documento debba appartenere alla selezione sulla base della pertinenza dei suoi contenuti sono fondamentalmente identici.

Per documenti simili, comunque, si vuole indicare documenti che, rispetto al documento di origine o ai documenti appartenenti ad una selezione di partenza, contengano informazioni che siano quanto più possibile pertinenti con quelle contenute nel campione iniziale.
Intuitivamente, se il campione iniziale è formato da un solo documento, la ricerca dei suoi simili porterà a risultati solitamente soddisfacenti. Se, per contro, il campione iniziale è rappresentato da un insieme di documenti, la bontà dell'esito della ricerca dei simili sarà tanto maggiore quanto meno eterogenei sono i documenti appartenenti al set iniziale.
Palesemente, quindi, a fronte di dati iniziali scarsamente uniformi si avranno esiti poco significativi e vice versa.

Nota:
Mente le ricerche pesate esse sono una particolare forma di selezione, la ricerca dei documenti simili può avvenire tanto in fase di selezione (richiesta direttamente di trovare i documenti simili alla frase di ricerca espressa) quanto in una fase successiva in cui al server viene richiesto di trovare i documenti simili ad uno o più documenti o ad una porzione di testo ben precisa.

Che operazioni compie il server per identificare i documenti simili

Come annunciato per sommi capi, l'esigenza di trovare documenti simili ad un campione iniziale si traduce nella necessità di identificare documenti il cui contenuto sia pertinente il medesimo contenuto dei documenti del campione.

Per giungere a questo risultato è necessario che il contenuto venga adeguatmente filtrato perché solo un sottoinsieme di esso è effettivamente significativo. Lo definiremo, di seguito, come rappresentativo. Quest'operazione avviene in modi diversi a seconda che il campione sia inferiore o superiore ad una soglia configurabile. Vediamo come ciò avviene:

Il valore di default della soglia indicata è pari a 5 documenti.

Perché un termine presente in un documento risulti essere rappresentativo, esso deve essere presente in un numero di documenti non eccessivamente vasto. Se così fosse, il termine non sarebbe di alcuna utilità nell'identificare un ben preciso set di documenti perché condurrebbe al contrario ad una mole di dati esagerata.

Ne deriva che la prima operazione da compiere consiste nello stabilire, nell'ambito del campione iniziale, quale sia il set di termini rappresentativi su cui svolgere la selezione.

Una volta effettuata la selezione, l'esito di questa viene pesato ed ordinato in modo che ad ogni documento rilevato venga assegnato un valore percentuale, valore che intende rappresentare quanto il documento in esame somigli al campione iniziale. Quest'operazione consente, sulla base della configurazione adottata, di eliminare sin da subito i documenti che risultino eccessivamente dissimili dal campione iniziale, di tornare un massimo ed un minimo di record e quindi di cercare di dare l'esito più somigliante possibile alla ricerca.

I capitoli successivi indicheranno quale sia la configurazione di default utilizzata dal server, il significato delle singole voci di configurazione e quale impatto esse abbiano sul risultato della ricerca.

Modalità di configurazione del server, comportamenti e valodi di default

Come detto in precedenza, gli algoritmi per la pesatura dei documenti e per la ricerca dei documenti simili sono in gran parte comuni tra la ricerca documenti simili e le ricerche in ranking, ovvero pesate.

Di seguito vedremo le singole componenti della ricerca pesata o per documenti simili e le possibilità di configurazione presenti. Alcune di esse interessano le attività che possono essere svolte direttametne in ricerca, quindi non sono applicabili se non in quel caso e possono non interessare la determinazione dei documenti simili (che pur essendo una ricerca nel senso stretto del termine, viene eseguita in modo differente).

Soglia di Rappresentatività

Innanzitutto dobbiamo comprendere cosa si intenda per rappresentatività di un termine da coinvolgere nella selezione. Un termine è rappresentativo quando seleziona un numero sufficientemente contenuto (quindi rappresentativo) dei documenti dell'archivio.

I termini al di sotto di una certa soglia vanno ignorati mente quelli considerati rappresentativi verranno presi in esame. La soglia di rappresentatività da un indice di quanti documenti debbano essere selezionati, al massimo, da una chiave perché essa risulti rappresentativa nella ricerca.

Questo valore è il divisore di 100 ed il risultato è la percentuale d'archivio selezionabile dalla chiave. Ad esempio la soglia 100 comporta una selettività massima del (100/100=1) 1% dell'archivio. Una soglia 25 comporta una selettività massima del (100/25=4) 4% dell'archivio. Più grande è questo valore e più selettive saranno le chiavi (ovvero minore il numero massimo di documenti selezionabile da tali chiavi).

Valore di Default
Il valore di default impostato presso il server è 100 ad indicare che un termine è rappresentativo quando selezione l'1% dell'archivio. Si presta particolarmente per archivi di grandi dimensioni.
Configurazione d'archivio
E' possibile configurare un archivio perché utilizzi un diverso valore di default per tutte le valutazioni sulla rappresentatività intervenendo nel file nomearchivio.conf.xml alla voce di profilo probab.similartuning come nell'esempio che segue...
<profile type="probab.similartuning" value="25"/>
... in cui impostando una soglia di rappresentatività pari a 25 si richiede che ogni termine da coinvolgere possa selezionare sino ad un massimo del 4% dell'archivio.
Configurazione temporanea in ricerca
In selezione è possibile impostare la soglia di rappresentatività introducendo nella frase di ricerca la sintassi...
[?SIMILAR:BASEFACTOR:<numero>]
...ad indicare il nuovo numero corrispondente alla soglia di rappresentatività. Se impostato esso sovrascrive sia il default che quanto indicato nel file nomearchivio.conf.xml
Eccezioni
Nel successivo paragrafo viene spiegata una condizione di eccezione che causa il ricalcolo dinamico della soglia di rappresentatività se essa risulta inadeguata alla ricerca in esecuzione.

Numero delle chiavi da coinvolgere nella selezione

Se è vero che la soglia di rappresentatività serve ad identificare un quorum di termini utile ad identificare documenti ragionevolmente simili, le impostazioni di tale soglia o la natura (ed in particolare le dimensioni) dell'archivio possono condurre a due condizioni estreme: la determinazione di un numero eccessivo di termini e la determinazione di un numero troppo esiguo di essi.

In ambo i casi, se pure per motivi diversi, si corre il rischio di non trovare documenti realmente somiglianti o di troverne troppo pochi. Per ovviare a quest'inconveniente esistono due soglie: il numero minimo e massimo di termini che concorrono alla selezione. Tali soglie, attualmente non modificabili, corrispondono a 10 e 50 termini.

Se i termini selezionati dall'algoritmo basato sulla soglia di rappresentatività superano la soglia massima di termini ne vengono assunti solo i 50 più rappresentativi.
Se i termini selezionati dall'algoritmo basato sulla soglia di rappresentatività sono inferiori alla soglia minima di termini la soglia di rappresentatività viene ammorbidita così da selezionare un maggior numero di termini.

Valori di default
Come detto il valore di default è pari a 10 per la soglia minima dei termini coinvolti e 50 per la soglia massima.

Regole determinazione peso dei documenti rilevati

L'ordine che i documenti assumono nella ricerca documenti simili o nelle ricerche pesate determina quali di essi vengano eletti per essere effettivamente tornati. Questo ordine è dato dal peso attribuito ad essi. Tale peso è la sommatoria di due pesi relativi ponderati sul numero dei termini trovati nel documento (hits) e la rilevanza relativa di tali termini.

L'esperienza dimostra che dando maggior peso alla rilevanza dei termini, ovvero privilegiando quei documenti in cui si trovano termini particolarmente rari nell'intero archivio, si ottengono risultati scarsamente veritieri (i documenti simili si distinguono non tanto per la rappresentatività di singoli termini contenuti ma per un maggior numero di essi), mentre il contrario tende a migliorare il comportamento del server se pure si deve provvedere a compiere un tuning per ottenere la miglior combinazione.

In sostanza si suggerisce di privilegiare il peso calcolato sulle hits a quello calcolato sulla rappresentatività dei termini.

Il valore di questa voce di configurazione rappresenta la percentuale di peso data sulla base delle hits. Ovviamente, quella assegnata alla rappresentatività dei termini è derivata da questa come complemento a 100.

Valore di default
Il valore di default è 50 non attribuendo alcun privilegio alle due unità di calcolo.
Configurazione d'archivio
Nel file nomearchivio.conf.xml il valore può essere variato con la configurazione...
<profile type="probab.hitweight" value="70"/>
...ad indicare, ad esempio, che le hits contano per il 70% del peso complessivo.
Configurazione Temporanea in Ricerca
In selezione è possibile impostare la percentuale di peso introducendo nella frase di ricerca la sintassi...
[?PROBAB:HITWEIGHT:<numero>]
...ad indicare la nuova percentuale di peso da assegnare alle hits. Se impostato esso sovrascrive sia il default che quanto indicato nel file nomearchivio.conf.xml

Percentuale minima di somiglianza

Nonostante le precedenti impostazioni, la ricerca può condurre ad identificare documenti che risultano somiglianti ma non in modo particolarmente significativo. Ovviamente questo dipende moltissimo da archivio ad archivio nel senso che, sulla base della tipologia di contenuti più o meno eterogenea, sulla base delle dimensioni dell'archivio e delle modalità con le quali vengono richieste le ricerche di documenti simili, questa stima può variare sensibilmente.

Per evitare che vengano tornati documenti che non sono effettivamente simili vengono ignorati tutti i documenti la cui percentuale di somiglianza finale è inferiore ad un certo punteggio.

Valore di default
Il valore di default per quest'impostazione è 25 ad indicare che non verranno tornati documenti esito della selezione con una somiglianza inferiore al 25% del campione originario.
Configurazione d'archivio
Nel file nomearchivio.conf.xml il valore può essere variato con la configurazione...
<profile type="probab.minrank" value="10"/>
...ad indicare che non verranno tornati i documenti con punteggi di somiglianza inferiore al 10%.
Configurazione Temporanea in Ricerca
In selezione è possibile impostare la percentuale di peso al di sotto della quale i documenti non devono essere considerati simili introducendo nella frase di ricerca la sintassi...
[?PROBAB:MINRANK:<numero>]
...ad indicare la nuova percentuale di peso sotto la quale non tornare documenti. Se impostato esso sovrascrive sia il default che quanto indicato nel file nomearchivio.conf.xml

Dimensioni massima e minima della selezione tornata

Per quanto le precedenti impostazioni possano portare ad un valido raffinamento della selezione è comunque possibile che la ricerca trovi un numero eccessivo di record o troppo esiguo. Per far fronte a questa condizione possono essere impostati il numero massimo e minimo di documenti da tornare dopo aver svolto le operazioni di peso.

Valori di default
Le soglie massime e minime sono rispettivamente 100 ed 1 ad indicare che le selezioni di anche un solo record sono accettabili e che le selezioni, pur pesate, che superino le 100 unità vengono tagliate a 100.
Configurazione d'archivio
E' possibile impostare valori diversi agendo direttamente sulla configurazione d'archivio come nell'esempio che segue...
<profile type="probab.ranksize" value="75"/>
<profile type="probab.minranksize" value="5"/>
...ove si indica di non tornare mai più di 75 documenti e non meno di 5 se disponibili, indipendentemente dal peso.
Configurazione Temporanea in Ricerca
I due valori discussi possono essere impostati dinamicamente in ricerca introducendo nella frase di selezione la sintassi...
[?PROBAB:MINRANKSIZE:<numero>] [?PROBAB:RANKSIZE:<numero>]
...ad indicare soglia minima e massima. Ovviamente anche solo una di esse può essere impostata ed in tal caso sovrascrive sia il default che quanto indicato nel file nomearchivio.conf.xml

Sovrapposizioni delle impostazioni

Si fa notare che, indipendentemente da come vengono espressi, i valori di dimensione minima della selezione tornata e di percentuale minima di peso in somiglianza si sovrappongono.

Se è impostata una dimensione minima, quel numero di documenti verrà tornato anche se di percentuale inferiore alla percentuale di somiglianza minima indicata.

Altrettanto dicasi per la soglia superiore, se ci sono più documenti della quantità massima che hanno una percentuale di voto superiore al minimo dichiarato non ne vengono comunque tornati più del massimo richiesto.

Altra documentazione disponibile

Per farsi un'idea più completa di cosa abbia portato alle decisioni prese e di come le configurazioni descritte assumano un ruolo nell'esito della ricerca dei documenti simili si suggerisce di prendere visione della seguente documentazione:

  1. Studio Tuning Ricerce per Documenti Simili nell'Applicazione ItalgiureWeb
Date
2007/03/01 08:53:43

Torna a Indice delle voci


HighWay/eXtraWay Project - Frequently Asked Questions (Doxygen 1.6.1)