2.6 Traitement des requˆetes
2.6.1 Mod`ele vectoriel ´etendu
Dans les approches issues du mod`ele vectoriel, une mesure de similarit´e de chaque ´el´ement `a la requˆete est calcul´ee, et ce `a l’aide de mesures de distance dans un espace vectoriel. Les ´el´ements sont repr´esent´es par des vecteurs de termes pond´er´es. Pour ce faire, la plupart des approches indexent des sous- arbres imbriqu´es (section2.4.2.1), c’est `a dire propagent les termes des noeuds feuilles dans l’arbre du document. Les ´el´ements sont renvoy´es `a l’utilisateur par ordre d´ecroissant de pertinence.
On trouve dans [79] une des premi`eres adaptations du mod`ele vectoriel. La similarit´e d’un noeud n `a une requˆete q = {t1, t2, ...tT} est exprim´ee selon
l’´equation 2.1 : sim(q, n) = α(T )cosm(q, n) + s X k=1 cosm(q, nk) βk−1 (2.1)
o`u α(T ) est un facteur permettant de prendre en compte le type du noeud, s est le nombre de noeuds enfants nk de n, et β est un param`etre permettant
d’assurer que le nombre d’enfants n’introduit pas un biais dans la formule. La fonction cosm est d´efinie de la fa¸con suivante :
cosm(q, n) = T X i=1 wiq∗ win |n| (2.2) avec wiq et wn
i respectivement le poids du terme tidans la requˆete q et dans le
noeud n, et |n| le nombre de termes dans le noeud n.
la pertinence des noeuds descendants.
Le mod`ele peut ˆetre g´en´eralis´e en permettant le traitement des requˆetes orient´ees contenu et structure. L’id´ee de base est l`a encore d’appliquer le mod`ele r´ecursive- ment `a chaque sous-arbre de la hi´erarchie pour ensuite effectuer un agr´egat des scores.
Schlieder et Meuss [186] int`egrent la structure des documents dans la me- sure de similarit´e du mod`ele vectoriel. Leur mod`ele de requˆete est bas´e sur l’inclusion d’arbres : cela permet de formuler des requˆetes sans connaˆıtre la structure exacte des donn´ees.
Les auteurs proposent la notion de terme structurel, d´efinie comme un arbre ´etiquet´e. book[author], book[Bradley, title[XML]], author[Bradley], ... sont des exemples de termes structurels.
Les notions de tf et idf sont adapt´ees au processus de recherche dans des do- cuments structur´es. Soit E un ´el´ement de type t. Le poids wt
T,E d’un terme
structurel T dans E est d´efini par : wt
T,E = tfT,E.idfTt =
f reqT(E)
maxf req(E).(log( |Et|
nT
) + 1) (2.3)
avec f reqT(E) le nombre d’occurrences de T dans E, maxf req(E) le nombre
maximal d’´el´ements de la collection poss´edant la mˆeme ´etiquette que E, |Et|
le nombre d’´el´ements de type t et nT le nombre d’´el´ements contenant T .
Les auteurs combinent ainsi le mod`ele vectoriel et le ”tree matching” afin de r´epondre `a des requˆetes orient´ees contenu et structure. Dans le mod`ele pro- pos´e, seuls les ´el´ements (c’est `a dire les sous-arbres) qui ont une structure qui peut ˆetre r´eduite `a celle de la requˆete (c’est `a dire qu’en supprimant certains ´el´ements du sous-arbre, on peut arriver `a la requˆete) ont un score de pertinence non nul.
Dans [90], Grabs et Scheck proposent d’´evaluer l’importance d’un terme dans un ´el´ement donn´e en fonction de l’importance du terme dans les ´el´ements du mˆeme type.
Lorsque la requˆete est compos´ee d’une condition sur le type d’un ´el´ement (on nommera cat ce type) ainsi que d’une condition sur le contenu de cet ´el´ement (requˆete orient´ee contenu et structure), la similarit´e d’un ´el´ement e de type cat `a la requˆete q est calcul´ee selon l’´equation2.4 :
RSV (e, q) = X
t∈terms(q)
tf (t, e).iefcat(t)2.tf (t, q) (2.4)
o`u tf (t, e) est la fr´equence du terme t dans l’´el´ement e et iefcat = logefNcatcat(t),
avec Ncat le nombre d’´el´ements du type cat et efcat(t) la fr´equence du terme t
dans les ´el´ements du type cat.
Soit SE(e) l’ensemble des descendants de e incluant e. ∀ se ∈ SE(e), l ∈ path(e, se) est une ´etiquette appartenant au chemin reliant e `a se, c’est `a dire un type d’´el´ement. Soit enfin awl ∈ [0, 1] un facteur mod´elisant l’importance de
l’´etiquette l. La similarit´e d’un ´el´ement e `a une requˆete q compos´ee de simples mots-cl´es est d´efinie de la fa¸con suivante :
RSV (e, q) = X se∈SE(e) X t∈terms(q) tf (t, se)( Y l∈path(e,se) awl).iefcat(se)(t)2.tf (t, q) (2.5) Cette approche a ´et´e ´evalu´ee dans la campagne d’´evaluation INEX 2002 et les r´esultats ont cependant ´et´e peu convainquants.
Le mod`ele JuruXML [137, 135] propose d’indexer les ´el´ements selon leur type (un index par type d’´el´ement) et d’appliquer ensuite le mod`ele vectoriel pour la pond´eration des ´el´ements.
Les requˆetes orient´ees contenu sont ´evalu´ees sur chacun des index et les r´esultats, qui ont ´et´e normalis´es, sont ensuite fusionn´es afin de fournir `a l’utilisateur une liste unique de r´esultats.
Une requˆete structur´ee est quant `a elle ´evalu´ee en trois phases. Tout d’abord, la requˆete originale est d´ecompos´ee en ensemble de conditions de la forme (chemin, terme). Ensuite, une correspondance vague entre les chemins est cal- cul´ee. Soit cqi la condition de chemin pour le terme ti et cei le XPath du terme ti
dans l’´el´ement e. La fonction de similarit´e entre les deux chemins est exprim´ee selon l’´equation 2.6 : cr(cqi, c e i) = 1+|cqi| 1+|ce i|si c q
i est une sous − sequence de cei
0 sinon (2.6)
Par exemple, cr(article/bibl, article/bm/bib/bibl/bb) = 3/6 = 0.5. On a enfin : RSV (e, q) = P (t,cqi)∈q P (t,ce i)∈ewq(t) ∗ we(t) ∗ cr(c q i, cei) |q| ∗ |e| (2.7)
o`u wq(t) et we(t) sont les poids du terme t dans q et e, et |q| et |e| sont les
nombres de termes dans q et e.
Cette derni`ere approche, ´evalu´ee dans le cadre de la campagne INEX 2004 permet d’obtenir de bons r´esultats par rapport `a l’ensemble des participants.
Le moteur de recherche XXL [201] est lui aussi bas´e sur le mod`ele vectoriel et utilise une fonction de tri bas´ee sur tf et idf. XXL offre des fonctionnalit´es pour la recherche orient´ee-pertinence de chemins, c’est `a dire que la recherche est effectu´ee avec des conditions de chemins vagues. XXL repose sur une syntaxe SQL (select-from-where).
On trouvera d’autres exemples d’adaptation du mod`ele vectoriel dans [12, 53,