Вы находитесь на странице: 1из 69

Institut de la Francophonie pour l'Informatique

Rapport de stage de fin d'tudes

MODULE D'EXTRACTION FOCALISE ET ANALYSE AUTOMATIQUE LINGUISTIQUE DU WEB

NGUYEN Hong San

Janvier 2007

Lieu de stage Priode de stage Tuteur de stage

: Institut de Recherche en Informatique de Toulouse (IRIT) : du 15/03/2006 au 30/09/2006 : Bruno GAUME

Remerciements
Je tiens remercier tout particulirement Monsieur Bruno GAUME, tuteur de stage et professeur de l'Universit Paul Sabatier, qui m'a accueilli de faire ce stage dans l'IRIT et m'a dirig mon travail de recherche. Il m'a aussi donn des conseils dans le domaine de recherche et ainsi ceux dans la vie quotidienne. Je remercie aussi Franck SAJOUS, ingnieur de l'quipe de Recherche en Syntaxe et Smantique pour son soutien technique pendant mon stage. Je tiens galement exprimer toute ma sympathie Alain MONIER pour ses aides prcieuses dans la dmarche de mon sjour Toulouse. Jadresse en fin mes reconnaissances aux professeurs de lInstitut de la Francophonie pour lInformatique, pour mavoir aid effectuer ce stage.

ii

Rsum
Ce stage se droule dans un cadre d'une collaboration entre l'Institut de Recherche en Informatique de Toulouse (IRIT) et l' quipe de Recherche en Syntaxe et Smantique (ERSS). Notre objectif est de dvelopper un outil informatique pour la construction automatique des corpus partir du web en utilisant les outils analyse linguistique exists. Il s'agit de la construction d'un crawl focalis du web et de l'intgration des outils d'analyse linguistique pour analyser les pages Web. Dans un premier temps, nous prsentons un modle de crawl focalis qui parcourait le Web pour tlcharger les pages concernes un sujet spcifique. Le crawl doit faire sortie deux rsultats importants: les contenus textuelle des pages Web et le graphe des hyperliens des pages Web. Dans un deuxime temps, nous faisons une tudes sur les outils d'analyse linguistique TreeTagger, Syntex et Upery et les intgrons dans le systme pour l'analyse des pages Web. Nous effectuons aussi le prtraitement des textes rcuprs par le crawl avant de les passer des outils linguistique. Le rsultat final est des corpus analyss qui parlent d'un sujet spcifique.

Abstract
This internship proceeds within a collaboration between the IRIT and ERSS. Our objective is to develop a tool for the automatic construction of the corpus from the Web by using the existed tools of linguistic analysis. It is about construction of a focused crawler of the Web and integration of the linguistic tools to analyze the Web pages. Initially, we present a focused crawler model which traversed the Web to download the pages concerned on a specific topic. The crawler must give two important results: contents textual of Web pages and graph of hyperlinks of Web pages. In the implementation of crawler, we pay attention at all the technical problems: constitution of the starting germ, parallelism, strategies of crawl, politeness and spider trap. In the second time, we study the tools for linguistic analysis TreeTagger, Syntex and Upery and integrate them in the system for the analysis of the Web pages. We carry out also the pretreatment of the texts recovered by the crawl before passing to linguistics tools. The final result is analyzed corpus which speaks about a specific topic.

iii

Table des matires


Introduction.................................................................................................. 1 1. Environnement de stage................................................................... 1 1.1. IRIT ............................................................................................ 1 1.2. ERSS........................................................................................... 2 2. Problmatique .................................................................................... 2 2.1. Crawl focalis ............................................................................ 2 2.2. Graphes du Web....................................................................... 4 2.3. Analyse linguistique.................................................................. 4 3. Objectif du stage................................................................................ 5 4. Organisation du rapport ................................................................... 7 Crawl du Web............................................................................................... 8 1. Introduction ....................................................................................... 8 2. Dfinitions .......................................................................................... 8 3. Architecture gnrale ........................................................................ 9 3.1. Architecture de 2-modules.................................................... 10 3.2. Architecture de 4-modules.................................................... 10 3.3. Algorithme de crawl............................................................... 12 4. Stratgies de crawl ........................................................................... 12 5. Respect de la politesse .................................................................... 15 Construction du crawl focalis ................................................................ 17 1. Suppositions et notations ............................................................... 17 1.1. Page Web ................................................................................. 17 1.2. Germe de dpart..................................................................... 18 1.3. Graphes.................................................................................... 19 2. Constitution du germe de dpart .................................................. 20

iv
3. Architecture ...................................................................................... 21 3.1. Composantes........................................................................... 21 3.2. Base de donnes ..................................................................... 33 3.3. Interface d'utilisateur.............................................................. 34 4. Environnement de programmation et dpendances ................. 35 Analyse linguitique des pages Web ......................................................... 37 1. Outils d'analyse linguistique ........................................................... 37 1.1. TreeTagger............................................................................... 37 1.2. Syntex ....................................................................................... 38 1.3. Analyse syntaxique en dpendance...................................... 38 1.4. Construction du rseau de syntagmes................................. 46 1.5. Upery........................................................................................ 48 2. Intgration ........................................................................................ 52 Conclusion .................................................................................................. 54 1. Rsultat obtenu ................................................................................ 54 2. Conclusion........................................................................................ 54 Bibliographie............................................................................................... 56 Annexe......................................................................................................... 58

Liste des figures


Figure 1: Diagramme des modules du stage................................................................ 6 Figure 2: Architecture de 2-modules .......................................................................... 10 Figure 3: Architecture de 4-modules .......................................................................... 11 Figure 4: Architecture du crawl ................................................................................... 22 Figure 5: Queue de deux niveaux: S1, S2,... sont les sites Web et Px.y est la yime page de site x....................................................................................................... 23 Figure 6: Paralllisme..................................................................................................... 24 Figure 7: Liens dans le frameset .................................................................................. 28 Figure 8: Liens dans les images mappes................................................................... 28 Figure 9: Exemple du calcul de la profondeur.......................................................... 33 Figure 10: Interface d'utilisateur 1............................................................................... 34 Figure 11: Interface d'utilisateur 2............................................................................... 35 Figure 12: Exemple de l'analyse syntaxique............................................................... 38 Figure 13: Relation de dpendance syntaxique ......................................................... 39 Figure 14: Contrainte 1 ................................................................................................. 39 Figure 15: Contrainte 2 ................................................................................................. 39 Figure 16: Quelques relations principales .................................................................. 40 Figure 17: Algorithme DET......................................................................................... 40 Figure 18: Algorithme PREP-d ................................................................................... 41 Figure 19: Algorithme OBJ .......................................................................................... 41 Figure 20: Algorithme SUJ ........................................................................................... 42 Figure 21: Ambigut de rattachement des adjectifs ................................................ 42 Figure 22: Algorithme ADJ: recherche des candidats.............................................. 43 Figure 23: Algorithme ADJ: slection d'un candidat ............................................... 44 Figure 24: Ambigut de rattachement des prpositions ......................................... 44

vi
Figure 25: Slection de candidat par arg.................................................................... 46 Figure 26: Exemple d'extraction des syntagmes ....................................................... 47 Figure 27: Rseau terminologie ................................................................................... 47 Figure 28: Rseau terminologie dans un corpus entier............................................ 48 Figure 29: Exemple de normalisation......................................................................... 48 Figure 30: Exemple de la productivit........................................................................ 51 Figure 31: Exemple de prox: prox(dtresserespiratoire,syndrome) = 1,10..................... 51

Chapitre 1

INTRODUCTION
Ce rapport dcrira les problmes autour de mon stage de fin d'tudes l'Institut de Recherche en Informatique de Toulouse (IRIT). Le stage se divise en deux parties: la construction de crawl du Web, l'tude et l'intgration avec les outils de traitement automatique linguistique. Ce chapitre donnera une vue gnrale du stage.

1. Environnement de stage
Le stage se droule grce une collaboration entre l'IRIT, et l'ERSS, quipe de Recherche en Syntaxe et Smantique. Cette session abordera dans les grandes lignes l'introduction de l'IRIT et l'ERSS.

1.1. IRIT
L'IRIT est une Unit Mixte de Recherche, UMR 5505, commune au Centre National de la Recherche Scientifique (CNRS), l'Institut National Polytechnique de Toulouse (INPT), l'Universit Paul Sabatier (UPS) et l'Universit des Sciences Sociales Toulouse 1 (UT1). L'IRIT, cr en 1990, reprsente l'un des plus forts potentiels de recherche en informatique en France, fdrant plus de 190 chercheurs et enseignants chercheurs, relevant non seulement de ses tutelles mais aussi de l'Universit Toulouse Le Mirail (UTM). Les objectifs que l'IRIT se donne sont la mesure de sa taille, tant sur le plan de la recherche que sur le plan de la formation et du transfert technologique. La diversit des thmes scientifiques couverts - hrite d'une longue histoire : Toulouse a t l'une des villes pionnires de l'informatique franaise - permet d'laborer des projets ambitieux et de rpondre la forte demande du monde socio-conomique. Cette

2
diversit au sein de l'Institut constitue un trs important foyer de multidisciplinarit et de complmentarit.

1.2. ERSS
L'ERSS est une unit mixte de recherche (UMR 5610) sous la double tutelle du CNRS et du Ministre de l'Education et de la Recherche. Elle est implante sur deux sites : l'Universit de Toulouse-Le Mirail et l'Universit Michel de Montaigne Bordeaux. Depuis sa fondation en 1981, lERSS se donne pour fin la description scientifique des langues dans leurs diffrentes composantes (phonologie, morphologie, syntaxe, smantique, pragmatique, lexique) et la modlisation des descriptions obtenues, cette activit modlisatrice donnant lieu des collaborations tant avec les informaticiens (spcialistes de lintelligence artificielle et de lingnierie linguistique) quavec les psycholinguistes. Les langues tudies sont multiples : au franais commun - auquel est consacre la majorit des travaux de lquipe -, au latin, langlais, lespagnol, au coren et au japonais, sont venus sajouter par exemple au cours des quatre dernires annes larabe et lamharique, le barasana et le tatuyo, le sarde, litalien et le serbocroate.

2. Problmatique
2.1. Crawl focalis
Comme la taille entire du Web est trop large et ne cesse pas daugmenter, mme un grand moteur de recherche ne peut couvrir quune petite partie du contenu de Web. Selon une tude de Lawrence et Giles (Lawrence and Giles, 2000), aucun moteur de recherche nindexe plus de 16% du Web. Pour la raison de l'explosion de la taille du Web, les moteurs de recherche deviennent de plus en plus importants comme un moyens primaires de localiser l'information sur Web. Les moteurs de recherche se fondent sur les collections massives de pages Web qui sont acquises l'aide des crawl du Web. Le crawl parcourt le Web en suivant les hyperliens et en stockant une copie des pages visit dans une grande base de donnes. Dans les quelques dernires annes, plusieurs travaux acadmiques et industrielles ont t ports sur la technologies de recherche d'information sur Web, composant les stratgies de crawl,

