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.
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.
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).
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).
<profile type="probab.similartuning" value="25"/>
[?SIMILAR:BASEFACTOR:<numero>]
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.
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.
<profile type="probab.hitweight" value="70"/>
[?PROBAB:HITWEIGHT:<numero>]
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.
<profile type="probab.minrank" value="10"/>
[?PROBAB:MINRANK:<numero>]
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.
<profile type="probab.ranksize" value="75"/> <profile type="probab.minranksize" value="5"/>
[?PROBAB:MINRANKSIZE:<numero>] [?PROBAB:RANKSIZE:<numero>]
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.
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:
Torna a Indice delle voci