Vous êtes sur la page 1sur 7

Le systme SMART

Le systme SMART (System for the Mechanical Analysis and Retrieval of Text) (aussi appel Salton's Magic Automatic Retrieval Technique:-) est un systme de RI exprimental. Il utilise le modle vectoriel. Ce systme a t construit entre 1968 et 1970 (la premire version). Dans les annes 1980, il a t rcrit et rorganis. Cette nouvelle version est accessible gratuitement pour les recherches l'adresse suivante: ftp://ftp.cs.cornell.edu/pub/smart/ Les travaux sur SMART ont t dirigs par Prof. G. Salton. Vous pouvez aussi trouver plus de descriptions sur ce systme dans le livre suivant: G. Salton, The SMART Retrieval System: Experiments in Automatic Document Processing, 1971, Prentice-Hall, (Z699.4 S2 S25) Dans ce systme, on peut remarquer les faits suivants: - C'est le premier systme de RI exprimental est robuste. Il peut manipuler un grand nombre de documents. Pour la version actuelle, SMART peut traiter jusqu' 500 MOctets de documents. Pour beaucoup d'applications, cette capacit est suffisante. - SMART a t programm avec un souci d'efficacit. Les oprations d'indexation et de recherche ont t optimises dans une certaine mesure. Ainsi, le temps de traitement est raisonnable. Par exemple, pour indexer un corpus de 150 Moctets, il faut environ 1 heur. Pour effectuer une recherche sur ce corpus, il faut 2-3 seconds (dpendant de la taille de la requte). Cette vitesse est tout fait acceptable. Bien sr, on peut l'optimiser encore plus. - SMART est un systme flexible. C'est un systme fait pour des exprimentations scientifiques (c'est--dire de tester des approches en pratique). Les codes sont crits de telle manire qu'on peut les modifier assez facilement. Par exemple, il y a 2 mthodes de lemmatisation incluses dans SMART. Mais on peut trs bien programmer une autre mthode de lemmatisation et de l'ajouter dans SMART. - Dans SMART, certaines nouvelles techniques ont t testes. Par exemple, la rtroaction de pertinence (relevance feedback), la classification de documents (document clustering), etc. Ces techniques ont une grande influence sur le dveloppement de la RI. Beaucoup de systme de RI actuels ont grandement bnfici de SMART. Certain ont repris les mmes ides, certains d'autres sont dvelopps directement partir de SMART (en utilisant les codes de SMART). Si on analyse les moteurs de recherche disponibles sur l'Internet, on peut affirmer que SMART se compare trs bien ces moteurs, et dans beaucoup de cas, il fonctionne mieux (donne de meilleures rponses). Le but de prsenter ici le systme SMART est de vous montrer un systme de RI concret. Vous pouvez ainsi avoir une ide sur comment faire un systme de RI concrtement. C'est aussi un cadre idal pour vous montrer comment les techniques qu'on a prsentes jusqu' l peuvent s'enchaner pour faire la RI. Nous allons sparer les traitements en diffrents volets: indexation de document, indexation de requte, valuation d'une requte, valuation du systme. 1. Indexation Un document textuel peut contenir diffrents champs (appels section dans SMART). Par exemple, dans un document, on peut distinguer le titre, l'auteur, la date, et le corps. SMART

offre la possibilit de traiter ces champs de faon diffrente. Par exemple, on peut indexer les noms d'auteur d'une manire diffrente qu'un texte dans la partie corps. La mme chose pour la date. Dans une requte, on peut aussi avoir diffrents champs (sections). L'indexation de document et de requte est illustre dans la figure suivante:
Document Requte

Reconnaissance de sections

Reconnaissance de sections

Tokenisation

Tokenisation

Stoplist Le prechain mot le prochain section

Stoplist proch. mot

Lemmatisation Dic Statistique sur les occurrences

Lemmatisation

Statistique sur les occurrences

proch. sect.

rsultat_section: <no_mot, frquence> le prochain document rsultat_doc: <no_doc, ctype, not_mot, frq>

rsultat_section: <no_mot, frquence>

rsultat_req: <no_req, ctype, not_mot, frq>

Conversion en fichier invers et/ou de poids

Conversion de poids

La partie gauche correspond l'indexation de document, et droite, l'indexation de requte. Les deux traitements sont trs similaires, quelques dtails prs. L'indexation de document Reconnaissance de sections: Pour chaque document, le premier traitement est la sparation de champs (ou la reconnaissance de section). Cela se fait par des marqueurs qui annoncent le dbut de diffrentes sections. Par exemple, on peut avoir le marqueur <Title> pour annoncer que les lignes suivantes (jusqu'au prochain marqueur) correspondent au titre. <Date> marque une date, <Body> marque le dbut du corps du document - un plein-texte. Dans Smart, on peut dfinir un ensemble de marqueurs, et les actions d'indexation correspondantes. Par exemple, pour <Author>, on peut choisir une transformation spciale pour les noms propres (transformer "Marc Gingras" en "Gingras, M."). Tokenisation: Pour chaque section que SMART doit indexer, on doit d'abord la couper en mots. Cela consiste reconnatre les sparateurs de mots, comme ",", ";", l'espace, etc. Le rsultat de ce traitement est une suite de "tokens" ou mots (dans un sens large). Stoplist: Les mots trouvs se compare avec la stoplist qui contient l'ensemble de mots qu'on ne veut pas garder comme index. Les autres mots sont soumis aux traitements suivants. Ce