3
le stockage, l'indexation, et quelques techniques dans l'analyse du structure du Web et graphe de Web. La majeure partie des travaux rcents sur les stratgies de crawl n'adresse pas du tout les questions des performances, mais essaye de minimiser le nombre de pages qui ont besoin de tlcharger, et maximiser les bnfices obtenus partir des pages tlcharges. Cette stratgie convient bien aux applications qui ont seulement la largeur de bande trs limite. Cependant, dans le cas d'un plus grand moteur de recherche, on a besoin de combiner la bonne stratgie de crawl et la conception optimise de systme. Dans ce travail, nous n'avons pas l'intention de dvelopper un crawl de grand public , ou un crawl exhaustif, comportant un trs grand nombre de pages, mais nous concentrons sur une technique de crawl, le crawl focalis ou crawl cibl, qui focalise sur quelques type de page, par exemple, les pages d'un domaine particulier ou en une langue particulire, les images, les fichier mp3, ou les articles scientifiques. L'objectif de crawl focalis est de chercher un grand nombre de pages intresses sans utiliser une grande largeur de bande. Alors, la plupart des travaux prcdents sur le crawl focalis n'utilise pas un crawl haute performance. Le crawl commence son excution par une liste des URLs initiaux, ou un germe de dpart. Le germe de dpart est tabli selon chaque stratgie de crawl. Dans notre travail, nous utilisons les moteurs de recherche gnrale comme Google, Yahoo, Alta Vista... pour construire le germe de dpart. Le crawl prsent dans ce rapport sera intgr avec les outils de traitement de la langue naturelle afin de construire les corpus d'un domaine particulier. Lutilisateur doit dabord dfinir les critres de recherche qui contiennent les mots cls du domaine intress, la langue utilise, les moteurs de recherche gnrale, la formule propositionnelle... Puis, le crawl lance la recherche sur les moteurs de recherche choisis pour rcuprer la liste des URLs de dpart. A partir de la liste des URLs de dpart, ou le germe de dpart, le crawl dclanche en suite les agents de recherche pour continuer chercher les pages pertinentes sur la toile. Avant dtre enregistre dans le disque local, la page est prtraite. Si la page est en HTML, le crawl est charg de nettoyer toutes les balises HTML et dextraire le texte clair de la page. Le texte clair est prt pour les tapes danalyse linguistique suivantes. Dans le cadre de ce travail, seulement les fichier HTML et texte sont tlchargs et

4
indexs. Nous ne traitons pas les autres types de document comme : PDF, Microsoft Word, RTF,...

2.2. Graphes du Web


Le Web est souvent considr comme des graphes dont les noeuds sont des pages et les arcs sont les relations entre les pages Web comme le hyperlien ou la similarit entre les pages. La construction des graphes du Web est utile pour la stratgie de crawl, de recherche, ou la dcouverte de la communaut et le phnomne sociologique qui dtermine lvolution du Web. Dans ce travail, nous nous intressons deux types de graphes du Web : graphe des hyperliens et graphe de similarit. Le graphe des hyperliens peut tre construit toute de suite pendant le processus de crawl. Chaque page est un noeud et il y a un arc entre deux pages si unes pages contient le hyperlien vers lautre. Ce graphe est simple et le moins coteuse. Le graphe de similarit est dtermin par la similarit entre des pages. Il existe un arc entre deux pages si la similarit de deux pages ne dpasse pas un seuil prdtermin. Ce graphe est construit aprs ltape danalyse linguistique des pages. Alors, la construction de ce graphe est trs coteuse mais utile pour la recherche dinformation. On peut considrer ces deux graphes comme deux aspect : physique et logique. Le graphe des hyperliens est comme un graphe physique du Web et le graphe de similarit est le graphe logique du Web. En analysant les deux graphes, on trouvera les caractristiques de la structure du Web. Par exemple, on peut comparer le graphe des hyperliens avec le graphe de similarit. S'ils sont similaires, on peut exploiter le graphe des hyperliens comme un graphe de similarit mais avec le cot beaucoup moins cher.

2.3. Analyse linguistique


Le Web est toujours le plus grand corpus pour la recherche linguistique. Il fournit un grand nombre des pages dans tous les domaines et en plusieurs langues. Dans ce travail, nous voulons construire des corpus en franais dans les domaines particuliers partir du Web avec l'aide de crawl focalis.

5
Aprs le nettoyage des balises HTML, les pages sont traites par un tiqueteur morphosyntaxique. Nous utilisons l'tiqueteur TreeTagger dvelopp par l'Universit de Stuttgart. Cet tiqueteur supporte plusieurs langue: l'anglais, l'allemand, l'espagnol,... et aussi le franais. La sortie est une liste des mots avec les tiquettes correspondants. Le rsultat obtenu par TreeTagger est en suite trait par des outils linguistiques dvelopps par l'ERSS: Syntex et Upery. L'analyseur syntaxique de corpus Syntex effectue l'analyse en dpendance de chacune des phrases du corpus, puis construit un rseau de mots et syntagmes, dans lequel chaque syntagme est reli sa tte et ses expansions. A partir de ce rseau, le module d'analyse distributionnelle Upery construit pour chaque terme du rseau l'ensemble de ses contextes syntaxiques. Les termes et les contextes syntaxiques peuvent tre simples ou complexes. Le module rapproche ensuite les termes, ainsi que les contextes syntaxiques, sur la base de mesures de proximit distributionnelle. L'ensemble de ces rsultats est utilis comme aide la construction d'ontologie partir de corpus spcialiss.

3. Objectif du stage
Ce stage est une partie dans un grand projet de l'IRIT. L'objectif principal de ce stage est de dvelopper un crawl focalis afin de construire les corpus de texte pour la recherche linguistique. D'autre cot, ce stage demande une tude sur les outils linguistique et l'intgration de ces outils dans le systme. On peut voir dans la Figure 1 le diagramme des modules dans le systme que nous allons dvelopper dans ce stage. Dans la premire partie du stage, nous construirons le "crawl focalis", le module principal du stage. Et puis, les outils d'analyse linguistique vont tre tudis et intgrs dans le systme. L'automatisation 1 et 2 sont dveloppes pendant la construction de crawl focalis. L'automatisation 3 est l'intgration de TreeTagger dans le systme et l'automatisation 5 est l'intgration de Syntex et Upery dans le systme. L'automatisation 4 est un module qui a dj dvelopp par IRIT pour construire le graphe de similarit partir de la matrice de frquence des mots, une matrice de deux dimensions M(i,j), l'une est les documents et l'autre est les mots, les valeurs sont les frquences des mots i dans le document j. La mission de ce stage est de faire sortir la matrice de frquence des mots partir des

6
pages Web rcupres. Cette tche est aussi effectue pendant la construction de crawl.

WEB

Crawl focalis

Automatisation 1

Base de pages

Automatisation 2

Graphe des hyperliens

Base de pages nettoyes

Automatisation 3

Automatisation 4

Base de pages lemmatise

Graphe de similarit

Automatisation 5

Rseau de mots et syntagmes

Figure 1: Diagramme des modules du stage

4. Organisation du rapport
Globalement, le rapport se divise en trois chapitres principaux. Aprs un petit chapitre d'introduction (ce chapitre), on fait ensuit une tude sur tous les problmes de crawl du Web dans le chapitre 2. Ce chapitre prsentera l'architecture gnrale, l'algorithme de crawl et aussi les stratgies dans la conception d'un crawl du Web. Puis, le chapitre 3 donnera une vue dtaille sur notre approche de crawl focalis. En se basant sur les analyses dans le chapitre 2, nous proposerons une architecture de notre crawl pour adapter l'objectif de ce stage. Tous les problmes de la conception et les problmes techniques sont abords. Nous concentrons sur la conception de crawl: les composants, les mcanismes, la structure de donnes... Dans le chapitre suivant, le chapitre 4, l'tude des outils linguistiques et les problmes techniques de l'intgration ces outils dans le systme sont prsents. On parlera de le fonctionnement des outils linguistiques: TreeTagger, Syntex, Upery et aussi de le prtraitement de texte, de l'intgration. Dernirement, la conclusion va faire un rsum des rsultats obtenus et donner l'valuation de notre travail.

Chapitre 2

CRAWL DU WEB
1. Introduction
Le crawl du Web est un programme informatique qui explore le Web d'une faon mthodique et automatise. Les crawls du Web sont principalement employs pour crer une copie de toutes pages visites pour traiter plus tard par un moteur de recherche, celui classera les pages tlcharges pour fournir des recherches rapides. Les crawls sont utiliss largement aujourd'hui. Les crawls pour les moteurs de recherche (par exemple, AltaVista, INFOSEEK, Excite, et Lycos) essayent de visiter la plupart des pages Web des textes, afin d'tablir des index de contenu. D'autres crawls peuvent galement visiter beaucoup de pages, mais peuvent regarder seulement pour certains types d'information (par exemple, adresses email). Et il existe aussi des crawls qui dtectent des pages d'intrt d'un utilisateur particulier, afin d'tablir une cache d'accs rapide (par exemple NetAttche). La conception d'un bon crawl prsente beaucoup de dfis. Extrieurement, le crawl doit viter la surcharge des sites Web ou des liens de rseau pendant son parcours [12]. Intrieurement, le crawl doit traiter les volumes de donnes normes. Pour la raison des ressources informatiques illimites et le temps illimit, le crawl doit soigneusement dcider quel URLs visiter et dans quel ordre. Il doit galement dcider comment frquemment revisiter des pages qu'il a dj vues, afin d'avertir son client courant des changements sur le Web.

2. Dfinitions
Le Web est un graphe orient G = (P, L) o pP est une page Web, (p,q) L est un lien entre page p et page q. L'arbre visit T = (V, Lc) o V est la collection des pages visit, et Lc = {(p, q)| q est visit partir p}

9
Le crawl C est un programme qui commence avec une page initiale s s'appelant le germe de dpart, explore le Web G afin de construire l'arbre visit T. La frontire B est l'ensemble de pages dans T qui ont les liens vers les pages hors de T La profondeur d0 est la distance maximale partir germe de dpart s, d(p) est la distance de la page p au germe de dpart s. E(p) est l'ensemble de pages o la page p se dirige. Le score de la page S(p) est l'importance de page p sur un sujet particulier.

3. Architecture gnrale
Un crawl devrait avoir une architecture fortement optimise. Shkapenyuk et Suel (Shkapenyuk et Suel, 2002) ont not que : Tandis qu'il est assez facile de construire un crawl lente qui tlcharge quelques pages par seconde pendant une priode courte, tablir un systme haute performance qui peut tlcharger des centaines de millions de pages au-dessus de plusieurs semaines prsente un certain nombre de difficults dans la conception de systme, l'entre-sortie et l'efficacit de rseau, et la robustesse et l'administration. Les crawls du Web sont une pice centrale de moteurs de recherche, et des dtails sur leurs algorithmes et architecture sont normalement cach comme les secrets d'affaires. Quand des conceptions de crawl sont publies, il manque souvent les dtails importants afin d'empcher de reproduire le travail. Il y a galement des soucis concernant le Search Engine Spamming 1, qui empchent les moteurs de recherche de publier leurs algorithmes et leurs architectures.

