• Aucun résultat trouvé

Chapitre 5 : Spécification et conception du système SARIPOD

1. Spécification du système SARIPOD

1.3 Module de “Crawlage” stratégique

Selon [Miller et Bharat, 1998], un Web crawler est un mot anglais (en français : fouineur

Internet) désignant un programme qui traverse automatiquement le Web en téléchargeant, de page en page, les URLs des documents (parfois les documents). Son point de départ est l’URL d’une page Web racine et sa profondeur de propagation est généralement paramétrable. Après avoir obtenu une nouvelle requête reformulée Qnew, le module de crawlage explore le

Web en partant de l’URL de départ choisie par l’utilisateur. Il obtient, en conséquence, plusieurs autres liens dont certaines pages peuvent contenir les mots-clés recherchés et

S’assurer Prouver Reconnaître Constater Contrôler Expérimenter Essayer Examiner Eprouver Voir Vérifier

Verbe de la requête initiale 0,7 ≤ Seuil de proximité <1 0,35 ≤ Seuil de proximité < 0,7 0 < Seuil de proximité < 0,35

d’autres non. Dans ce cas, ce module ne s’intéresse qu’aux liens dont les pages, contiennent l’un de ces mots ou bien, si elles ne le contiennent pas, aux pages des liens inclus à celles-ci qui le contiennent. Les pages sémantiquement les plus proches, en terme de contenu, d’une page quelconque de ce réseau sont localisées dans les zones les plus denses du RPMH de pages Web.

Nous proposons dans ce cadre une exploration (crawlage) systématique dont le principe est

donné par les algorithmes suivants :

Algorithme 1 :

1. Tant qu’une page sur N pages successives (parcourues grâce aux liens hypertextes)

contient le mot M recherché, le crawler continue à visiter les pages sortantes de cette

page ; quelle que soit la profondeur (car ces pages peuvent contenir le mot M) ;

2. Quand N pages de suite ne contiennent pas le mot M recherché (quelle que soit la

profondeur), on stoppe la recherche dans cette branche.

En effet, on abandonne toute exploration d'une page ne contenant pas le mot recherché si aucune de ses pages filles ne le contient pas non plus. Tandis que dans tous les autres cas on continue.

Nous appelons par la suite cet algorithme : StratN(R, M) = l’ensemble des pages ainsi

récupérées pour le mot M en partant de R(M) = l’ensemble des liens des pages affichées

réellement par un moteur de recherche (par exemple Google).

Figure 5.9 : Exemple de l’algorithme Strat2

Nous remarquons, à partir de l’exemple de la figure 5.9, que Strat2(1, M) contient les pages à

au plus 2 arcs d'une page contenant le mot M à partir de la page 1, soit {1, 2, 3, 4, 8, 9, 10, 5,

6, 7} alors que les pages à au plus 2 arcs de la page 1 sont {1, 2, 3, 5, 6}.

Par ailleurs, pour des valeurs faibles du pas de crawlage N, l’algorithme s’arrête très vite et ne

charge qu’un nombre limité de pages, alors que pour des valeurs élévées de N, l’algorithme

charge un nombre très important de pages dont plusieurs risquent d’être non pertinentes. Afin

(1) Page contenant M (2) Page ne contenant pas M (3) Page contenant M (5) Page contenant M (8) Page contenant M (4) Page ne contenant pas M

(7) Page ne contenant pas

M

(6) Page ne contenant pas

M (9) Page ne contenant pas M (10) Page ne contenant pas M (11) Peu importe on ne visite pas cette page

(12) Peu importe on ne visite pas cette page Page Web

de résoudre certaines limites de ce premier algorithme, nous proposons une extension comme suit.

Algorithme 2 :

Ce deuxième algorithme tient compte de la rencontre ou non du mot-clé M recherché dans les

pages liées mais aussi d’un mot sémantiquement proche de M. Quand une page ne contiendra

plus le mot M, ni un de ses mots proches sémantiquement, le saut se fera si l’on trouve dans

cette page un mot V pas trop éloigné de M (bien que ne faisant pas partie de ce que nous

avons appelé les mots proches de M). Ainsi Stratδ,Ν (R, M) serait définie par :

1. Tant qu’une page, parcourue grâce aux liens hypertextes, contient le mot M recherché

ou un de ses proches, au sens de Proximité du Dictionnaire détaillée dans la section 1.1, il faut garder l’URL de cette page et continuer à visiter les pages sortantes de cette page.

2. Si une page ne contient pas le mot M ni l’un de ses proches, il serait quand même

dommage de ne pas la garder si elle contient néanmoins des mots V pas trop éloignés

de M (d’une proximité ≥δ au sens de Proximité du Dictionnaire), il faut garder l’URL de cette page et continuer à visiter ses pages sortantes (qui ont une très forte probabilité de contenir de nouveau le mot M ou un de ses proches).

3. Si N pages de suite ne contiennent pas le mot M, ni un de ses proches et ne contiennent

que des mots V d’une proximité < δ, on stoppe la recherche dans cette branche et on

ne garde aucune de ces pages.

Cet algorithme est plus performant que le premier algorithme StratΝ (R, M) car il n’a pas le

caractère ad-hoc pour la valeur de N qui ne pouvait être ni N = 1, ni N > 2.

Par ailleurs, cet algorithme semble plus conforme à ce que nous faisons dans la réalité. En effet, l’utilisateur continu à explorer la page et les liens sortants d’une page Web donnée s’elles contiennent des informations sémantiquement proches de ce qu’il cherche. Par contre, si les informations existantes sur ces pages Web sont loins de ce qu’il désir, il abandonne plus ou moins rapidement la navigation dans ce branche : c’est exactement le rôle du paramètre δ.

D’autre part, nous pouvons même faire de N une fonction de l’écart avec ce que l’on

recherche. En effet, si les pages P ne vérifient pas ∃V∈Mots tel que V∈P et

Proximité_Dictionnaire (M, V) ≥δ, autrement dit si les mots V de P ne réalisent qu’une valeur

de Proximité_Dictionnaire (M, V) = δ - ε alors si ε est petit on peut continuer encore plus mais si ε est grand on s’arrêtera assez rapidement. Ainsi, N est une fonction décroissante de ε. Nous avons encore amélioré et simplifié cet algorithme 2 en proposant un troisième algorithme.

Algorithme 3 :

Nous définissons Stratδ (R, M) par :

1. On garde toute page P qui contient un mot V suffisamment proche de M, au sens

où π = Proximité_Dictionnaire (M, V) ≥δ.

2. On explore les pages sortantes de P jusqu’à une profondeur limite N (fonction

croissante de Proximité_Dictionnaire (M, V) pour les V de cette page, mais

fonction néanmoins majorée).

3. La limite d’exploration est mise à jour par celle de la page la plus profonde de la branche explorée.

La première étape (1) permet de garder les pages qui contiennent M ou un synonyme de M si

π≥δ.

La seconde (2) assure que si l’on est en deçà de δ, c’est-à-dire π < δ, on continue l’exploration d’autant moins loin que π est petit et on ne continue de toute façon pas indéfiniment.

La troisième (3) permet de repartir de plus belle si au terme de pages pas très intéressantes on retombe un jour sur une page concernée fortement par M (ou ses proches).