traitement est facultatif. On peut trs bien dcider que tous les mots sont significatifs, et doivent tre gards. Lemmatisation: Ce traitement consiste transformer une forme de mot en une certaine forme standard. Trois options sont offertes dans SMART: aucune lemmatisation, enlever le "s" la fin, ou utiliser un arbre trie pour enlever la terminaison. Aprs la lemmatisation, la forme standard obtenue est compare avec un dictionnaire. Dans ce dictionnaire, on stocke tous les index, et chaque index, on attribue un numro d'identification. Ainsi, on a la structure suivante pour le dictionnaire: <no_mot, nature, mot> o no_mot est le numro d'identification, mot est le mot correspondant, et nature dsigne la nature de ce mot (par exemple, un chiffre, un mot normal, un nom propre, ou un mot vide). La comparaison du rsultat de la lemmatisation a pour le but d'obtenir le no_mot pour le mot. Si ce mot a t dj rencontr (et donc stock dans le dictionnaire), on reprend simplement son no_mot; sinon, le systme cre un numro automatiquement pour lui, et on ajoute une entre dans le dictionnaire pour ce nouveau mot. Statistique: Pour chaque mot, on doit faire la statistique de sa frquence d'occurrence dans le document. Ainsi, chaque occurrence d'un mot, on ajoute 1 dans sa frquence. Itrations: Dans la figure, il y a 3 itrations dans l'indexation de document: itration pour traiter chaque mot, itration pour chaque section, et itration pour chaque document. Rsultat: Le rsultat d'indexation pour un document est un ensemble de <no_doc, ctype, no_mot, frq>. Si le document contient 100 mot significatifs distincts, alors il y a 100 entres colle cela. Conversion du rsultat: La conversion se fait seulement quand tous les documents ont t indexs. On peut faire deux sortes de conversions: convertir des vecteurs en fichier invers, ou convertir les poids de termes. La premire conversion consiste trier nouveau les rsultats de l'indexation. Initialement, ils sont tris dans l'ordre croissant de no_doc. Dans un fichier invers, ce sera tri dans l'ordre croissant de no_mot. La seconde conversion consiste transformer le poids a chaque terme dans chaque document en un nouveau poids. La conversion dans SMART se fait en 3 tapes: 1. transformation de tf: on peut garder la frquence obtenue comme la tf, ou bien on peut choisir la normaliser en la divisant par la frquence maximale dans le document, ou bien on peut la convertir en une valeur binaire (0 ou 1). 2. La tf obtenue est de l'tape 1 est multipli par idf. ce stade, on peut choisir diffrentes faons de calculer idf. Par exemple, log(N/n), ou bien 1/n, etc. 3. La troisime tape est la normalisation. On peut normaliser le poids obtenu en le divisant par la valeur maximale, ou bien par la formule Cosinus (c'est--dire 1/(i pi2) 1/2). chaque tape, il y a de multiples choix. Pour en connatre plus, vous pouvez lire le fichier suivant: http://www.iro.umontreal.ca/~nie/IFT6255/Doc_smart/howto/weight Indexation de requte Consultation du dictionnaire: Nous soulignons ici seulement la diffrence avec l'indexation de document. Aprs la lemmatisation, le mot obtenu est compar avec le dictionnaire pour connatre no_mot. Si ce mot n'existe pas dans le dictionnaire, on n'ajoute pas une nouvelle entre dans le