Search Engine Spamming ou Spammdexing est un ensemble de techniques consistant tromper les moteurs de recherche sur la qualit d'une page ou d'un site afin d'obtenir, pour un mot-clef donn, un bon classement dans les rsultats des moteurs (de prfrence dans les tous premiers rsultats, car les utilisateurs vont rarement au-del de la premire page qui, pour les principaux moteurs, ne comprend par dfaut que dix adresses). Source: http://fr.wikipedia.org/wiki/Spamdexing

10

3.1. Architecture de 2-modules


L'architecture d'un crawl la plus compact contient deux composants principaux: downloader et scheduler. Le scheduler calcule le score des pages pour dterminer l'ordre de traitement des pages. Le downloader tlcharge les pages, les analyses, extrait les nouveaux liens et maintient la structure des liens.

Scheduler
Calculer le score des pages, dterminer l'ordre de traitement

Downloader
Tlcharger les pages, analyser, extraire les liens

Collection

Figure 2: Architecture de 2-modules

3.2. Architecture de 4-modules


Il y a quelques problmes avec l'architecture de 2-module. Premirement, lorsque le scheduler travail sur le graphe de Web, le graphe de Web ne peut pas tre chang. Alors, le temps de la modification du graphe de Web doit tre le plus court possible. Mais, on constate que la tche d'analyse de page peut tre longue. Pendant la dure d'analyse, le graphe de Web est occup. La solution pour ce problme est d'analyser toutes les pages tlcharges en mme temps, collecter les liens et enfin les ajouter dans la collection [3]. Un autre problme se trouve dans l'organisation du module downloader. La tche d'analyse d'une page peut tre trs chre tandis que la tche de tlchargement ncessite seulement une bonne connexion de rseau et les disques dur rapides.

11
D'ailleurs, les tlchargements des pages sont souvent ports par des processus parallle, alors, chaque tche de tlchargement est trs lgre. Pour rsoudre ces questions nous divisons le module downloader en 2 modules: l'une se charger de tlchargement, l'autre est pour l'analyse des pages. L'architecture de 4-modules est propose par Carlos Castillo pour amliorer la performance des crawls du Web. Elle se compose de 4 modules suivants: Manager: calcule le score des pages et gnre la liste de K URLs pour le tlchargement dans un cycle de traitement. Harvester: tlcharge les pages Gather: analyse les pages et extrait les liens Seeder: maintien la structure de liens

Figure 3: Architecture de 4-modules

12

3.3. Algorithme de crawl


Comme nous abordons au dessus, les algorithmes et les stratgies de crawl sont toujours gardes comme le secret de chaque moteur de recherche. Pourtant, les tapes principales dans l'algorithme sont similaires. Cet algorithme utilise les dfinitions dans la section au dessus.
function crawl(s, d0) { T ({s},) B {s} while (B ) { Choisir dans B la pages pB: S(p) > S(q) qB if (d(p)<d0) { for (qE(p)) { if (q V) { B V } } } B B\{p} } } B V {q} {q}

Lc Lc {p,q}

4. Stratgies de crawl
Lors de la construction un crawl, il est ncessaire de tenir compte la performance car la largeur de bande n'est ni infinie ni gratuit. Un crawl doit soigneusement choisir chaque tape quelle page pour visiter la fois prochaine.

13
Etant donn la taille courante du Web, mme un grand moteur de recherche peut couvrir seulement une partie de l'Internet disponible. Car un crawl tlcharge toujours juste une fraction des pages Web, c'est fortement souhaitable que la fraction tlcharge contient les pages les plus appropries, et pas simplement un chantillon alatoire du Web. Ceci exige un mtrique pour donner la priorit des pages Web. L'importance d'une page est une fonction de sa qualit, de sa popularit en termes de liens ou visites, et mme de son URL (le dernier est le cas de moteurs de recherche limits un domaine spcifique, ou des moteurs de recherche limits un site Web fixe). Concevoir une bonne stratgie de choix a une difficult supplmentaire : il doit fonctionner avec l'information partielle, car l'ensemble complet de pages Web n'est pas connu pendant le parcours de Web. Comme dans la section de dfinition, l'importance d'une pages p est S(p), nous pouvons calculer l'importance de la page p par une des manire suivant: Breadth-first (SB1): Cette mtriques est le plus simple mais dans quelques cas elle peut donner un bon rsultat. Nous utilisons SB1(p) au lieu de S(p) pour le distinguer avec les autres mtriques. La valeur de SB1(p) est gale la profondeur de la page p par rapport le germe de dpart, alors SB1(p)=d(p). BackLink-count (SB2): On constate que la page p qui est point par plusieurs pages est plus importante que celles qui ont moins des pages de rfrence. La valeur de SB2(p) est le nombre de page dans le Web entier qui ont le lien point p. En effet, on ne peut pas exactement calculer SB2(p) car cela demande d'un parcours di Web entier. Alors, un crawl peut souvent estimer la cette valeur SB2'(p) par le nombre de liens qui ont dj t visit par le crawl. PageRank (SR): tous les liens sont considrs galement dans la mtrique SB2(p). Donc, il n'y a pas de diffrence entre le lien de la page d'accueil Yahoo et un lien d'une page individuelle. Pourtant, le lien partir du site de Yahoo est toujours plus important, il doit avoir une valeur SB2 plus grande. La mtrique PageRank, SR(p), dfinit rcursivement l'importance d'une page tant gale le somme de toutes l'importances des pages qui ont le "backlink"

14
ver la page p. Nous utilisons SR'(p) pour estimer SR(p) car nous avons seulement un sous-ensemble des pages du Web. FowardLink-Count (SF): Cette mtrique SF(p) est similaire la mtrique BackLink-Count SB(p) mais elle se base sur le nombre des liens dans une pages. La valeur SF(p) est directement calcul partir de la page p, alors SF'(p) =SF(p). OPIC2 (SO): Dans la mtrique OPIC, toutes les pages commencent par la mme valeur "cash". Chaque fois qu'une pages est rcupre, sa valeur "cash" est divise parmi les pages qu'elle pointe vers. La valeur "cash" d'une page, ou la valeur SO, est le somme des pages qui ont le backlink point elle. Cette mtrique est similaire la mtrique PageRank mais le calcul est beaucoup plus rapide. Lager-site-first (SL): Le but de cette mtrique est d'viter d'avoir trop de pages en suspens dans n'importe quel site Web. Un site qui a le nombre de pages en suspens plus grand est le site qui a plus de priorit. Alors, les pages dans ce site ont l'ordre plus haut. La valeur SL(p) est gale au nombre des pages en suspens du site que p appartient . Plusieurs de travaux sont consacrs sur les mtriques de l'importance dans les crawls du Web. Les auteurs essayent de tester et de comparer les mthodes traditionnels comme: Breadth-First, BackLink-Count et PageRank. La premire tude sur les mtriques de l'importance est de Cho et al. En utilisant 180.000 pages de teste dans le domaine de stanford.edu, ils trouvent que la mtrique de calcul partiel de PageRank est la meilleure, suivi de la mtrique Breadth-First et BackLink-Count. Najork et Wiener (Najork et Wiener, 2001) est test son crawl avec 328 millions de pages, en utilisant la mtrique Breadth-First. Ils ont constat qu'un crawl de Breadth-First capturait les plus tt des pages avec le rang de la page haut. L'explication par les auteurs pour ce rsultat est que les pages les plus importantes ont beaucoup de liens eux, et ces liens seront trouvs tt. L'tude de Baeza-Yates et al. (Baeza-Yates et al., 2005) montre que les mtrique OPIC et Larger-Site-First sont bons mais le calcul de PageRank est lent et ne donne pas des bons rsultats.

OPIC: On-line Page Importance Computation

15

5. Respect de la politesse
Evidement, les crawls recherchent des donnes beaucoup plus vite et plus dtaill que l'humain. Cela peut influencer la performance des sites Web si un crawl effectue plusieurs requtes par second et/ou tlcharge un gros fichier sur un mme site. Comme la remarque de Koster (Koster, 1995), l'utilisation des crawls du Web est utile pour l'un certain nombre de tches, mais vient avec un prix de la communaut gnrale. Les cots de l'utilisation des crawls du Web incluent : Les ressources de rseau: comme les crawls exigent la largeur de bande considrable et fonctionnent avec un degr lev de paralllisme pendant une longue priode. Le surcharge de serveur: particulirement si la frquence des accs un serveur indiqu est trop haute. Les crawls mal crits: qui peuvent se briser des serveurs ou des routeurs, ou qui tlchargent des pages qu'elles ne peuvent pas manipuler. Les crawls personnelles: si ils sont dploys par trop d'utilisateurs, ils peuvent perturber des rseaux et des serveurs de Web. Une solution partielle ces problmes est le protocole d'exclusion de robots, galement connu sous le nom de protocole de robots.txt (Koster, 1996) qui est une norme pour que les administrateurs indiquent quelles pices de leurs serveurs de Web ne devraient pas tre accdes par des crawls. Cette norme n'inclut pas une suggestion pour l'intervalle des visites au mme serveur, quoique cet intervalle soit la manire la plus efficace d'viter la surcharge de serveur. Les moteurs de recherche commerciaux rcemment comme Ask Jeeves, MSN et Yahoo peuvent employer des frais supplmentaires Crawl-Delay, une paramtre dans le dossier de robots.txt pour indiquer le nombre de secondes pour retarder entre les demandes. La premire proposition pour l'intervalle entre les connexions a t donne dedans et tait de 60 secondes. Cependant, si des pages taient tlcharges ce taux d'un site Web avec plus de 100.000 pages au-dessus d'une connexion parfait avec la latence nulle et la largeur de bande infinie, cela prendrait plus de 2 mois pour tlcharger

16
seulement ce site Web entier ; aussi, seulement une fraction des ressources de ce Web serveur serait utilis. Ceci ne semble pas acceptable. Cho (Cho et Garcia-Molina, 2003) utilise 10 secondes comme intervalle pour des accs, et le crawl WIRE (Baeza-Yates et Castillo, 2002) emploie 15 secondes comme dfaut. Le crawl MercatorWeb (Heydon et Najork, 1999) suit une stratgie adaptative de politesse : si cela prenait des secondes de t pour tlcharger un document d'un serveur donn, le crawl attend 10t des secondes avant de tlcharger la prochaine page. Dill et al. (Dill et al., 2002) utilisent 1 seconde.

17

Chapitre 3

CONSTRUCTION DU CRAWL FOCALISE


Ce chapitre prsentera les problmes du crawl focalis et aussi notre solution pour la construction de crawl focalis. On commence par des dfinitions utilises dans la conception de notre crawl. L'architecture et tous les problmes du crawl focalis sont abords dans les sections suivantes.

1. Suppositions et notations
1.1. Page Web
La page Web p est un document informatique qui est identifi par une adresse. Ici, on supposera que toute page a une seule adresse, on ne tient pas compte des alias. Si p est une page alors Lien(p) est lensemble de tous les hyperliens contenus dans la pages p. Si P est un ensemble des page Web alors ad(P) est lensemble des adresses de ces pages. Si A est un ensemble dadresses de pages Web, alors, Page(A) est lensemble des pages correspondant aux adresses de A. On suppose que toute adresse est valide, cest--dire que pour toute adresse a, il existe une page p dadresse a. On a donc que :