dictionnaire pour ce mot. Le mot est considr "inconnu" par le systme. En effet, il ne sert rien d'ajouter ce mot inconnu dans le dictionnaire puisqu'il ne correspond aucun document. On peut donc l'ignorer dans le modle vectoriel. (Note: Dans le modle booolen, la traitement de mot inconnu doit tre diffrent. Pourquoi?) Conversion: On n'a pas convertir une requte en forme de fichier invers. La seule conversion utile pour une requte est la conversion de poids. Ici, on utilise la mme mthode que pour le document. Si on utilise idf dans la second tape, les n et N sont aussi celles des documents. Donc, on utilise la mme idf que pour les documents. Itration: Dans la figure, on n'a pas inclus une itration pour traiter diffrentes requtes. Cela est possible dans SMART. Par exemple, si on utilise SMART sur un corpus de test qui contient un ensemble de requ^etes, on peut trs bien indexer toutes les requtes. Mais dans une situation plus relle, on traite gnralement une requte la fois. 2. valuation d'une requte L'valuation d'une requte utilise le fichier invers des documents et le rsultat d'indexation de la requte qui est une suite de no_mot et de son poids. SMART utilise le produit interne comme similarit, c'est--dire: Sim(d, q) = i (pi * qi) o pi et qi sont les poids d'un mot dans le document d et dans la requte q. SMART implante un calcul global pour tous les document la fois. L'algorithme est comme suit: Initialiser Sim(dj, q) 0 pour tout dj; Pour chaque mot (no_moti) dans la requte q (avec poids qi) faire; Trouver dans le fichier invers tous les documents dj incluant ce mot, avec le poids pi; Pour chaque dj dans cet ensemble faire: Sim(dj, q) = Sim(dj, q) + pi * qi la fin de cet algorithme, on obtient la valeur de Sim pour chaque document. Cette mthode dvaluation globale est plus efficace qu'une valuation squentielle. Dans la mthode squentielle, on doit comparer chaque document sparment avec la requte, et utiliser la formule thorique de Sim pour calculer la similarit. Le plus grand dsavantage est qu'on doit considrer tous les documents, mme ceux qui ne contiennent aucun mot de la requte. Dans l'valuation globale utilisant le fichier invers, on ne considre que les documents qui contiennent au moins un mot de la requte. Le nombre de documents considrer est beaucoup rduit. Dans SMART, il est cependant possible de choisir l'valuation squentielle, si on veut. Dans des cas normaux, cela ne fait aucune diffrence dans les rponses. 4. valuation du systme Pour valuer la qualit d'un systme, on doit tester ce systme avec des corpus de test. Rappelons qu'un corpus de test contient 3 lments: un ensemble de documents, un ensemble de requtes, et le jugement de pertinence par un expert pour chaque requte (c'est--dire d'indiquer les documents du corpus qui sont pertinents chaque requte).

Le systme tester doit indexer les documents, les requtes, et produire une liste de documents comme rponses pour chaque requte. On compare ensuite les rponses du systme avec celle de l'expert pour valuer la prcision et le rappel. Plus souvent, on s'intresse connatre l'effet d'une technique (par exemple, la lemmatisation). Dans ce cas, on peut faire un systme 1 sans cette technique et un autre systme 2 avec cette technique. Les autres composantes des systmes restent les mmes. Si systme 2 fonctionne mieux que Systme 1, on peut alors conclure que la technique a un effet positive. En gnral, pour conclure que la technique a toujours un effet positive, il faut tester cela avec plusieurs corpus de test diffrents. On a dj dcrit la mthode utilise pour obtenir les valeurs de prcision-rappel. Elle consiste avancer 1 1dans la liste de rponses du systme, et on considre chaque tape que les documents prcdant ce point constituent la rponse du systme. On value la prcision et le rappel. Ainsi, on obtient un point de prcision-rappel chaque tape. Finalement, on obtient une courbe. La courbe moyenne est calcule sur toutes les requtes du corpus de test. On peut aussi calculer la prcision moyenne sur 11 points de rappel (0.0, 0.1, , 1.0). SMART contient un ensemble de fonctions qui permettent d'valuer la courbe prcision-rappel pour un ou plusieurs systmes et de les comparer. L'amlioration du Systme 2 par rapport au Systme 1 se calcule de la faon suivante: Amlioration = (P2 - P1) / P1 o P1 et P2 sont les performances des systmes 1 et 2 (qui peut tre une prcision, un rappel, ou la prcision moyenne). 5. Rtroaction de la pertinence (Relevance feedback) Cette technique a t invent par Roccio, un membre dans l'quipe SMART. L'ide de la rtroaction est qu'aprs une premire valuation du systme, l'utilisateur, en lisant les rponses, peut indiquer ceux qui sont pertinents, et ceux qui ne sont pas. Avec ces indications, le systme peut reformuler la requte. La nouvelle requte peut devenir plus proche des documents pertinents et plus loin des documents non-pertinents. Pour mieux comprendre l'effet de la rtroaction, il faut mentionner que la requte d'un usager souvent ne dcrit pas trs bien son besoin d'information. Par exemple, un usager peut utiliser la requte "bases de donnes et gestion" pour dcrire son besoin sur "l'utilisation de bases de donnes dans la gestion". Or, la requte donne ne donne pas autant de prcision. En effet, on peut trs bien interprter la requte comme "gestion de bases de donnes". A part l'interprtation ambigu, on trouve plus souvent des requtes dans lesquelles les concepts importants sont manquants. Ainsi, l'ide de la rtroaction est d'essayer de saisir plus prcisment le besoin de l'usager travers les documents qu'il a jugs. La nouvelle requte tente de se modifier pour devenir plus similaire aux documents pertinents, et moins similaires aux documents nonpertinents. La formule gnrale de rformulation de Roccio est la suivante: q' = * q + * Doc_Pert - * Doc_Npert.