ad(Page(A)) = A
et

Page(ad(P)) = P

18

1.2. Germe de dpart


Soit R un ensemble de moteur de recherche dfinis par leurs adresses. ex : Si on a deux moteurs de recherche Google et Yahoo, on a:

R = {http://www.google.fr; http://fr.search.yahoo.com}
Soit D un domaine du Web ex : tout oubien francophone oubien .fr oubien .ca oubien .vn oubien .inria.fr ... Soit C un ensemble de chane lexical ex : C = {"graphe", "graphes"} Soit G0R,D,C l'ensemble des adresses rcupres sur R o G0R,D,C est un ensemble d'adresses de pages du domaine D contenant au moins l'une des chanes de C. G0R,D,C doit contenir le plus grande possible d'adresses ajuster selon les possibilit des moteurs de recherche. ex: G0{Google},francophone, {"graphe"}= {http://grapheeasy.alrj.org/, http://www.graphe.org/, http://chilton.com/paq/archive/PAQ-04-065.html, http://www.grapheeasy.com/index2.php?lang=fr, http://dilan.irit.fr/...} Soit F une formule propositionnelle de mots ex : F=(NON "graffiti") ET ("graphe" OU "graphes") Soit GF,R,D,C le sous ensemble maximal des adresses de G0R,D,C tel que x GF,R,D,C et F(x) = TRUE. ex : G0((NON "graffiti") ET ("graphe" OU "graphes")),{Google},francophone, {"graphe"}=

19
{http://grapheeasy.alrj.org/, http://www.graphe.org/, http://www.grapheeasy.com/index2.php?lang=fr, http://dilan.irit.fr/ ...} L'adresse http://chilton.com/paq/archive/PAQ-04-065.html a t supprime car Page({http://chilton.com/paq/archive/PAQ-04-065.html}) contient le mot "graffiti"

GF,R,D,C est appel le germe de dpart, c'est cet ensemble d'adresses qui va servir de germe pour aspirer le plus possible de pages p du domaine D du Web telles que F(p)
= TRUE. Soit E l'ensemble des pages enregistres sur le disque tel que: 1. E contient toutes les pages dont l'adresse appartient GF,R,D,C (Page(GF,G,D,C)E) 2. E contient plus grand nombre possible de pages (aspires partir du germe de dpart GF,R,D,C en temps raliste) 3. x GF,R,D,C , F(x) = TRUE Soit EN l'ensemble des pages de E qui on t nettoyes et mis en formes: suppression des images, des scripts... dans le code HTML de la page. EN doit tre prt pour passage aux outils de traitement linguistiques. Soit ENL est l'ensemble des pages de E qui on t lemmatises et tiquetes morpho-syntaxtiquement.

1.3. Graphes
Le graphe des hyperliens GH est le graphe dont les arcs sont dfinis par les hyperliens entre les pages.

20
Le graphe de similarit smantiques GS entre les pages dont les arcs sont dfinis par: il existe une arrte r s entre les pages r et s si seulement si la distance smantique entre r et s ne dpasse pas un seuil prdtermin.
d(r,s) < S0

2. Constitution du germe de dpart


Le fonctionnement du crawl ncessite d'abord une liste de URLs initiale. Dans ce travail, nous utilisons les moteur de recherche Yahoo et Google pour construire le germe de dpart car seulement Yahoo et Google fournissent l'API pour accder leur service de recherche sur Web. L'ensemble des adresses des pages partir desquelles le crawl va s'effectuer est constitu par l'interrogation des moteur de Yahoo et Google, via leur APIs respective, selon le respect des limites du nombre de requtes imposes. En effet pour une requte donne, nous ne pouvons accder quaux 1000 premiers rsultats sur lensemble des pages indexes par Google et 5000 rsultats de pages indexes par Yahoo. Google donne la permission d'utilisation de son API par une cl. La cl est fournie pour chaque personne qui a un compte d'accs de Google. Yahoo demande une inscription du nom de crawl avant le tlchargement son API. Ce nom est utilis comme la cl pour l'utilisation de l'API de Yahoo. Toutes les cls d'accs seront fournies via l'interface utilisateur ou le fichier de paramtres Pour atteindre le plus grand nombre dadresses, linterrogation devra jouer sur les diffrentes manires dexprimer une mme requte. Si nous faisons varier lordre dans lequel ces rsultats sont affichs, nous pouvons esprer atteindre un nombre de pages plus important. Par exemple, les requtes suivantes provoquent un ordonnancement diffrent des rsultats alors que les pages correspondant sont a priori les mmes : graphe graphe graphe graphe OR graphe A partir du premier germe ainsi constitu, on peut laugmenter en adressant aux moteurs des requtes du type :

21
liste_de_mots site:hostname liste_de_mots related:url La requte 1 correspond aux pages correspondant la liste de mots spcifie pour un site entier. La requte 2 comprend les pages contenant la liste de mots et pointant vers une url donne. Par exemple, si le germe contient les urls http://dilan.irit.fr/Projets/Projets.php et http://www.apprendre-enligne.net/graphes/, on ajoute au germe initial les rsultats des requtes : liste_de_mots site:dilan.irit.fr liste_de_mots related:dilan.irit.fr/Projets/Projets.php liste_de_mots site:www.apprendre-en-ligne.net liste_de_mots related:www.apprendre-en-ligne.net/graphes/

3. Architecture
Le but de la conception de ce crawl est de rcuprer le plus grand nombre de pages sur le Web qui concernent un sujet dterminant par la chane lexicale C. Nous voulons tlcharger tt les pages les plus concernes au sujet. Toutes les analyses dans le chapitre 2 sont utilises pour la conception de ce crawl.

3.1. Composantes
Pour la construction du crawl focalise, nous suivons l'architecture de 4-modules. Dans cette conception, nous ajoutons un module pour valider la pertinence du contenu de la page. Ce module est correspondant la formule propositionnelle.

3.1.1. Launcher
Ce module va lire le fichier des paramtres pour tablir les mta-donnes dans le mmoire. Ensuite, il vrifie si le germe est constitu ou non. Si le germe de dpart n'est pas encore exist, le module Launcher va le crer par interroger les moteurs de recherche Google et Yahoo.

22
Page HTML Downloader Extractor

Liste de URLs visiter

Liste des URLs

Texte clair

Mtadonnes

URL Handler

Content Validater

Scheduler Liste des URLs valides Texte clair

Google et Yahoo

Launcher

Germe de dpart

Figure 4: Architecture du crawl

3.1.2. Scheduler
Ce module utilise les informations des pages dans la base de donnes pour gnrer la liste des URLs visiter pour chaque cycle de traitement. Cette liste contient K URLs (K = 1000 par dfaut). Ce crawl vise rcuprer le plus grand nombre de pages Web concernes un sujet particulier. On peut le considrer comme un crawl "exhaustif" dans l'espace de ce

23
sujet. Mais on veut que le crawl tlcharge tt les pages plus importances. Alors la mtrique de l'importance des pages doit tre simple mais rapide dans le calcul car l'ordre de tlchargement des pages n'est pas trop important. D'ailleurs, partir du graphe des hyperliens, on peut facilement saisir les informations des liens entrs et des liens sortis d'une page. Le graphe des hyperliens est construit pendant le parcours du Web. Alors, le calcul des mtriques BackLink-Count (SB2) et ForwardLink-Count (SF) est gratuit. C'est la raison que nous choisissons ces deux mtriques pour la stratgie de crawl. Pourtant, la valeur de SB2 et SF est calcule pour le graphe courant pas pour le graphe de Web entier. Donc, en fait, ce sont les deux valeurs SB2' et SF'.

3.1.3. Downloader
Le module downloader reoit la liste de K URLs gnre par le module Scheduler et essai de les tlcharger. Pour chaque cycle de traitement, toutes les pages dans cette liste sont tlcharges.

i. Queue des URLs

S1 P1.1 P1.2 P1.3 P1.4

S2 P2.1 P2.2 P2.3 P2.4

S3 P3.1 P3.2 P3.3 P3.4

S4 P4.1 P4.2 P1.3 P4.4 la queue de niveau 2 la queue de niveau 1

Figure 5: Queue de deux niveaux: S1, S2,... sont les sites Web et Px.y est la yime page de site x.

La liste des K URLs gnre par le module Scheduler est rorganise dans une queue de deux niveaux. On groupe tous les URLs appartenis le mme site dans une queue

24
qu'on l'appelle la queue de niveau 2 ou la queue des pages. Alors chaque site est correspondant une queue. La queue de niveau 1 est la queue des sites. Les lments de cette queue sont les sites. On peut considrer cette organisation comme une queue de queue. Ce type de queue semble efficace pour le paralllisme et le respect de la politesse du module Downloader. Le crawl WIRE utilise aussi une queue comme ceci pour la gestion des URLs dans son module Harvester.

ii. Paralllisme
Afin de profiter de la connexion du rseau, ce module est organis en plusieurs processus lgers (multi-thread). Chaque processus se charge de tlcharger les pages partir les URLs donnes. Les tapes pour tlcharger une page sont:

URL

processus 1 processus 2

Page

Queue de deux niveaux processus 3 .... processus n

disque local

Figure 6: Paralllisme

1. Rcuprer l'en-tte HTTP de la page: L'en-tte HTTP contient les mtas donns de la page: le type, l'encodage... On utilise la mthode HEAD dans le protocole HTTP pour rcuprer cet en-tte sans tlcharger le contenu entier de la page. 2. Vrifier le type de la page: Dans l'implmentation courant, on n'acceptera que les pages du type HTML ou texte (text/html, text/plain). 3. Tlcharger et enregistrer la page: Si la page n'est pas en HTML ou texte, on ne la tlcharge pas et on marque dans la base de page le type de la page. Si la page est en HTML et texte, on la tlcharge et enregistre dans le disque local. Ce fichier est plus tard trait par le module Extractor.

25
iii. Respect de la politesse
La politesse d'accs des sites est trs importante pour maintenir un vrai crawl. Dans ce crawl, la politesse choisie est de ne pas tablir plus d'une connexion un site dans un mme temps, d'attendre pour un nombre de seconds (10 seconds par dfaut) parmi les tlchargements. La politesse est maintenue par la queue de deux niveaux. Chaque fois, les processus demandent un nouveau URLs pour le tlchargement, la queue de deux niveaux va choisir un site qui n'est pas dans l'tat "occup", un site est "occup" si le temps d'attente n'est pas suffisant. Parce que les pages dans un site sont organises dans une queue de niveaux 2, alors aprs avoir choisi un site, la page dans la queue de ce site est retire. L'algorithme pour retirer un URL partir de la queue de deux niveaux q est au dessous. Dans cet algorithme, q2 est la queue de niveaux 2 qui est correspondant un site dans la queue q, w0 est le temps d'attente pour chaque tlchargement. La sortie de la fonction getURL() est un URL ou nul s'il n'y a aucun URL dans la queue.
function getURL( q ) { if (q.isEmpty()) return null q2 = dequeue(q) if (q2.isEmpty()) return getURL(q) if (q2.getWaitTime()<w0) { enqueue(q,q2) return getURL(q) } p = dequeue(q2) q2.lastAccessTime=now enqueue(q,q2) return p }

26
iv. Redirections et erreurs lies au rseau
Lorsquune page est redirige (header HTTP 3xx ou mta-balise HTML quivalente), on note le statut de cette redirection dans la base de donnes, lurl de redirection est insre et le lien page redirige adresse de redirection est insr. Lorsquune page isole provoque une erreur rseau, on peut la revisiter ultrieurement un nombre donn de fois (nombre paramtrer). Lorsque cest un domaine entier qui provoque des erreurs rseau, on peut stopper temporairement son parcours et y revenir ultrieurement, puis dcider le labandonner compltement. Lorsquenfin les pages de plusieurs domaines diffrents provoquent des erreurs rseau, on peut supposer quil sagit dune panne gnrale. Dans ce cas, le programme sarrte temporairement (eg. 10 minutes, paramtrer) et reprend automatiquement. On peut sassurer que le rseau ne dysfonctionne en se connectant des adresses de rfrence (supposes toujours valides) et en sassurant quelles ne fonctionnent pas.

3.1.4. Extractor
Le module Extractor reoit les donnes binaires de la page Web et l'analyse. L'analyseur HTML utilis dans ce module est un analyseur DOM, qui va construire l'arbre DOM partir de la page HTML. Pendant l'analyse, les URLs sont dtects et ajouts dans une liste. L'analyseur va aussi extraire le texte clair de la page. Il nettoie toutes les balises HTML, les informations concernant les couleurs, les images, les fonts,... sont supprimes. Il reste seulement le contenu textuel de la page.

i. Suivi de liens
Lors de lanalyse dune page, tous les liens sont extraits. Il sagit de liens HTML classiques (<a href=...>...</a>) et galement des liens contenus dans : les frames (voire Figure 7); les iframes ; les images mappes (voire Figure 8);

27
le code javascript. Les URLs dans les liens HTML classique et dans les frame, iframe, les images mappes est facile parser. Mais le suivi de liens dans le code javascript est compliqu trouver exactement. Normalement, les URLs se situe dans deux commandes de navigation de javascript:
windows.open('agenda.html') document.location.href='agenda.html'

Cependant, javascript est un morceau de programme, et alors, il peut contenir des variables et des appels de fonction, comme dans les cas suivants: Cas 1: l'appel de la fonction
function ouvrirFenetre (adresse) { windows.open (adresse); } ouvrirFenere ('agenda.html');

Cas 2: les variables


var base = 'www.irit.fr'; url = base + '/faq.html'; document.location.href=url;

Pour faire merger tous les liens dans le code javascript, on a besoin une analyseur complet de javascript. Nous simplifions ces cas en supposant que le code javascript contient seulement les navigations directes, cela veut dire, il n'y a pas de variables ou des appel de fonction. Nous ne traitons pas les autres cas. Pour chaque lien extrait, lURL est rsolue dans sa forme canonique. LURL rsultant sera ventuellement filtre en tenant compte des diffrents critres (domaine, extension de fichier). Si lURL ne rpond pas ces critres, elle nest pas insre dans la base de donnes. Dans le cas contraire, on note lexitence du lien url source url destination dans la base de donnes. Pour chaque sommet insr (i.e. ne faisant pas partie du germe initial), on note dans la base ladresse de la page pointant vers le sommet insr. Ce renseignement peut tre utile la dtection de piges robots.

28

Figure 7: Liens dans le frameset

Figure 8: Liens dans les images mappes

ii. Du HTML au texte


Avant de commencer lanalyse proprement dite dune page, il est possible de rcolter des mta-donnes (lorsquelles sont prsentes) dans les en-ttes HTTP et les mtabalises HTML de la section head. Ces mta-donnes peuvent ventuellement renseigner sur le type de page (texte, html ou autre), lencodage (jeu de caractres) de la page et la langue du document (franais ou autre).

29
Si une page apparat comme ntant pas en franais, contenant un mdia non textuel ou tant encode dans un jeu de caractre qui rvle un autre alphabet que le franais, elle ne sera pas analyse et la raison de ce rejet sera mentionne dans la base de donnes. Suppression des balises En extrayant le texte du HTML, il est ncessaire de porter attention au fait que certaines balises segmentent les mots et dautres non : tu<span>es ! {tues} tu<div>es ! {tu, es} Une liste de balises qui jouent le rle de segmenteurs est fournie. Recodage vers le jeu de caractres de travail Le texte est, si ncessaire, recod vers le jeu de caractres de travail (latin9, par exemple) partir de lencodage initial de la page (latin1, windows-1252, Unicode). Rsolution des entits HTML Les entits HTML sont ensuite rsolues. Une mme entit peut tre exprime de diffrentes manires. Ainsi le caractre peut tre crit :
&eacute ; &#233 ; &#xE9 ;

Les mots contenant des entits non rsolues sont supprims. La liste des diffrentes entits HTML est fournie. Segmentation en mots et construction de la matrice de frquence des mots Du texte, nous pouvons obtenir une liste de mots en projetant sur le texte lexpression rgulire, non sensible la casse : \b[a-z\-]+\b

30
Pendant la segmentation en mots, l'analyseur compte aussi la frquence de chaque mot dans une page. Ces valeurs de frquence des mots dans une page sont enregistres dans un fichier texte correspondant. L'ensemble des fichiers de frquences sont actuellement la matrice de frquence de mots.

3.1.5. URL Handler


Ce module se charge de la rsoudre les URLs et d'examiner les conditions ncessaires avant de les insrer dans la base de donnes. Les URLs dtects par le module Extractor sont rsolues dans la forme canonique. Puis, ils sont examins par le filtre de domaine, la rgle d'exclusion, et le pige de robot.

i. Filtre de domaine
Ce filtre permet le crawl d'viter de visiter les page ou les site dans un domaine particulier comme: .com, .uk, .us ou .ebay.com... L'utilisateur peut dfinir le filtre par l'expression rgulire ou le caractre wildcard (*).

ii. Rgle d'exclusion


Les URLs doivent respecter les rgles dexclusion dfinies dans les fichiers robots.txt3 des sites ansi que les mta-balises HTML noindex, nofollow et noarchive.

iii. Pige robot


Un pige robot (Spider Trap4) est un ensemble de pages Web qui peut intentionnellement ou involontairement tre employ pour faire briser un crawl mal construit. Des piges robot peuvent tre crs pour attraper les spambots5 ou d'autres crawl qui gaspillent la largeur de bande d'un site Web. Ils peuvent galement tre crs involontairement par des pages dynamiques avec les liens qui se dirigent continuellement au jour suivant ou l'anne. Un pige robot fait entrer un crawl du Web quelque chose comme une boucle infinie, qui gaspille les ressources du crawl, abaisse sa productivit, et, dans le cas d'un crawl mal crit, peut se briser le programme.
3 4 5

voir http://www.robotstxt.org/wc/robots.html http://en.wikipedia.org/wiki/Spider_trap http://en.wikipedia.org/wiki/Spambot

31
Une stratgie devra tre labore pour dtecter et sortir des piges robots. Certaines pistes sont donnes sur le site dHeritrix (voir http://crawler.archive.org/cgibin/wiki.pl?TrapDetectionIdeas) Le but ici est de distinguer si deux ou plusieurs URLs sont l'adresse d'une mme page. Avec la comparaison de chane de caractres entre les URLs, on ne peut pas assurer que ces URLs ne sont pas les alias d'une page. Les cas suivant sont examins: Nombre de segments rpts dans lurl:
http://foo.com/bar/foo/bar/foo/bar/foo/bar/.....

Plusieurs paramtres de mme nom dans la query-string:


http://foo.com/bar?a=1&a=2&a=3&b=bbb...

Paramtre des identifications de session:


http://foo.com/?jsessionid=akhqhgd1q.alice

Dans deux premiers cas, on garde seulement une fois le segment rpt ou le paramtre de mme nom, alors:
http://foo.com/bar/foo/bar/foo/bar/foo/bar/.....

devinent
http://foo.com/bar/foo/.....

et
http://foo.com/bar?a=1&a=2&a=3&b=bbb...

devient
http://foo.com/bar?a=1&b=bbb...

Dans le troisime cas, les paramtres des identifications de session sont supprims. La liste des noms des paramtres des identifications de session est stocke dans un fichier (et peut tre modifie). Pour l'instant, les identifications suivante sont examines: sessionid, jsessionid, phpsessid, userid, uid, nguserid,
session-id, aspsessionid, sid, cfid, cftoken, jwsessionid, sessid, session, session_id. jservsessionid,

3.1.6. Content Filter


Une fois la page segmente en mots, on peut rpondre aux questions suivantes :

32
La page satisfait-elle la requte initiale ? Suivant la rponse (que lon reporte dans la base de donnes), et en fonction de la profondeur du crawl, on dcide dinsrer ou non dans la base les liens prsents dans la page. La page parat-elle tre en franais ? Le critre pour rpondre est le suivant : %mots connus: SeuilMC %mots grammaticaux franais: SeuilGrFR %mots grammaticaux autres langues: SeuilGrA Nous disposons de liste de mots connus, de mots grammaticaux du franais et dautres langues. La contenu de la page doit tre satisfait la formule propositionnelle des mots et le profondeur. La formule propositionnelle contient les mots, les oprations logiques and (&), or (|) et not (^) et les parenthses. Par exemple: F1 = (graphe|graphes) F2 = (graphe | graphes) & (^image) La profondeur d'une page est calcule comme l'algorithme suivant: si le contenu de la page satisfait la formule propositionnelle, la profondeur est toujours gale 0; dans le cas contraire, la profondeur est gale la profondeur de la page parent plus 1.
function depth(p) { if (F(p)=TRUE) return 0 else return p.parent.depth+1 }

Par exemple, si on limite la profondeur de 3, on examine l'arbre de parcours suivant: Les pages P1, P2, P4, P7 ont la profondeur 0. La page P6 a la profondeur 3, on s'arte de parcourir les URLs dans la page P6.

33
P1 F(P1)=TRUE d=0

P2 F(P2)=TRUE d=0

P3 F(P3)=FALSE d=1

...

P4 F(P4)=TRUE d=0

P5 F(P5)=FALSE d=2

...
P6 F(P6)=FALSE d=3 P7 F(P7)=TRUE d=0

...

Figure 9: Exemple du calcul de la profondeur

3.2. Base de donnes


La base de donnes contient deux tables pour stocker les informations des pages (table page_node) et le graphe des hyperliens (table link_edge). Table :page_node
Ordre Champ
1 2 3 4 id url hasword status

Description
Identifiant de la page, les identifiants est en fait le hachage MD5 du URL de pages Le URL de la page = 0 : la page ne satisfait pas la fonction logique = 1 : la page satisfait la fonction logique = 0 : la page nest pas encore visite = 1 : la page est visit et satisfait la fonction logique = 2 : la page est visit mais ne satisfait pas la fonction logique = 3 : sil y a des erreur durant le traitement de la page

34
= 4 : si la page est dj existe dans la base de donnes mais avec un autre URL = 5 : sil y a la rorientation de la page (HTTP 3xx) = 6 : la page est dj analys par Syntex

Table : link_edge

Ordre Champ
1 2 3 id page1 page2

Description
Identifiant de larte, La value de lidentifiant est le hachage MD5 de la concatnation de deux URLs identifiant de la page de source identifiant de la page de cible

Le graphe des hyperliens est construit pendant le processus de crawl. Chaque page est correspondant un sommet du graphe et est stock dans la table page_node. Les arcs du graphe sont stocks dans la table link_edge. Le contenu de la page est stock dans un rpertoire sur le disque local.

3.3. Interface d'utilisateur

Figure 10: Interface d'utilisateur 1

Le crawl peut fonctionner en mode de texte mais, nous avons dvelopp aussi une interface graphique pour mieux grer les projets de crawl, les configurations, la visualisation des rsultats et la suivi de traitement. Maintenant, le module de

35
visualisation des graphes (graphe de hyperliens et graphe de similarit) n'est pas encore intgr dans cette interface. Ce module est dvelopp par le projet prox de l'IRIT (http://prox.irit.fr) pour visualiser le graphe en 3 dimensions.

Figure 11: Interface d'utilisateur 2

4. Environnement de programmation et dpendances


Le langage de programmation utilis est Java en utilisant l'environnement de programmation Eclipse. Pour l'implmentation, nous utilisons les bibliothques suivantes: HttpClient: Cette bibliothque permet de effectuer les connexions HTTP des sites Web et tlcharger les pages. Elle donne aussi des outils pour la rsolution des URLs.

36
JTidy: JTidy est une implmentation en Java de Tidy. Cette bibliothque se charge d'analyse les pages HTML, rsoudre le problme de l'encodage. JTidy peut aussi rparer les males balises HTML pendant l'analyse. Eclipse RCP: Eclipse RCP est un flat-forme pour le dveloppement des applications en Java. Ce flat-forme a l'architecture de "plugin", qui permet aux dveloppeurs de facilement brancher ou supprimer les modules de l'application. Eclipse RCP donne l'ensemble de modules pour le dveloppement de l'interface graphique en se basant sur les bibliothques SWT et JFace.

37

Chapitre 3

ANALYSE LINGUITIQUE DES PAGES WEB


L'objectif de la deuxime partie de stage est d'tudier les outils d'analyse linguistique exist et les intgrer dans le systme pour analyser les pages Web rcupres par le crawl. Il existe actuellement des outils dvelopps par l'ERSS pour l'analyse linguistique. Il s'agit de deux outils: Syntex et Upery pour l'analyse syntaxique et l'analyse distributionnel. Syntex ustilise le rsultat d'un tiqueteur morphosyntaxique qui s'appelle TreeTagger dvelopp par l'Universit de Stuttgart. Dans ce chapitre, nous introduisons ces trois outils et l'intgration de ces outils dans le systme.

1. Outils d'analyse linguistique


1.1. TreeTagger
TreeTagger est un bon outil d'analyse morphosyntaxique dvelopp par l'Universit de Stuttgart. TreeTagger a t avec succs employ pour tiqueter les textes franais allemands, anglais, franais, italiens, espagnols, bulgares, russes, grecs, portugais et est facilement adaptable d'autres langues si un lexique et un corpus manuellement tiquet pour l'apprentissage sont disponibles. TreeTagger est facile utiliser NOM VER:pres ADJ PRP VER:infi TreeTagger tre facile utiliser

Exemple de la sortie de TreeTagger

38
Le fichier de paramtre pour le franais a t fourni avec bont par Michel Gnreux. La liste dtaille des catgories morphosyntaxiques est cite dans le Tableau 1 dans l'annexe.

1.2. Syntex
Syntex (Bourigault & Fabre, 2000) est un analyseur syntaxique de corpus. Il existe actuellement une version pour le franais et une version pour langlais. L'entr de Syntex est un corpus tiquet par TreeTagger. La sortie est un corpus analys syntaxique et un rseau de syntagmes. Il y a donc deux tape de traitement de Syntex: l'analyse syntaxique en dpendance et la construction du rseau de syntagmes.

1.3. Analyse syntaxique en dpendance


L'analyse syntaxique est de trouver les relations entre les mots dans une phrase. La Figure 12 illustre la chane de traitement pour l'analyse syntaxique pour la phrase "Le chat de Marie mange une petite souris".

Figure 12: Exemple de l'analyse syntaxique

39

1.3.1. Relations syntaxiques


Dans chaque phrase, Syntex pose des relations de dpendance syntaxique entre les mots, les mots ont t pralablement tiquets. Une relation de dpendance syntaxique se compose de deux parties (un rgi et un recteur) et une orientation du rgi vers son recteur. L'orientation est libelle par le nom de la relation.

Figure 13: Relation de dpendance syntaxique

Les relations syntaxiques doivent respecter deux contraintes suivantes:

Contrainte 1: Un mot ne peut avoir plus d'un recteur, mais un mot (recteur) peut
avoir plusieurs rgis et un mot peut tre recteur ou rgi la fois.

Figure 14: Contrainte 1

Contrainte 2: Les relations de dpendance ne peuvent pas se croiser.

Figure 15: Contrainte 2

40
Dans cette section, nous parlerons de quelques relations principales qui sont traites par Syntex.

Figure 16: Quelques relations principales

1.3.2. Module d'analyse syntaxique automatique


Pour chaque relation, Syntex implmente un module spar pour traiter la relation. Chaque module prend en entre les rsultats des modules prcdents. Chaque

module est constitu dun ensemble dheuristiques de parcours de la squence annote. Dans cette section, nous prsentons les algorithmes de traitement des
relations syntaxiques et la solution pour l'ambigut.

i. Algorithme DET
Point de dpart : le dterminant (le rgi) Direction : droite Arrt : au premier Nom

Figure 17: Algorithme DET

41
ii. Algorithme PREP-d
Point de dpart : la prposition (le recteur) Direction : droite Avec saut dun rgi jusqu son recteur Arrt : au premier Nom ou Pronom ou Verbe linfinitif

Figure 18: Algorithme PREP-d

iii. Algorithme OBJ : premier nom droite


Point de dpart : le verbe (le recteur) Si pronom clitique objet juste gauche ou pronom relatif que gauche: choix, arrt Sinon direction : droite Saut de certaines squences entre virgules (incises) Arrt : au premier Nom (ou verbe linfinitif)

Figure 19: Algorithme OBJ

iv. Algorithme SUJ : dernier nom gauche


Point de dpart : le verbe (le recteur) Direction : gauche Saut de certaines squences entre virgules (incises) Arrt : au dernier Nom ou Pronom

42
Si chec (sujet invers) : o Point de dpart : le verbe o Direction : droite o Arrt : au premier Nom ou Pronom

Figure 20: Algorithme SUJ

v. Algorithme ADJ
Dans cet algorithme, il existe les cas d'ambigut. Pour le cas o le nom est juste droit de l'adjectif, ce nom est le recteur. Mais si il y a pas plusieurs noms gauche cot de l'adjectif, l'ambigut se produit. Par exemple: [Nom1 de Nom2 Adjectif]

Figure 21: Ambigut de rattachement des adjectifs

43
Dans ce cas, on doit utiliser les autres informations pour choisir le vrai recteur. Syntex utilise le historique pendant l'analyse: les indices endognes calcules sur le corpus. Ce sont actuellement l'acquisition de proprits de rection dans les contextes non ambigus. Pour chaque adjectif, on peut trouver quelques candidats de recteur. On va affecter les indices aux candidats. Chaque candidat est reli avec un argument arg, nombre de fois que ladjectif est rgi par le candidat dans un contexte non ambigu. On choit le candidat qui a le score d'indice le plus lev. S'il y a des concurrences ou aucun candidat n'a reu d'indice, on choit le candidat le plus proche de l'adjectif. Alors, l'algorithme ADJ est : Point de dpart : ladjectif (le rgi) Si nom juste droite : arrt Sinon direction : gauche o Recherche des candidats o Affectation des indices aux candidats o Choix de celui qui a le score d'indice le plus lev ou qui est le plus proche de l'adjectif si concurrence Ou si aucun candidat na reu dindice

Figure 22: Algorithme ADJ: recherche des candidats

44

Figure 23: Algorithme ADJ: slection d'un candidat

vi. Algorithme PREP


La relation PREP a aussi les ambiguts. Les ambigut dans cette relation sont plus souvent que dans la relation ADJ et plus difficile rsoudre. Par exemple: [Verbe Nom Adjectif en]

Figure 24: Ambigut de rattachement des prpositions

45
Les indices utiliss pour rsoudre les ambiguts sont les contextes non ambigus du corpus (arg) et la proprit de sous-catgorisation syntaxique (pEndo et pExo). Les sous-catgorisations syntaxiques sont les groupes des mots qui sont souvent relis par une relation (par exemple, [dissquer, en] [donner,] [taxe,sur] [apte,] ). Syntex obtenu les proprits de sous-catgorisation syntaxique partir dun corpus partiellement analys syntaxiquement par dacquisition les probabilits de souscatgorisation sur deux types de ressource. Ressource endogne : acquise au moment de lanalyse partir du corpus en cours danalyse (pEndo) Ressource exogne : construite pralablement partir dun gros corpus dapprentissage (140 M mots du Monde), utilise pour chaque corpus (pExo) Alors, l'algorithme PREP contient deux tapes comme suivant: Recherche des candidats recteurs o Point de dpart : la prposition (le rgi) o Direction : gauche o Noms, participe pass, adjectif, verbe o Et acquisition de proprits de rection dans les contextes non ambigus (indices arg et pEndo endognes calculs sur le corpus) Slection dun candidat o Affectation des indices aux candidats arg : nombre de fois que ladjectif est rgi par le candidat dans un contexte non ambigu pEndo : probabilit endogne de sous-catgorisation (calcule sur le corpus danalyse) pExo : probabilit exogne de sous-catgorisation (calcule pralablement sur un corpus dapprentissage de grande taille) o Choix de celui : qui a le score dindice le plus lev Ou du dernier

46

Figure 25: Slection de candidat par arg

1.4. Construction du rseau de syntagmes


A partir des rsultats de l'analyse syntaxique des phrases du corpus, un module d'extraction de syntagmes (ES) construit un rseau de mots et syntagmes, calcul partir des relations de dpendance identifies dans chacune des phrases. Nous dcrivons dans cette section comment est construit ce rseau, qui fournira les donnes de base l'analyse distributionnelle tendue.

1.4.1. Principe gnral


Dans un premier temps, pour chaque phrase, le module ES procde l'identification des constituants syntaxiques maximaux (verbaux, nominaux, adjectivaux) que dtermine la structuration en relation de dpendance. Pour chaque mot recteur, il construit un syntagme maximal en parcourant toutes les relations de dpendance syntaxique dont ce mot est la cible jusqu' aboutir des mots qui soit ne sont pas recteurs, soit sont tte d'un syntagme maximal dj construit. La caractrisation de la structure d'un syntagme est la suivante : une tte, qui est constitue du mot recteur avec sa catgorie; une liste de expansions, chaque expansion tant un mot rgi ou un syntagme dont la tte est un mot rgi On commence par les mots les plus bas dans la structure de dpendance. Puis, on construit le syntagme associ un recteur ds que les syntagmes associs ses rgis ont t construits.

47

Figure 26: Exemple d'extraction des syntagmes

Dans un second temps, le module ES construit le rseau de dpendance en ajoutant pour chaque syntagme maximal diffrent rencontr : (1) un nud dont le label est la forme normalise du syntagme, (2) des liens vers les nuds correspondant ses expansions.

Figure 27: Rseau terminologie

Par consquence, on a des syntagmes. Chaque syntagme est reli sa Tte et ses Expansions. Puis, on regroupe les syntagmes qui partageant la mme Tte ou la mme Expansion dans le corpus entier. Cela nous donne un rseau terminologie (voir Figure 27 et Figure 28).

48

Figure 28: Rseau terminologie dans un corpus entier

Dans la Figure 26, on constate qu'il y a un syntagme "d'une petit souris". La Tte de ce syntagme est la prposition "de". On veut seulement extraire les syntagmes nominaux, verbaux et adjectivaux car les autres types de syntagmes apportent les mme sens smantiques que les syntagmes nominaux, verbaux ou adjectivaux. Pour seulement extraire les syntagmes nominaux, verbaux, adjectivaux, les syntagmes sont normaliss par quelques mthodes: Passif actif Saut de prposition Saut de pronom relatif

Figure 29: Exemple de normalisation

1.5. Upery
Upery (Bourigault, 2002) est un outil danalyse distributionnelle. Il exploite lensemble des donnes prsentes dans le rseau de mots et syntagmes construits par Syntex pour

49
effectuer un calcul des proximits distributionnelles entre ces units. Ce calcul seffectue sur la base des contextes syntaxiques partags. Il sagit dune mise en uvre du principe de lanalyse distributionnelle du linguiste amricain Z. S. Harris, ralise dans la ligne des travaux de H. Assadi (Assadi & Bourigault, 1996). Lanalyse distributionnelle rapproche dabord deux deux des candidats termes qui partagent un grand nombre de contextes syntaxiques.

1.5.1. Donnes pour l'analyse distributionnelle


Le module d'analyse distributionnelle UPERY exploite l'ensemble des donnes prsentes dans le rseau pour effectuer un calcul des proximits distributionnelles entre les mots et syntagmes du rseau. Ce calcul s'effectue sur la base des contextes syntaxiques partags. Il s'agit d'une mise en uvre du principe de l'analyse distributionnelle " la Harris". Les donnes de l'analyse sont constitues ainsi : (1) pour chaque syntagme du rseau ayant une seule expansion, le module construit une information lmentaire pour le calcul distributionnel. Celle-ci se formalise sous la forme d'un couple (contexte, terme) : le contexte est le couple constitu de la tte et de la relation de dpendance ; Il s'agit d'un contexte simple. le terme est l'expansion. (2) pour chaque syntagme du rseau ayant plus d'une expansion (N expansions, N suprieur ou gal 2), le module construit N(N-1) informations lmentaires pour le calcul distributionnel. Pour chaque expansion E, il construit N-1 couples (contexte, terme), un pour chacune des autres expansions E' : le contexte est le couple constitu du syntagme rduit construit avec la tte et l'expansion E, et de la relation de dpendance R' correspondant l'expansion E'; il s'agit d'un contexte complexe. le terme est l'expansion E'. Par exemple, avec le syntagme nominal "formation professionnelle" on a une seule donne { professionnel , ( formation , ADJ ) }. Avec le syntagme verbal "agent bnficier de formation" on a deux donnes:

50
{ agent , ( bnficier de formation , SUJ )} { formation , ( agent bnficier, DE ) }

1.5.2. Trois mesures de proximit


L'analyse distributionnelle rapproche dabord deux deux des termes qui partagent les mmes contextes. L'analyse distributionnelle est symtrique, en ce sens qu'elle peut rapprocher aussi les contextes, en fonction des termes qu'ils partagent. Nous travaillons actuellement sur trois mesures qui permettent d'apprhender la proximit entre deux units (termes ou contextes). Ces mesures ont l'avantage d'tre simples apprhender par l'utilisateur final, et de recouvrir des aspects diffrents et complmentaires des conditions dans lesquelles deux units peuvent tre juges plus ou moins proches. Notre application cible est laide la construction de ressources terminologiques ou ontologiques partir de textes. Notre objectif est de fournir l'utilisateur, avec ces quelques mesures de proximit, diffrents outils pour laider trouver au plus vite les relations quil jugera les plus intressantes. On dispose pour un contexte donn de l'ensemble des termes (mots ou syntagmes) qui apparaissent dans ce contexte, et pour un terme donn l'ensemble des contextes (simples ou complexes) dans lesquels il apparat. On dfinit la productivit d'un contexte et la productivit d'un terme ainsi : la productivit d'un contexte est gale au nombre de termes qui apparaissent dans ce contexte ; la productivit d'un terme est gale au nombre de contextes dans lesquels ce terme apparat. Les trois mesures de la proximit sont les suivantes : Le coefficient a. Soient deux termes t1 et t2. Le coefficient a est gal au nombre de contextes syntaxiques partags par les deux termes. Cette mesure donne une premire indication de la proximit entre deux termes, facile interprter. Mais l'exprience montre que cette mesure reflte de faon insatisfaisante la proximit : il faut tenir compte, d'un ct, de la productivit des contextes partags (coefficient prox), d'un autre ct, du nombre de contextes que chaque terme a en propre (coefficients j1 et j2).

51
Le coefficient prox. Avec ce coefficient, nous visons formaliser le fait si un contexte partag par deux termes est trs productif, sa contribution au rapprochement des deux termes est a priori plus faible que celle d'un contexte peu productif. Le coefficient prox est calcul ainsi : prox = cC 1/ prod(c)1/2 o C est l'ensemble des contextes partags par t1 et t2, et prod(c) la productivit du contexte c

Figure 30: Exemple de la productivit

Figure 31: Exemple de prox: prox(dtresserespiratoire,syndrome) = 1,10

Les coefficients j1 et j2. Pour valuer la proximit entre deux units, il est important de tenir compte non seulement de ce qu'elles partagent, mais aussi de ce qu'elles ont en propre. Un certain nombre de mesures statistiques implmentent cette ide, sous

52
des formes diverses (e.g. information mutuelle, Jaccard, Anderberg). Ces mesures prsentent presque toujours la particularit de "symtriser" la relation de proximit. Cette proprit, qui dans beaucoup de contextes d'application, constitue un avantage, voire une ncessit, nous est apparue finalement comme masquant un phnomne marquant l'uvre dans les corpus : la dissymtrie de la relation de proximit. Quand deux termes partagent un certain nombre de contextes en commun, il arrive le plus souvent que l'un des deux termes possde un nombre lev de contextes, tandis que l'autre en possde beaucoup moins et en partage l'essentiel avec le premier. C'est pourquoi, nous caractrisons la proximit entre deux termes l'aide de deux indices, simples et eux aussi faciles interprter : rapport entre le nombre de contextes partags et le nombre total de contextes j1 = a / prod(t1) j2 = a / prod(t2)

2. Intgration
Pour l'intgration, TreeTagger n'est pas un logiciel "open source". Il ne publie pas aussi son API pour que les applications puissent utiliser son fonctionnement. Les deux outils Syntex et Upery sont dvelopps en perl. L'entre et sortie de Syntex et Upery sont les fichiers texte. Cela ne permet pas d'avoir une intgration "proche" par l'utilisation des API. Nous proposons une intgration de "batch" via le script du shell. Il s'agit des appels d'excution les scripts du shell par le code Java. L'intgration des outils traitement linguistique est une chane danalyse syntaxique organise en 5 phases :
1- Prtiquetage : ce module effectue la segmentation en phrases, la toknisation en mots et le prtiquetage des mots. 2- Etiquetage morphosyntaxique : ltiquetage est effectu par loutil Treetagger de lUniversit de Stuttgart. 3- Conversion : ce module effectue la conversion des sorties du Treetagger aux entres attendues par lanalyseur Syntex ; il a t dvelopp conjointement par lERSS et la socit Synomia. 4- Analyse syntaxique : lanalyse syntaxique est ralise par lanalyseur Syntex ; il a t dvelopp par lERSS.

53
5- Analyse distributionnelle: lanalyse distributionnelle est ralise par lanalyseur Upery; il a t dvelopp par lERSS.

La sortie de la phase d'analyse HTML de crawl est l'ensemble est fichiers texte. Avant d'tre trait par les outils linguistiques, ces fichiers sont prtraits par 3 scripts perl. Segmentation en phrases et en mots: ce traitement est ncessaire car l'entre de TreeTagger est un fichier texte, chaque ligne contient un mot ou un point, une virgule, un point-virgule,.... Pr-tiquettage des lments communs: on dtecte quelques forme spcifiques dans le texte comme: la date, les adresse email, les URL, le monnaie, les mesure,... Ce pr-tiquettage est ralis par un script perl et un ensemble des expressions rgulires. Pr-tiquettages des groupes de mots communs: TreeTagger ne peut pas dtecter les groupe de mots comme: c'est--dire, d'un ct, nulle part, peu ou prou, tt ou tard... Pour avoir un rsultat plus prcise dans les phases suivantes, ces pr-tiquettages sont ncessaires. On utilise un script perl et 6 fichier de ressources (fr-preproc.ADV, fr-preproc.ADVGP, frpreproc.CON, fr-preproc.DET, fr-preproc.DIV et fr-preproc.PRP) pour pr-tiqueter les groupes de mots. Chaque fichier de ressource contient une liste des groupes de mots pr dtermin par l'humaine. Dans les 5 phases de traitement, les 4 premires phases sont traites par un script du shell et la dernire phase (excution de Upery) est trait par un script spar. Le processus de traitement est: le code Java utilise les mta-donnes dans la base de donnes pour choisir le fichier ayant besoin de traiter. Chaque script va sparment traiter un ensemble de fichiers. Alors, on peut pareillement excuter ces scripts car ils sont excuts dans les processus de fond et l'avancement de traitement est suivi par l'interface d'utilisateur.

54

CONCLUSION
1. Rsultat obtenu
Le crawl est test dans plusieurs jours. Quelques erreurs ne sont trouvs qu'aprs un long temps d'excution. La version finale fonctionne dans une semaine et le rsultat rpond la demande de projet: de 90.000 500.000 pages visites par jour dont 8-13% des pages qui sont satisfaites la conditions accept, 40-50% des pages non satisfaites les conditions, 31-37% des pages d'erreur. Le crawl peut aussi dtecter les piges de robot. Les piges de robot sont souvent trouvs dans des forums et les sites qui affiche le temps d'accs dans les pages. Pour les outils analyse linguistiques, le temps de traitement d'un fichier est beaucoup long par rapport au traitement de crawl. On constate que TreeTagger consomme le plus de ressource dans son excution. C'est peut-tre cause du le fichier de paramtre pour la langue franaise. Chaque fois de traitement d'un fichier, le programme doit charger 17Mo du fichier paramtre. C'est un point faible de l'intgration par les scripts du shell. On peut viter ce problme si on a l'API de TreeTagger. Un autre problme se trouve dans l'analyse linguistique est que dans le texte extrait partir des pages HTML, il existe plusieurs des lments non textuelle comme: le source code, les zones de menus et de liens... Cela ne donne pas des bons rsultats dans l'analyse syntaxique et il existe beaucoup de mots bizarres. Pour l'instant, nous acceptons ce rsultat mais dans l'avenir, il faut amliorer le module d'analyse de pages HTML pour qu'il puisse enlever les zones non informant.

2. Conclusion
En conclusion, lobjectif principal de ce travail a t atteint. Il sagissait, nous le rappelons, de construire un crawl focalis et appliquer les analyses linguistiques pour la construction des corpus du Web. Le crawl est construit en respectant les normes de crawl du Web: respecte de la politesse, le pige de robot, la paralllisme,... La construction du germe de dpart est spcifique pour la recherche des pages dans des

55
domaines particuliers. Le crawl est test avec deux germes de dpart pour les mots "graphe/graphes" et "mtaphore/mtaphores". L'interface d'utilisateur de crawl est facile utiliser. Les outils d'analyse linguistiques sont bien intgrs dans le systme pour traiter les pages du web. Un pr-traitement est donn avant de passer ces outils. Il reste encore quelques questions pour les rsultats des outils linguistiques pour analyser les pages Web (ces outils sont souvent utilis avec les textes formel) Ce stage a t trs enrichissant dun point de vue professionnel car jai dcouvert le travail du domaine de recherche d'information et de traitement automatique de la langue naturelle (TALN). Jai ralis que la constitution dun crawl focalis qui prend normment de temps. Jai galement pu mettre en oeuvre les comptences informatiques et linguistiques dans un projet rel et non juste une maquette comme les projets universitaires. De plus, jai eu lopportunit dapprocher les bons outils et les techniques de TALN.

56

BIBLIOGRAPHIE
[1] Baeza-Yates, R. and Castillo, C. Balancing volume, quality and freshness in web crawling. In Soft Computing Systems Design, Management and Applications, pages 565 572, Santiago, Chile. IOS Press Amsterdam, 2002 [2] Baeza-Yates, R., Castillo, C., Marin, M. and Rodriguez, A. Crawling a Country: Better Strategies than Breadth-First for Web Page Ordering. In Proceedings of the Industrial and Practical Experience track of the 14th conference on World Wide Web, pages 864872, Chiba, Japan. ACM Press, 2005. [3] Bourigault D., Assadi H. Analyse syntaxique et analyse statistique pour la construction dontologie partir de textes, in Charlet J, Zacklad M., Kassel G., Bourigault D. ds. Ingnierie des connaissances. Tendances actuelles et nouveaux dfis. Editions Eyrolles/France Telecom, Paris, 2000. [4] Bourigault D, Fabre C. Approche linguistique pour l'analyse syntaxique de corpus. Cahiers de grammaire, 25, 131-151, Universit Toulouse le Mirail, 2000. [5] Bourigault D., Lame G. Analyse distributionnelle et structuration de terminologie. Application la construction d'une ontologie documentaire du Droit. Revue Traitement automatique des langues, n 47:1, Herms, Paris, 2002. [6] Castillo, C. Effective Web Crawling. PhD thesis, University of Chile, 2004 [7] Chakrabarti, S., van den Berg, M., and Dom, B. Focused crawling: a new approach to topic-specific web resource discovery. Computer Networks, 31(11 16):16231640, 1999. [8] Cho, J., Garcia-Molina, H., and Page, L. "Efficient crawling through URL ordering". In Proceedings of the seventh conference on World Wide Web, 1998. [9] Cho, J. and Garcia-Molina, H. Effective page refresh policies for web crawlers. ACM Transactions on Database Systems, 28(4), 2003. [10] Heydon, A. and Najork, M. Mercator: A scalable, extensible Web crawler. World Wide Web Conference, 2(4):219229, 1999.

57
[11] Koster, M. Guidelines for robots writers, 1993. [12] Koster, M. Robots in the web: threat or treat ?. ConneXions, 9(4), 1995. [13] Koster, M. A standard for robot exclusion, 1996. [14] Marc Najork and Janet L. Wiener. Breadth-first crawling yields high-quality pages. In Proceedings of the Tenth Conference on World Wide Web, pages 114118, Hong Kong, May 2001. [15] Shkapenyuk, V. and Suel, T. Design and implementation of a high performance distributed web crawler. In Proceedings of the 18th International Conference on Data Engineering (ICDE), pages 357-368, San Jose, California. IEEE CS Press, 2002.

58

ANNEXE
Tableau 1 : liste des catgories morphosyntaxiques
Adj Adj?? Adj?P Adj?S AdjFP AdjFS AdjM? AdjMP AdjMS Adv Adv AdvGP CCoord CCoord CCoordCAT Conjonction de coordination Conjonction de coordination (o CAT est la catgorie des lments coordonns, quand la relation de coordination a t identifie) conjonction de coordination dterminant dterminant dterminant singulier dterminant pluriel dterminant singulier dterminant adverbe groupe prpositionnel adverbial adjectif de genre et nombre indtermins adjectif de genre indtermin et de nombre pluriel adjectif de genre indtermin et de nombre singulier adjectif de genre fminin et de nombre pluriel adjectif de genre fminin et de nombre singulier adjectif de genre masculin et de nombre indtermin adjectif de genre masculin et de nombre pluriel adjectif de genre masculin et de nombre singulier

CSub CSub Det Det Det?? DetFS DetMP DetMS DetNum Elim Elim xxx NUM Nom Nom?? Nom?P Nom?S NomFP NomFS NomInc nom de genre et nombre indtermins nom de genre indtermin et de nombre pluriel nom de genre indtermin et de nombre singulier nom de genre fminin et de nombre pluriel nom de genre fminin et de nombre singulier nom inconnu catgorie liminatoire de genre et nombre indtermins de genre fminin et de nombre de genre masculin et de nombre de genre masculin et de nombre numrique

59
NomM? NomMP NomMS NomPr NomPr NomPrXXIn c NomPrXXPr enom Nom NomXXAdr NomXXDate NomXXHeur e NomXXMail NomXXMes NomXXMon NomXXNum NomXXTitr e NomXXUrl Ppa Ppa?? PpaFP PpaFS PpaMP PpaMS PpaMSp Ppr Ppr Pprp Prep Prep PrepDet PrepDet Pro Pro ProRel ProRel Typo Typo TypoCAT marque de typographie Virgule coordonnante (o CAT est la catgorie des lments coordonns, quand la relation de coordination a t identifie) verbe verbe verbe verbe conjugu conjugu conjugu conjugu au au au au pluriel pluriel au passif singulier singulier au passif pronom relatif pronom personel "de" non dsambigus Det ou Prep) prposition participe prsent participe prsent passif participe pass de genre indtermins participe pass de genre nombre pluriel participe pass de genre nombre singulier participe pass de genre nombre pluriel participe pass de genre nombre singulier participe pass passif (t) et de nombre et et et et de de de de adresse date heure adresse email mesure monnaie numrique titre url nom propre nom propre inconnu dictionnaires) prnom (n'appartenant pas aux nom de genre masculin et de nombre indtermin dterminant de genre masculin et de nombre pluriel dterminant de genre masculin et de nombre singulier

fminin fminin masculin masculin

VCONJ VCONJP VCONJPp VCONJS VCONJSp VINF

60
VINF VINFp verbe l'infinitif verbe l'infinitif au passif

Tableau 2 : liste des relations de dpendance Un certain nombre de cas ne sont pas encore traits de faon satisfaisante. Ils sont marqus :-(
ADJ Nom Adj Ppa Ppr Adj Ppa Ppr Adj Ppa Ppr Adv chat gris chat allong chat miaulant Jean, heureux d'tre l :-( Jean, allong sur le canap :-( Jean, observant le chat :-( celui, heureux :-( celui vu :-( celui allant :-( trs rapide trs rapidement environ 10000 ex- prsident ex- KGB souvent vu voyant souvent court vite courir vite rendant joyeux le chat rendant nerv le chat rend joyeux le chat a t nomm directeur estsurnomm Milou rend nerv le chat rendre joyeux le chat tre nomm directeur rendre nerv le chat tant gris tant le chat semblant nerv est gris est le chat est Paris semble nerv que sont les chats tre gris tant le chat tre Paris sembler nerv que peuvent tre les chats a t vu

NomPr

Pro

ADV Adj Adv Det Nom NomPr Ppa Ppr VCONJ VINF ATTO Ppr VCONJ Adj Ppa Adj Nom NomPr Ppa Adj Nom Ppa Adj Nom Ppa Adj Nom NomPr Ppa ProRel Adj Nom NomPr Ppa ProRel Ppa

VINF

ATTS Ppr

VCONJ

VINF

AUX Ppa

61
Ppr VCONJ VINF COMP CSub Adj Adv Nom NomPr Ppa Prep Pro VCONJ VINF CSub aussi malin que rapide plus que souvent autre que le chat moins que Paris aussi rapide qu'nerv moins qu'avec le chat moins que celui vouloir qu'il soit que boire aussi grand que plus que le fait que :-( plus nerv que :-( autant Marie qu' Jean :-( c' est ici que :-( le chat la France le mien, la ntre le coin cuisine le chat Mistigri :-( Toulouse II San Antonio , rapide , , lentement , , avec le chat , Monsieur Dupont Jean Dupont :-( d'autant avec le chat avec Marie en mangeant avec lui pour lequel pour prendre du chat du Liban de la voir voyant que voyant le chat tant vu a vu avoir vu

CPL Adj Adv Nom NomPr Ppa Ppr Prep PrepDet VCONJ VINF DET Nom NomPr Pro EPI Nom Nom NomPr Pro Nom NomPr Typo Typo Typo Nom NomPr Adv Nom NomPr Ppr Pro ProRel VINF Nom NomPr VINF CSub Nom Det

NomPr I_ADJ Typo I_ADV Typo I_PREP Typo NNPR NomPr NOMPREP Prep

PrepDet

OBJ Ppr

62
VCONJ NomPr Pro VINF CSub Nom NomPr Pro ProRel VINF CSub Nom NomPr Pro ProRel VINF Nom NomPr Pro Nom NomPr Pro Nom NomPr Pro Typo Prep voyant Marie le voyant voulant manger il voit que il voit le chat il voit Marie il le voit le chat qu'il voit il veut voir voir que voir le chat voir Marie le voir que je tente de voir laisser faire en voyant le chat manger en voyant Marie manger en la voyant manger je vois le chat manger je vois Marie manger je la vois manger voir le chat manger voir Maire manger la voir manger ( )

VINF

OBJ1 Ppr

VCONJ

VINF

PAR Typo PREP Adj Nom NomPr Ppa Ppr Pro VCONJ facile chat de Afrique du Sud quip de regardant vers lui donnant celui de il mange avec je lui donne auquel je tiens manger pour lui donner auquel je veux parler se voyant il se voit se voir l'homme qui Marie qui celui qui le chat mange Marie Mange il mange qui mange

Pro Prep Pro ProRel Prep Pro ProRel Pro

VINF

REF Ppr VCONJ VINF REL ProRel Nom NomPr Pro Nom NomPr Pro ProRel

SUJ VCONJ

Вам также может понравиться