o q et q' sont les vecteurs de l'ancienne et la nouvelle requtes, Doc_Pert et Doc_Npert sont les centrodes des documents pertinents et non-pertinents, , et sont les 3 paramtres qui rglent l'importance de chaque lment dans la nouvelle requte. Ces 3 paramtres sont fixes. Pour obtenir la nouvelle requte q', on doit d'abord calculer les deux centrodes. Ce sont les vecteurs moyens de tous les documents pertinents et non-pertinents jugs par l'usager. Ensuite, pour chaque terme (dimension dans l'espace vectoriel), le nouveau poids du terme est p' = * p + * ppert - * pnpert En pratique, on n'a pas besoin de calculer cela pour tous les termes de l'espace vectoriel, mais seulement les termes concerns (qui apparaissent dans q, Doc_Pert ou Doc_Npert). Par exemple, soit un espace vectoriel 5 dimensions. La requte initiale est la suivante: t1 t2 t3 t4 t5 q= <1, 2, 0, 1, 0> Les 2 document pertinents que l'usager a jugs sont: dp1= <2, 0, 1, 1, 0> dp2= <1, 1, 1, 0, 0> et les document non-pertinents: dn1= <0, 1, 0, 1, 1> dn2= <0, 1, 0, 2, 0> Les vecteurs centrodes sont: dp = <1.5, 0.5, 1, 0.5, 0> dn = <0, 1, 0, 1.5, 0.5> Soit =1, =0.5, =0.5, la nouvelle requte est la suivante: q' = <1.75, 1.75, 0.5, 0.5, -0.25> Si on compare q' avec q, on voit que le poids de t1 a beaucoup augment. La raison est que dans les deux documents pertinents, t1 a un poids fort; tandis que dans les documents non-pertinents, ses poids sont nuls. Donc, on peut croire que les documents pertinents pour l'usager doit avoir un poids fort sur t1. Par contre, le poids de t4 a diminu de 1 0.5. C'est parce que t4 apparat plus dans les documents non-pertinents que dans les documents pertinents. Ainsi, son apparition est vue plutt comme un signe de non-pertinence. Donc, son poids dans la nouvelle requte est diminu. Il y a aussi un poids ngatif dans q'. Ceci signifie que l'apparition de t5 est un signe totalement ngatif. Donc, quand il apparat dans un document, on diminue la similarit du document. Globalement, on peut voir le changement dans la nouvelle requte comme le changement dans la direction des documents non-pertinents vers les documents pertinents. On peut illustrer cela comme la figure suivante:
Corpus * x x x * x * x x * * x * * * * * x x q' * x * x x * * x x * * x x x x x x x * q * x x x x x x x x x x

Dans cette figure, q et q' correspond tous les documents que q et q' permettent de retrouver comme rponse. Les points noirs corresponds aux centrodes des documents pertinents et nonpertinents jugs par l'usager. La flche entre eux illustre la direction de changement qu'on apporte la requte. Ainsi, la nouvelle requte est change de l'ancienne requte dans cette direction. L'effet est donc de s'approcher plus aux documents pertinents et de s'loigner des documents non-pertinents. Ici, on fait l'hypothse que les documents pertinents seront similaires ceux jugs par l'usager, ainsi que pour les documents non-pertinents. Dans ce cas, on peut esprer retrouver plus de documents pertinents et moins de documents non-pertinents avec la nouvelle requte. Dans le cas ou il n'y a pas cette similarit, l'effet sera imprvisible. En pratique, il existe une certaine similarit au sein des documents pertinents mme si on ne peut pas en dire autant pour les documents non-pertinents. Ainsi, certains suggrent de dfinir =0 pour ne pas utiliser les documents nopn-pertinents comme contre-exemples. La dfinition des 3 paramtres dpende du corpus et de la prcision de la requte de l'usager. En gnral, on dfinit un plus grand que . Il n'est pas ncessaire non plus de tenir compte de tous les termes dans les documents pertinents et non-pertinents. En effet, beaucoup de termes peuvent apparatre dans ces documents par hasard. Ainsi, on utilise gnralement les termes les plus forts de ces documents pour rformuler la requte (par exemple, 100 termes les plus forts).