Académique Documents
Professionnel Documents
Culture Documents
Mes Parents
REMERCIEMENTS.......................................................................................................................ii
RESUME......................................................................................................................................viii
ABSTRACT...................................................................................................................................ix
INTRODUCTION GENERALE.....................................................................................................1
1.1.1 Définition...................................................................................................................4
2.3.2 Tokenisation............................................................................................................39
2.3.3 Normalisation..........................................................................................................40
2.6 Stockages........................................................................................................................46
3 EXPERIMENTATION ET RESULTATS.............................................................................48
3.3 Résultats..........................................................................................................................51
3.5.4 Implémentation d’un crawler pour créer une base de connaissance pour le phishing
65
CONCLUSION ET PERSPECTIVES..........................................................................................68
BIBLIOGRAPHIE.........................................................................................................................71
DC Distributed Crawler
IC Incremental Crawler
IP Internet Protocol
TC Traditional Crawler
CONTEXTE
C'est un fait incontestable qu'internet a apporté beaucoup de changements dans nos vies
quotidiennes par la façon dont le nombre d'internautes a vraiment augmenté à travers le monde.
En 2000, il y avait environ 361 millions d'utilisateurs d'Internet dans le monde [Internet Word
stats, 2012] ; en 2011, ils étaient près de 2,5 milliards, et aujourd'hui, ils sont plus de 4,39
milliards d’après le digital report de « We are social et Hootsuite (2018) ». Ceci est dû à
l'expansion des moyens d'accès à l'Internet qui sont passés des ordinateurs de bureau, aux
ordinateurs portables, puis aux tablettes, à la télévision et enfin aux smartphones qui disposent
d'équipements informatiques et d'accès à l'Internet avancé. A côté nous avons aussi l'urgence de
nouvelles formes d'interactions sociales notamment, entreprendre des achats sur Facebook,
Myspace, LinkedIn, EBay et Amazon, qui sont parmi les exemples les plus marquants.
OBJECTIFS
Notre travail, consistera majoritairement à l’étude et l’évaluation du concept de graphe
isomorphe dans le processus de fouille de données au travers des crawler. En effet son utilisation
pour l’identification des patterns de similarité et de dissimilarité nous laisse croire que
l’utilisation de cette métrique de similarité a la place de celles traditionnelles basées sur les
vecteurs est susceptible de produire des résultats rivalisant ces derniers.
METHODOLOGIE
Pour une meilleure implémentation, la méthodologie suivante sera utilisée afin de
reproduire aussi fidèlement que possible les différentes articulations de notre travail.
Structure du document :
NGNINTEDEM TEUKENG Jim Carlson 2 Master Sled : 2019-2020
Le chapitre 1 : Etat de l’art. nous y présenterons les approches de solutions aux
problèmes ci-dessus présentés ; c’est-à-dire comment les chercheurs ont essayé d’évaluer
les similarités entre les documents en général et spécifiquement dans le processus de
fouille de données.
Le chapitre 2 : Mise en œuvre d’une approche de crawling basée sur les graphes
Isomorphes. Dans cette partie, nous présenterons les détails de notre contribution dans le
processus de fouille de données.
Le chapitre 3 : Résultats expérimentaux. Dans ce chapitre nous allons présenter, analyser
et interpréter les résultats obtenus à l’issue de l’implémentation de la méthode proposée
au chapitre 2.
La conclusion générale : Ici, nous donnerons le bilan du travail et mettrons en exergue
des pistes envisageables pour la suite de nos travaux.
Entrant dans l’air du big data, nous expérimentons une croissance sans précèdent de
données et de ressources du web. Les approches de fouille de données ou data mining tirent sans
cesse leur essence de cette croissance explosive d’internet ; croissance majoritairement due à la
décentralisation de la création de contenu qui se fait désormais sans aucun contrôle. Un peu
comme le chercheur d'or tamise la saleté pour trouver des pépites, la fouille de données est le
processus d'exploration de vastes ensembles de données visant à trouver des renseignements
pertinents qui pourraient être utilisés dans un but précis. C’est donc dans cet élan, en tant que
l’un des moyens les plus rependu d’acquisition de contenu que les concepteurs de moteurs de
recherche s’appliquent à améliorer leur composante principale d’exploration de données appelée
Crawler.
1.1.1 Définition
Encore appelés Bots, Robots, Web Spiders, Wanderers, Worm, ants [1], [2] les web
crawler sont des programmes informatiques qui parcourent le web de façon automatique pour
collecter des contenus [3], [4]. Les web crawler sont utilisés a de diverses fins, mais leur fonction
première, est qu’ils constituent l’un des composants majeurs des moteurs de recherche [5], [6],
[7], ils assemblent un corpus de page, les indexent et donnent la possibilité a un utilisateur de
faire des requêtes et à partir de celles-là, fournis les page web correspondant à ces dernières.
Les web crawler peuvent parcourir les pages web à la recherche de diverses informations
et en extraire les plus pertinentes de façon autonome. C’est dans ce sens qu’ils constituent un des
composants clés des moteurs de recherche. Le rôle le plus important des crawler est de parcourir
et indexer les grands ensembles de données que renferme Internet à la recherche d’informations,
en extraire les plus effectives et les stocker dans une base de données [9].
Un web crawler est un programme qui, étant donné un ou plusieurs seed URLS,
télécharge les pages web associées à ces URLS, extrait les hyperliens qu’elles contiennent, et
continue de télécharger récursivement les pages web identifiées par ces hyperliens.
De façon générale, un crawler, lors de son exécution, fait entrer en jeu 4 éléments comme
l’illustre la figure si dessous (figure 1) à savoir :
La queue
Le Téléchargeur ou Downloader
L’ordonnanceur ou Scheduler
L’unité de stockage
Dans [10] on définit une queue comme étant une structure de données permettant de
stocker des informations sur les URL rencontrées sur une page web. Elle représente l’un des
Le processus d’un web crawler commence tout d’abord avec un ensemble de URL appelé
seed URLS. L’un des défis d’un crawler réside le plus souvent dans le choix des URL de départ
[11]. Généralement l’utilisateur fournit un set de seed pages comme entrée du crawler ou
alternativement les seed pages sont sélectionnées parmi les meilleurs résultats retournés par un
moteur de recherche[ Batsakis 2009,[32]] en utilisant le sujet du crawl comme mot clé [ Batsakis
2009, [15] [16] [31] [32]]. Une fois les Seed URL sélectionnées, au travers du Downloader et le
selon l’algorithme de parcours utilisé (Elle utilise des algorithmes spécifiques tels que le
parcours en largeur, parcours en profondeur et bien d’autre car d’une façon générale, internet
peut être modélisé comme un graphe où chaque sommet est une page, et les arrêts, les liens entre
celle-ci[13]), ils téléchargent les pages web associées à ces seed URLS et une fois ceci fait ils
extraient les liens contenus dans les pages téléchargées. Les liens extraient sont ajoutés dans une
liste dénotée crawl Frontier [4], [14] implémentée sous forme de queue. La frontière représente
la to-do liste d’un crawler contenant des URLS de pages non visitées [15]. Une fois extraits, les
hyperliens doivent être testés afin de vérifier si l’URL n’a pas été rencontrée précédemment ceci
pour éviter d’ajouter de multiples instances d’une même URL dans la liste URL en attente [5].
Une fois qu’il a été déterminé qu’elles n’existent pas déjà, les URLS sont ajoutées dans la queue
pour continuer le processus d’exploration. Ainsi le processus sera répété jusqu’à ce que toutes les
URL présentes dans la queue soient téléchargées ou que la limite d’URL définie soit atteinte.
Lorsque le processus de crawling est lancé, plusieurs tâches sont planifiées et exécutées par
celui-ci. Ainsi, l’ordonnanceur a pour rôle, suivant la présence d’URL dans la queue, d’organiser
les URLS afin de leur permettre d’être accessibles les unes après les autres.
D’après [1], [4], [9], [14] les caractéristiques d’un web crawler sont :
Distribué : ils peuvent être synchroniser sur plusieurs machines dans un environnement
distribué de façon concurrentielle ;
Scalable : les crawler sont relativement lent ceci du au grand nombre de nombre de
données qu’ils doivent parcourir mais ceci peut être ajuster en améliorant leur nombre ou
en augmentant la bande passante ;
En fonction de leurs différentes caractéristiques, dans [4], [9], [13] on distingue plusieurs
types de crawler pouvant être subdivisés en plusieurs catégories ; en Generic web Crawler, Focus
web Crawler, Incrémental web Crawler, Distributed Crawler, Parallel Crawler, Traditional and
Internet of things web Crawlers.
Les Incrémentales crawler sont dotés d’un ordonnanceur qui, suivant des intervalles de
temps définies en fonction de la politique de mise à jour en place, explore de nouveau à la
recherche d’informations plus récente. Il se focalise donc sur le temps nécessaire relatif au
changement d’états entre deux bases, et crawl leurs données de façon indépendante en se basant
sur la fréquence de changement de chaque page au lieu de programmer la prochaine date à
laquelle la base de données sera remplacée entièrement.
Master slave mode : Ce mode ne requiert aucune communication entre les slaves
machines. Ici, la machine host héberge tout le système et contrôle les opérations du
groupe. L’host machine est responsable de la liste d’URL à crawler. Il attribue les tâches
à chaque machine et supervise l’état d’avancement dans l’accomplissement de ces tâches.
Autonomous mode : ce mode, contrairement au master slave, ne dispose d’aucune
machine hôte pour superviser le travail. Les machines communiquent entre elle suivant
deux modes : par communication circulaire et par communication dite Full unicom.
mixed mode : il s’agit de la combinaison de certaines caractéristiques des modes master
slave et autonomous, le mixed mode dispose donc d’une machine hôte pour l’attribution
des tâches aux autres machines mais également les slaves machines peuvent
communiquer entre elles et peuvent se confier des tâches.
Ce sont des crawler qui n’extrait que les page web en rapport avec un sujet prédéfinie ou
un domaine [Elaraby 2019 [38] [39]].
Contrairement au crawler habituelle, les spécifique crawler explorent uniquement les web
pages spécifique, ce qui peut être un atout lorsqu’il s’agit de l’économie des ressources réseau,
l’espace du disque et également le temps. La différence entre les focus crawler et les crawler
traditionnelle repose sur deux modules à savoir module de décision et le module de filtrage des
priorités des URLS [Yu 2020]. Le module de jugement de page web consiste en un module qui
compare la pertinence entre les contenus des pages web et un sujet donné. De telle sorte que si la
pertinence de la page web n’atteint pas un certain seuil, alors la page web ne sera pas pris en
Le module de priorité des URLS basé sur leur score quant à lui ce module est
principalement utilisé pour comparer le degré de pertinence entre les URLS trouvé et un sujet
donné. Le module prioritise les liens en fonction de l’autorité du lien (c’est-à-dire la page dont le
lien dérive l’autorité étant basé sur le nombre de page qui sont liée à celle si [Ravi Kumar et al,
the web as graph]) il exclut ainsi les liens avec de faible priorités. D’une façon générale
l’architecture d’un Focused Crawler est la suivante :
Tout d’abord la queue est initialisée avec les URLS de départ qui sont nos seed Page, les
seed page étant choisis de tel sorte qu’ils aient fortement trait au champ d’intérêt [Elaraby 2019
[40]]. Ensuite, la prochaine tâche consiste à sélectionner le prochain URL ayant la plus grande
priorité. Généralement le calcul de priorité est basé soit sur le calcul de la similarité entre le sujet
ou mots clé de recherche et le anchor texte de la page correspondant au lien soit en évaluant la
similarité entre le mot clé et le contenu de la page web [12] (le calcul de similarité est effectué au
travers des modèles tels que les modèles booléens et le Vector Space Model (VSM) [ Batsakis
2009 [4]].
La première consiste à une similarité basée sur le contenu. Dans ce processus le crawler
évalue la similarité entre la page courante et le sujet. De cette façon une similarité proche d’une
certaine valeur seuil conduira à l’extraction des liens contenus dans la page.
L’autre approche quant à elle consiste à assigner un score aux liens de la page. Dans ce
processus, seuls les liens ayant un certain score seront pris en considération.
Dans la suite seules les approches basées sur le contenu seront prises en considération.
L’évaluation de la similarité entre les textes joue un rôle de plus en plus vital dans les
recherches liées au texte et dans les applications telles que la classification de textes, l’extraction
d’informations, le clustering de document, le topic tracking topic detection, le text
summarization et bien d’autres [20]. D’une façon générale pour pouvoir évaluer la similarité
entre les documents, le document doit être représenté sous formes de vecteurs.
Le Vector Space Model est une approche algébrique de représentation de textes très
rependue [Markov 2006 [20]] ou chaque mot représente une composante du model pouvant être
représentée de différentes façons. Dans l’extraction cette approche est typiquement utilisée pour
la représentation des documents. Un ensemble de termes (feature) T (t1…tn) qui apparaissent au
moins une fois dans l’un des documents du corpus sert de feature et chaque document dj est
représenté comme un vecteur dj= (W1…Wn), ou les Wi représentent le poids (importance) d’un
Bags-of-words
La constitution du dictionnaire est ainsi une étape critique pour les performances des
systèmes utilisant une telle représentation.
Selon l'utilisation ultérieure du sac de mot, celui-ci peut être normalisé de différentes manières :
Ramené à une norme unitaire en divisant chaque composante par la norme (à choisir)
du vecteur ;
Binarisé, ce qui revient à indiquer seulement la présence ou l'absence d'un mot du
dictionnaire ;
Pondéré selon divers schémas, notamment dans le cas d'une utilisation dans
un modèle vectoriel ou un modèle probabiliste de pertinence.
TF (i, j) = TF i , j * IDFi
Word2Vec
Cet algorithme de word embedding est parmi les plus connus. Il a été développé par une
équipe de recherche de Google sous la direction de Tomas Mikolov. Il repose sur des réseaux de
neurones à deux couches et cherche à apprendre les représentations vectorielles des mots
composant un texte, de telle sorte que les mots qui partagent des contextes similaires soient
représentés par des vecteurs numériques proches. Word2Vec ne consiste pas en un seul
algorithme, mais inclus deux modèles d’apprentissage qui sont le continuous Bag of Words
(CBOW) et le Skip-gram [Ma 2015 [3] [4]]. CBOW prédit un mot étant donné le contexte tandis
que Skip-gram prédit le contexte étant donné un mot [26], [27]. Dans les deux cas,
l’entraînement du réseau se fait en parcourant le texte fourni et en modifiant les poids neuronaux
afin de réduire l’erreur de prédiction de l’algorithme. Ainsi Word2Vec génère finalement un
vecteur de mots.
Dans [20], [22], [28] [19], [29], [30] plusieurs métriques de similarité sont discutées parmi
lesquelles :
La distance Euclidienne
Encore appelée L2 distance, elle représente la racine carrée entre les éléments
correspondant de chaque vecteur. En informatique théorique, une mesure de similarité, plus
exactement une mesure de distance entre mots, est une façon de représenter par un nombre la
différence entre deux mots, ou plus généralement deux chaînes de caractères. Cela permet de
comparer des mots ou chaines de façon simple et pratique. C'est donc une forme de distance
mathématique et de métrique pour les chaînes de caractères. La distance euclidienne calcule la
similarité entre deux documents d1 et d2 comme distance entre leurs représentations vectorielles
ramenées à un seul point. Ou n correspond au nombre de termes représentés, c’est-à-dire la taille
des vecteurs.
n
d1 −⃗
¿eucledienne (d1, d2) = ‖⃗ d 2‖ =
√∑
1=1
(d 11−d 21 )2
Coefficient de Jaccard
Elle est calculée comme le nombre de termes partagés entre le nombre total de tous les
termes uniques dans deux chaines de caractère [Gomaa 2013 [12]]. Cette similarité est parfois
appelée coefficient de Tanimoto, qui mesure la similarité comme intersection entre les objets
divisés par leur union. L’indice de Jaccard ou coefficient de Jaccard [Jaccard,1901] est le rapport
NGNINTEDEM TEUKENG Jim Carlson 17 Master Sled : 2019-2020
entre la cardinalité de l’intersection des ensembles considérés et la cardinalité de l’union des
ensembles. Il permet de ce fait d’évaluer la similarité entre les documents. Soit d1 et d2 deux
documents ; la similarité entre leurs représentations vectorielles est :
d .⃗
⃗ d
¿ jaccard ( d 1, d 2 )= ⃗ ⃗1 2⃗ ⃗
‖d 1‖‖d 2‖− d1 . d 2
La similarité obtenue SimJaccard (d1, d2) appartient [0,1]
L’indice de Dice est défini comme étant deux fois le nombre de termes commun entre deux
chaines de caractères divisé par le total de nombre dans les deux chaines. L’indice de Dice
mesure la similarité entre deux documents d1 et d2 en se basant sur le nombre de termes
communs a d1 et d2.
2 Ne
¿dice (d 1 ,d 2 )=
N 1+ N 2
Lorsque les documents sont représentés sous forme de vecteurs, alors le dégrée de similarité
peut être mesuré comme corrélation de deux documents, ceci est généralement quantifié au
travers de l’utilisation du l’angle, en d’autres termes le cosinus entre deux représentations
vectorielles de document [Benard Magara 2018 [8]]. La similarité par cosinus est l’une des
métriques de similarité les plus populaire appliqué sous les documents sous forme textuelle, dans
l’extraction de donnée [Huang 2008 [21]] mais aussi le clustering [Huang 2008 [9]].
d .⃗
⃗ d2
¿Cosinus ( d 1, d 2 )= ⃗ 1 ⃗
‖d1‖.‖d2‖
Les approches utilisées dans l’extraction d’information sont majoritairement basées sur
l’analyse de la structure du web. A cet effet plusieurs études ont été réalisées [31]–[37]. Il
découle donc que, Le web peut être considéré comme un graphe orienté ou les nœuds
représentent les URLS et les arête les hyperliens entre eux. L’importance de l’analyse de la
structure du web est le fondement dans le contexte de similarité lors de l’extraction de
l’information des algorithmes tels que HITS et PageRank [Papadimitriou 2010 [25] [13]] de
google ou encore de [38] qui se base sur l’analyse de la structure du web afin d’attribuer un score
aux pages ; score permettant donc d’évaluer pertinence d’une page web par rapport aux autres.
Cependant certaines approches basées sur d’autre forme de graphe on fait leur apparition.
Tw représente le poids des termes du graphes (graph based term weights), Pd représente
les propriétés du graphe du document d w, j sont des paramètres pouvant être ajusté.
De nos jours afin de pouvoir évaluer la similarité entre deux graphes donnés, les chercheurs
se sont tournés de plus en plus vers la notion d’isomorphisme [Rong 2018]. Par exemple [Mallek
et al, 2015] se sont appuyé sur la nation d’isomorphisme afin de détecter les graphes de similarité
lorsqu’il recherchait les communautés dans les réseaux sociaux ; [Hu et al. 2013] en biologie se
sont servis de cette même approche dans l’optique de déterminé les similarités entre les
molécules ; [Raymond et Willet ; 2002] on conduit une étude sur la comparaison structurelle
entre les molécules chimiques au travers de la notion de graphes isomorphe, en géologie [Daniel
Schwalbe-Koda,2019] propose une approche d’analyse structurelle s’appuyant principalement
sur les graphes isomorphiques pour prédire les transformations du Crystal Zéolite. Tout ceci pour
montrer à quel point cette approche d’évaluation de similarité ne cesse de prendre de l’ampleur
dans la recherche.
Le problème de recherché d’isomorphisme est un problème classique de la théorie des
graphes, et les algorithmes utilisés sont fonction des scenarios auxquels on fait face. En pratique
les données requit pour pouvoir établir un graphe sont la plupart du temps bruité c’est pour ça
que les isomorphismes de graphes sont rarement utilisés. Les isomorphismes de sous graphe et
monomorphisme sont ceux qui sont le plus souvent mis en avant. Le problème de recherche d’un
graphe isomorphe est un problème dont aucune solution efficace n’existe jusqu’à ce jour, de ce
fait il est considéré comme étant un problème NP-complet [Foggia [10]]. Cependant tous les
algorithmes de recherche d’isomorphisme de sous graphes peuvent afficher une complexité en
temps sous l’ordre exponentiel en respect avec la taille des inputs du graphe.
Soit G1= (S1, G1) et G2 = (S2, E2), deux graphes. Un isomorphisme de graphe G1 dans
G2 est une bijection Ψ de E1 dans E2 qui vérifie :
( i , j ) ϵ S 1 (Ψ ( i ) , Ψ ( j ) ϵ E 2)
⇔
Généralement les algorithmes de recherches d’isomorphisme entre graphes sont soient dit
Exact-Matching algorithme c’est-à-dire qui évalue une correspondance parfaite entre deux
graphes pour les considérer comme isomorphe soient inexacte encore appelé Inexacte-matching
algorithme ou Fault-Tolerance Matching, qui relâche les contraintes allouant ainsi certaines
erreur et bruit lors de la recherche d’un isomorphisme entre deux graphes c’est-à-dire qu’il
requiert que chaque sommets du premier graphe puisse mapper différents sommets dans le
second graphe sans tenir compte de l’orientation arête entre les sommets (monomorphisme)
allouant ainsi une redondance d’arêtes et de sommets [42]. Les isomorphismes sont également
utilisés pour déterminer le plus grand sous graphe commun entre deux graphes.
L’une des premières approches et des plus citées pour résoudre le problème
d’isomorphisme de graphe est l’algorithme proposé par Ullmann [43]. Cette approche proposée
en 1976 peut être utilisé aussi bien pour résoudre les problèmes d’isomorphismes que
d’isomorphisme de sous graphes et de monomorphisme.
Procédure : Un matching partiel initialement vide est agrandit de façon itérative en ajoutant de
nouvelles paires de nœud matché, l’objectif est de rechercher la matrice de permutation qui
vérifie la condition G1= M (MG 2)t
Algorithme 1: Ullman
Input: g’: a graph;
g: a graph;
H: a vector with length β, initialized by all 0;
F: a vector with length α, initialized by all 0;
d: depth, initialized by 0;
VF et VF2 Algorithm
Considéré comme l’un des algorithmes de recherche d’isomorphisme les plus rapide [45],
L’algorithme VF est un algorithme de correspondance de sous graphe qui recherche toute
correspondance entre deux graphes donnés. L’algorithme peut être utiliser pour résoudre aussi
bien le problème d’isomorphisme de graphe que celui de sous graphe. VF2 représente une
amélioration de VF initialement proposé par Cordellac, cette amélioration permis de réduire la
complexité qui s’est vue passer de 𝑂 ( N 2) a 𝑂(𝑁), où N dénote l’ensemble de nœuds.
Définition : Etant donné deux graphes G1 et G2, un état S0 initialisant toutes les
structures de données est fixé. Une instance de l’algorithme est passé sur la méthode de
correspondance qui vérifie s’il existe une correspondance entre deux paires de sommets
provenant de G1 et G2. S’il la méthode de vérification renvoie « true » alors les paires candidates
sont ajoutées au l’ensemble des paires correspondant à la fois à G1 et G2 et la procédure est
répétée jusqu’à ce que tous les paires candidates sois testées. Si une correspondance est trouvée
alors on bactrack à la dernière paire candidate trouvée sinon on ne retourne pas de
Algorithme : VF2
Input : G1(V1, E1) et G2(V2, E2)
Output: set de matching entre G1 et G2
match (S0)
If depth of search tree reached
Print the mapping
Else
For set of candidate’s pairs
Check (feasibility (node1, node2))
Call Match S0 // we can backtrack after all mapping is found to get all
mapping
If (found)
Backtrack ()
Else
Return true
Complexité :
VF2 Ullman’s
Complexity Best Case Worst Case Best Case Worst Case
Time ϴ( N 2) ϴ(N! N) ϴ( N 3) ϴ((N! N 2)
Spatial ϴ(N) ϴ(N) ϴ( N 3) ϴ( N 3)
Le GED est une approche d’évaluation de similarité entre les graphes. Elle a été reportée
pour la première fois par [Sanfeliu et Fu, 1983]. L’idée de cette approche est de trouver le
meilleur set de transformations qui transforme un graphe G1 en un graphe G2 au moyen
d’Operations d’éditions.
Le GED (graph edit distance) peut être définie comme étant le coût minimum engendrer par
l’édition d’un chemin entre deux graphes ou le chemin édité entre deux graphes consiste en une
séquence d’opération en vue de transformer un graphe H en un graphe G [47], [48]. Les
opérations utilisées sont pour un nœud et l’arête associée l’insertion, la suppression et la
substitution. Chacune de ses opérations étant associées à un coût leur étant propres. Le coût total
de ses opérations représentant le coût total d’édition d’un chemin [49]. On a donc
L’avantage de cette technique est qu’elle est très sensible aux petites différences entre les
inputs d’un graphe mais elle a la faiblesse d’être considérée comme un problème NP complet
c’est-à-dire qu’il n’existe pas d’algorithme en tant polynomiale pour résoudre toutes les instances
du problème.
Dans [47] une approche basée sur le plus grand sous graphe commun est mis en avant. Cette
nouvelle approche proposée a l’avantage que contrairement au GED elle ne s’appuie pas sur le
coût des opérations dont ici définir le coût correspondant à chaque opération est non nécessaire.
On définit donc la distance entre deux graphes non vide G1 et G2 par :
d(G1, G 2) = 1 - ¿ ¿
Tels que :
1) 0 ≤ d(G1, G 2) ≤ 1.
Evaluer la similarité entre documents textuels est l’une des problématiques importantes de
plusieurs disciplines comme l’analyse de données textuelles, la recherche d’information ou
l’extraction de connaissances à partir de données textuelles (text mining). Dans chacun de ces
domaines, les similarités sont utilisées pour différents traitement ; par exemple dans l’analyse de
données textuelles, les similarités sont utilisées pour la description et l’exploration de données,
tandis que dans la recherche d’information, l’évaluation de similarité entre documents et requêtes
est utilisée pour identifier les documents pertinents par rapport à des besoins d’information
exprimés par les utilisateurs ; en text mining, les similarités sont utilisées pour produire des
représentations synthétiques de vastes collections de documents. Les techniques mises en œuvre
pour calculer les similarités varient dépendamment de la discipline dans laquelle elles sont
utilisées, mais elles s’intègrent cependant le plus souvent dans une même approche générale en
deux temps [50].
Les documents textuels sont d’abord associés à des représentations spécifiques qui vont
servir de base au calcul des similarités. Bien que la nature précise des représentations
utilisées dépende fortement du domaine d’application, il faut noter que presque dans tous
les cas, les documents sont représentés sous la forme d’éléments d’un espace vectoriel de
grande dimension.
Méthodologie de recherche
Afin de tirer parti au mieux de la métrique d’évaluation proposé, un ensemble de
technique de prétraitement et de nettoyage doivent être appliqué aux contenus des pages pour
résoudre de la façon la plus efficiente le problème d’évaluation de similarité. Le modèle que
nous proposons est celui d’un focused crawler qui utilise une approche d’évaluation de
pertinence basée sur les graphes isomorphes. Nous partons donc de l’architecture générale d’un
focused crawler et nous modifions le module d’évaluation de pertinence de ce dernier pour qu’il
scie le mieux à notre approche de graphe. Sur cette base notre modèle est constitué des modules
suivants :
La figure 3 illustre l’architecture de notre système ainsi que les interactions entre ses
différents composants. D’une manière générale, le système démarre après le lancement d’une
recherche au travers de la saisie d’un mots clé. Les URLS les plus pertinent correspondant aux
Les liens internes : Qui sont des liens qui vont permettre de naviguer d’une page à une
autre page dans le même site internet ; ces liens ont également l’aisance de faciliter la
navigation sur un site.
Les liens externes : Qui sont des liens qui n’appartiennent pas au site internet. Les liens
externes augmentent votre popularité.
Pour faire la différence entre ces deux types de liens, une fois après avoir récupéré la
valeur de l’attribut href de toutes les balises a, nous vérifions tout d’abord si la valeur est vide si
c’est le cas on passe à l’URL suivante sinon on récupère la valeur que l’on passe à la fonction
join () qui prend en paramètre l’URL racine du site internet et la valeur du href. L’ensemble est
alors transformé en une URL que nous devons par la suite vérifier si elle est valide ou pas.
Notons qu’une URL est valide si elle a la syntaxe suivante :
Protocole// : www.nomduserveur_domaine
2.3.2 Tokenisation
La tokenisation est l’étape au cours de laquelle, les chaines de caractères contenues dans
le texte sont transformées en de petite entité ou tokens. Des sections du texte peuvent être
transformées en phrase, les phrases à leur tour pouvant être transformées sous forme de mots.
Les autres tâches de traitement sont généralement effectuées après qu’une tâche appropriée de
tokenisation n’ai été effectué. La tokenisation est également appelée segmentation de texte ou
analyse lexical. Parfois la segmentation est utilisée pour faire référence à la séparation des
grandes portions de texte en pièce plus importantes que des mots (paragraphe ou phrase), tandis
que la tokenisation conduit exclusivement à des mots. Pour notre tâche, nous utiliserons la
2.3.3 Normalisation
Ce processus renvoie généralement à une série de tâches ayant pour but d’uniformiser le
texte il s’agit entre autres de convertir le texte sous la même forme (majuscule ou minuscule),
éliminer les signes de ponctuations, convertir les nombres en leur équivalence en lettre, etc. la
normalisation permet de rendre tous les mots d’un corpus sous le même pied d’égalité et permet
ainsi un traitement uniforme des données. Normaliser renvoie à une série de tâche mais dans
notre cas, on distinguera 3 tâches en particulier à savoir : la lemmatisation, le stemming ou
racinisation et les autres tâches.
Une chose à noter est qu’après avoir effectué la tokenisation du texte nous ne travaillons
plus au niveau du texte mais au niveau de ses constituants qui sont les mots.
Lemmatisation
Stemming ou racinisation
Il existe un autre processus qui exerce une fonction similaire à celle de la lemmatisation
qui s'appelle la racinisation (ou stemming en anglais). Cela consiste à ne conserver que la racine
des mots étudiés. L'idée étant de supprimer les suffixes, préfixes et autres des mots afin de ne
conserver que leur origine. C'est un procédé plus simple que la lemmatisation et plus rapide à
effectuer puisqu'on tronque les mots essentiellement contrairement à la lemmatisation qui
nécessite d'utiliser un dictionnaire. A noter que la méthode de racinisation employée ici découle
de l’algorithme proposé par Martin Porter et inclus dans le package NLTK sur python.
Bien que les tâches principales du prétraitement du texte soit le stemming et le lemming,
la dénomination autre tâche, n’indique pas des tâches qui sont à négliger car elles concourent de
leur façon à rendre le texte uniforme. Certaines d’entre elles sont basées sur des simples idées de
substitution ou de suppression. Il s’agit de :
Input : URL
Tokenisation du texte
Normalisation du texte
Une fois le texte prétraité il devient plus aisé de passé à l’étapes suivantes.
On définira une page web par un 4-tuples G= (V, E, α) ou V représente l’ensemble des
nœuds, E l’ensemble des arêtes, α la fonction utilisée pour labéliser les nœuds.
Plusieurs méthodes existent pour représenter le contenu d’une page web sous forme de
graphe. Mais elles ne définissent pas un standard de représentation d’une page web sous forme
de graphes ; notre approche est expirée de celle du Tag Sensitive Graph Model (TSGM) [53] a la
seule différence que le labélisation des arêtes ne sera pas pris en compte.
Dans cette forme de représentation chaque unique terme apparaissant dans le document
sera considéré comme un nœud dans le graphe représentant le document. Chaque nœud étant
étiquette avec le terme qu’il représente dans le document. Les nœuds dans le graphe étant unique
car chaque nœud est créé pour un terme unique dans le document même si un terme apparait plus
d’une fois dans le texte. De plus si un terme « a » précède immédiatement un terme « b » du
document alors il existe un arc entre le nœud correspondant au terme a avec celui correspondant
au terme b.
Génération du graphe
Retourner (graphe)
SI |M ( s)| = |G 2|
Retourner G2
SINON
Retourner (M (s))
Set<Constraint>constraints analyseSubgraph[sg];
NodeListHandler candidates candidate node lists (to be intersected) for each subgraph
node;
t type of edge;
end for
end for
SubgraphNode sgn ˿ subgraph node with the smallest candidate, node sublist;
Une fois la détermination du plus grand sous graphes commun entre les deux textes
effectués, il est temps d’évaluer la similarité les graphes correspondant respectivement à nos
URLS de départ avec celle en cours de traitement.
Retourner (similarité)
Algorithme 2.7 : Calcul de similarité
2.6 Stockages
Une fois la valeur de similarité décrite plus haut déterminée, dépendamment de la valeur
obtenue et d’une valeur seuil, l’URL sera classée parmi la liste d’URL pertinente ou non et sera
inclus dans la file d’attente si elle est considérée comme pertinente pour afin être analyser et
extraire les URLS qu’elle contient à son tour. Les URLS présent dans la file étant extrait par
ordre de priorité obtenue après calcul de similarité. La liste des URLS classé comme pertinente
est donc stockée afin d’être présentée dans une interface graphique à l’utilisateur.
Les résultats de recherche doivent être présentés dans une interface de préférence web.
Mais pour le moment l’interface de présentation du programme est en ligne de commande. Au
NGNINTEDEM TEUKENG Jim Carlson 43 Master Sled : 2019-2020
lancement du programme, il est demandé à l’utilisateur d’entrée tout d’abord un mots clé (1),
c’est à base de ce mots clé que le programme sélectionnera ses URLS de départ. Une fois le mots
clé entré l’utilisateur saisie le nombre de page maximal que le crawler doit visitée (2). Le nombre
de page maximal pour notre programme représente son critère d’arrêt. Cette étape accomplie le
crawler lance son exploration et présente les URLS pertinent qu’il a trouvé à l’utilisateur (3).
3 EXPERIMENTATION ET RESULTATS
Dans le chapitre précédant, nous avons présenté notre approche de solution pour le calcul
de similarité basée sur des métriques dérivées des graphes. Cette présentation est restée jusqu’ici
purement théorique. Dans ce chapitre, nous présentons les résultats expérimentaux obtenus à
l’issue d’une implémentation de notre approche de solution. Ainsi, après la présentation de notre
cadre expérimental, nous continuerons par la comparaison de deux méthodes de calcul de
similarité dans les crawler web à savoir notre méthode et celle de basé sur SVM et la similarité
par cosinus puis nous finirons par une application de fouille et dans la constitution d’une base de
données pour le phishing.
D’une façon générale, un Crawler (spécifiquement un crawler orienté) doit être évalué au
travers de sa capacité d’extraire des pages considérées comme bonnes. Cependant, l’un de ses
soucis est de pouvoir reconnaitre et différencier une page bonne d’une mauvaise. Dans un
environnement opérationnel, des utilisateurs réels doivent juger la qualité d’une page pour nous
permettre de dire si le processus d’exploration a été un succès ou non. Malheureusement, faire
appel à des utilisateurs réels pour évaluer un processus d’exploration est problématique. Ceci dit,
le vaste ensemble que constitue le web suggère qu’avoir une notion raisonnable de l’effectivité et
efficience d’un crawl implique un grand nombre d’utilisateurs réels. Deuxièmement,
l’exploration du web en temps réel pose de sérieuses contraintes de temps.
De manière globale, il est important de comparer un crawler orienté sur un large panel de
sujet et de taches, nous permettant ainsi de dire de façon certaine au travers des analyses
statistiques significatives des différents bénéfices qui peuvent être observés au travers du
crawler. Il existe plusieurs indicateurs de performance d’un focused Crawler la Revelance
(Precision), average similarity, le Harvest rate pour ne citer que cela. Cependant certaines
mesures tels que le Recall pour un focused crawler est très difficile à exprimer parce qu’on ne
dispose que d’une définition incomplète et subjective de ce qu’est qu’une ‘’bonne couverture’’
sur un domaine [54]. Cependant afin de tirer profit des mesures de comparaison nous avons
choisi pour notre étude en plus des mesures de consommation en temps et en espace les critères
d’évaluation suivants.
Harvest Rate
Dans l’extraction de texte est utilisé pour évaluer la faculté d’un crawler à pouvoir
explorer le web. En d’autres termes, il s’agit d’évaluer la performance d’un crawler en termes de
pages parcourues. Plusieurs Focused crawler ont utilisé ses métriques [[54], [Jamali 2006 [6],
[7], [4]]]. Le Harvest rate consiste donc de façon mathématique au ratio entre le nombre de page
pertinente par rapport à un sujet sur le nombre de page visité durant le processus d’exploration
[[Jamali 2006 [34]]. S’agissant du Harvest Rate, une valeur seuil est donné afin de pouvoir juger
La précision
Pour [56] la meilleure façon d’évaluer la précision est au travers de l’avis d’un utilisateur
réel mais du fait des millier de page que constituent le web cette tache serais à la limite
impossible a effectué. Dans le cadre de notre expérimentation afin de pouvoir comparer
l’approche basé sur les vecteurs avec celle des graphes en termes de précision nous allons définir
un échantillon particulier pour cette métrique. La précision permet de définir à quel point les
pages web jugées pertinentes explorées sont en rapport avec le sujet d’exploration.
3.3 Résultats
Les résultats sont présentés sous forme de tableau constitué de lignes où chaque ligne est un
nombre bien précis d’URL crawler. Le nombre d’URL crawler par de 100 à 200 URL par site
web. Notons que le choix de ce nombre part juste sur base d’un test. Il a été fait de manière
aléatoire mais nous sommes rassurés que ce choix aléatoire n’influencera pas les interprétations
et analyse que nous donnerons. Il est important de fixer le nombre d’URL explorer car notre
programme est récursif et la condition d’arrêt est que soit le programme s’arrête lorsqu’on a
atteint le nombre d’URL à explorer, ou alors lorsqu’on à explorer l’ensemble des pages web du
site.
Harvest Rate
Test 1: https//us.norton.com/internetsecurity-emerging-threats-what-is-smishing.html
cosine(0,3 BFS
isomophisme(0,95) )
Nombres Harves
de pages t rate
explorée Harvest Sim Harvest
s Rate Moyenne rate Sim Moyenne
10 0.20 0.93 0.70 0.31 0.2
20 0.30 0.96 0.20 0.22 0
30 0.70 0.94 0.50 0.33 0.20
40 0.00 1.00 0.10 0.12 0.10
50 0.50 0.86 0.10 0.06 0
60 0.90 0.69 0.10 0.07 0
70 0.80 0.69 0.00 0.03 0
80 0.60 0.83 0.00 0.02 0
90 0.50 0.88 0.50 0.23 0
100 0.70 0.95 0.60 0.23 0
Test2: https//en.wikipedia.org/wiki/Pharming
Test 3: https//en.wikipedia.org/wiki/Phishing
Précision
Spécifiquement pour ce module nous mettrons sur pied un échantillon afin d’analyser de la
manière la plus efficiente la précision de chacune des approches comparées.
Présentations de l’échantillons : Soit les liens suivant donc le centre d’intérêt gravitent autour
du phishing spécifiquement le pharming (URL1, URL2, URL4) et du sport (URL3), il est
nécessaire de rappeler que le choix d’URL afin de constituée notre échantillon a été faites de la
URL1: https://en.wikipedia.org/wiki/Pharming
['pharming', 'pharming', 'cyberattack', 'intend', 'redirect', 'website', 'traffic', 'another', 'fake', 'site',
'pharming', 'conduct', 'either', 'change', 'host', 'file', 'victim', 'computer', 'exploitation',
'vulnerability', 'dns', 'server', 'software', 'dns', 'servers', 'computers', 'responsible', 'resolve',
'internet', 'name', 'real', 'ip', 'address', 'compromise', 'dns', 'servers', 'sometimes', 'refer', 'poison',
'pharming', 'require', 'unprotected', 'access', 'target', 'computer', 'alter', 'customer', 'home',
'computer', 'rather', 'corporate', 'business', 'server', 'term', 'pharming', 'neologism', 'base', 'word',
'farm', 'phishing', 'phishing', 'type', 'socialengineering', 'attack', 'obtain', 'access', 'credentials',
'user', 'name', 'passwords', 'recent', 'years', 'pharming', 'phishing', 'use', 'gain', 'information',
'online', 'identity', 'theft', 'pharming', 'become', 'major', 'concern', 'businesses', 'host',
'ecommerce', 'online', 'bank', 'websites', 'sophisticate', 'measure', 'know', 'antipharming',
'require', 'protect', 'serious', 'threat', 'antivirus', 'software', 'spyware', 'removal', 'software',
'protect', 'pharming', 'pharming', 'vulnerability', 'home', 'work', 'malicious', 'domainname',
'resolution', 'result', 'compromise', 'large', 'number', 'trust', 'nod', 'name', 'lookup', 'vulnerable',
'point', 'compromise', 'near', 'leave', 'internet', 'instance', 'incorrect', 'entries', 'desktop',
URL2: https://us.norton.com/internetsecurity-online-scams-what-is-pharming.html
['online', 'scam', 'pharming', 'protect', 'sept', 'twelve', 'two thousand and nineteen', 'pharming',
'form', 'online', 'fraud', 'involve', 'malicious', 'code', 'fraudulent', 'websites', 'cybercriminals',
'install', 'malicious', 'code', 'computer', 'server', 'code', 'automatically', 'direct', 'bogus', 'websites',
'without', 'knowledge', 'consent', 'goal', 'get', 'provide', 'personal', 'information', 'like', 'payment',
'card', 'data', 'passwords', 'false', 'websites', 'cybercriminals', 'could', 'use', 'personal',
'information', 'commit', 'financial', 'fraud', 'identity', 'theft', 'help', 'protect', 'pharming',
'information', 'tip', 'help', 'pharming', 'pharming', 'combine', 'word', 'phishing', 'farm', 'cybercrime',
'also', 'know', 'phishing', 'without', 'lure', 'phishing', 'online', 'fraud', 'scheme', 'cybercriminal',
'hop', 'click', 'compromise', 'email', 'link', 'take', 'fake', 'site', 'enter', 'access', 'credentials',
'username', 'password',
NGNINTEDEM TEUKENG Jim 'fraudster',
Carlson 'access', 'real',
52 'site', 'steal', 'personal', 'information',
Master Sled : 2019-2020
'pharming', 'hand', 'twostep', 'process', 'one', 'cybercriminals', 'install', 'malicious', 'code',
'computer', 'server', 'two', 'code', 'send', 'bogus', 'website', 'may', 'trick', 'provide', 'personal',
'information', 'computer', 'pharming', 'require', 'initial', 'click', 'take', 'fraudulent', 'website',
URL3: https://en.wikipedia.org/wiki/Football
['football', 'football', 'family', 'team', 'sport', 'involve', 'vary', 'degrees', 'kick', 'ball', 'score', 'goal',
'unqualified', 'word', 'football', 'normally', 'mean', 'form', 'football', 'popular', 'word', 'use', 'sport',
'commonly', 'call', 'football', 'include', 'association', 'football', 'know', 'soccer', 'countries',
'gridiron', 'football', 'specifically', 'american', 'football', 'canadian', 'football', 'australian', 'rule',
'football', 'rugby', 'football', 'either', 'rugby', 'union', 'rugby', 'league', 'gaelic', 'football', 'various',
'form', 'football', 'share', 'vary', 'extent', 'common', 'origins', 'know', 'football', 'cod', 'number',
'reference', 'traditional', 'ancient', 'prehistoric', 'ball', 'game', 'play', 'many', 'different', 'part',
'world', 'contemporary', 'cod', 'football', 'trace', 'back', 'codification', 'game', 'english', 'public',
'school', '19th', 'century', 'expansion', 'cultural', 'influence', 'british', 'empire', 'allow', 'rule',
'football', 'spread', 'areas', 'british', 'influence', 'outside', 'directly', 'control', 'empire', 'end', '19th',
'century', 'distinct', 'regional', 'cod', 'already', 'develop', 'gaelic', 'football', 'example',
'deliberately', 'incorporate', 'rule', 'local', 'traditional', 'football', 'game', 'order', 'maintain',
'heritage', 'one thousand, eight hundred and eighty-eight', 'football', 'league', 'found', 'england',
'become', 'first', 'many', 'professional', 'football', 'competitions', '20th', 'century', 'several',
URL4: https://www.comparitech.com/blog/information-security/pharming-attack/
['pharming', 'sound', 'like', 'fairly', 'innocent', 'practice', 'kind', 'involve', 'animals', 'crop',
'pharming', 'refer', 'type', 'cybercrime', 'user', 'send', 'fake', 'website', 'instead', 'legitimate',
'one', 'victim', 'land', 'fake', 'site', 'ultimate', 'goal', 'usually', 'hand', 'personal', 'information',
NGNINTEDEM TEUKENG Jim Carlson 53 Master Sled : 2019-2020
'example', 'account', 'login', 'credentials', 'bank', 'information', 'information', 'use', 'crimes',
'account', 'takeover', 'fraud', 'identity', 'theft', 'sound', 'lot', 'like', 'phishing', 'right', 'go',
'detail', 'major', 'difference', 'two', 'phishing', 'site', 'different', 'url', 'site', 'mimic', 'whereas',
'pharming', 'involve', 'redirection', 'dns', 'level', 'click', 'enter', 'wrong', 'url', 'pharming',
Après évaluation des similarités relativement à nos corpus, les résultats obtenus sont les
suivants :
La comparaison des deux méthodes dans l’évaluation des similarités entre les documents
web fait intervenir 5 paramètres comme nous l’avons précisé plus haut à savoir le temps
Harvest Rate
1
0.9
0.8
0.7
0.6
Harvest rate
0.5
0.4
0.3
0.2
0.1
0
0 50 100 150 200 250 300 350 400
En effet on se rend compte de la difficulté qu’un crawler basé sur le BFS a à visiter des
contenus pertinents au travers de sa courbe. Ceci est principalement dû à l’organisation des liens
dans le site car si les liens correspondants étaient jugés tous pertinents de prime abord alors le
20000
15000
10000
5000
0
Test1 Test2 Test3
De même que le temps, l’espace mémoire occupé par notre approche est plus élevé que
celle basée sur la similarité par cosinus et du BFS figure 3.3. On peut donc conclure à posteriori
que la constitution d’un graphe demande plus de ressources que celle d’un vecteur.
350
300
250
200
150
100
50
0
Test1 Test2 Test3
Une chose à noter est que, afin d’effectuer nos analyses, nous avons trouvé pertinent de
produire un outil d’évaluation de similarité basée sur le Cosinus et le tf-idf à partir du modèle
proposé par [Irfan S., Ghosh S. (2020)] ne prenant uniquement en compte que le contenu de la
page web contrairement à l’approche initiale qui tenait compte à la fois du contenu et de la
pertinence du lien afin de rendre la métrique plus pertinente.
Nous avons présenté dans cette partie une analyse des résultats obtenus avec notre modèle
d’évaluation de similarité basé sur les graphes isomorphes. Bien qu’étant gourmand en temps et
en espace on se rend compte que comparé à un autre focused crawler particulièrement Cosinus
cette consommation reste dans l’ordre du raisonnable. Mais le point fort de notre approche a été
démontré au travers de son Harvest Rate et de sa précision. Afin, Le tableau 3.6 nous a permis de
montrer que notre approche dispose de tous les atouts nécessaires pour challenger ses
Homologues.
En 2013 une étude menée par le TNS Global (qui est une agence de recherche personnalisé
qui fournis à ses clients des renseignements et conseils d’affaires basés sur la recherche) for
Halon an email Security service au US à montrer que sur 1000 personnes, 30% d’entre elles
ouvriront des mails suspicieux ou contenant des potentiels malware s’il était averti à l’avance sur
les dangers de ses mails. Ceci juste pour mettre en évidence que malgré de nombreuses
campagnes menées à cet effet le social engineering demeure une menace réelle. En 2013 lors
d’une interview de James Comey, Directeur du FBI certifiât que, la cybercriminalité a surpassé
le terrorisme et ne cesse de prendre de l’ampleur. Cependant l’une des méthodes pour s’en
protéger reste l’éducation et sensibilisation des utilisateurs en plus des méthodes physiques et
logicielles existantes.
En effet, les pirates envoient massivement de faux courriers électroniques sur internet en
guise d’hameçon en attendant qu’un internaute morde au piège. Ces faux courriels sont en effet
un lien qui mène vers un faux site web ayant l’apparence d’un site réel (il peut s’agir d’une
banque ou d’une entreprise). Lorsqu’un utilisateur tombe dans le piège il entre ses informations
personnelles, son mot de passe, ses coordonnées bancaires, son numéro personnel, son code
confidentiel, etc. Le pirate informatique se contente donc de les récupérer et de les utiliser à son
avantage (Cela veut dire qu’il peut revendre ces informations à prix élevé ou alors les utiliser
pour soutirer de l’argent dans le compte bancaire de sa victime).
L'attaque nommée Phishing est organisée à grande échelle. En effet la technique déployée
est réalisée à l'aide de courriels envoyés massivement sur des boites aux lettres collectées au
hasard. Des pièces jointes (page web factice) sont ajoutées à ces envois et précisent aux
Le module i) Consiste à intégrer un crawler orienté vers les informations ayant trait au
phishing sur le web ; il s’appuie sur le modèle qui a fait l’objet de notre travail à savoir un
crawler basé sur les graphes isomorphes. Ce module représente donc si ce n’est la composante
clé de notre système. Les données ainsi découverte sont ensuite extraite et stocker sous une base
de données avant d’ensuite être traité. La composante iii) est chargé d’appliqué des méthodes
d’agrégation et de classification afin que les données similaires soient associées entre elles mais
le choix d’une technique efficace et efficiente sera laissé en perspective de notre travail. Mais ce
qui a été implémenté à ce niveau est une représentation des différents sites en fonction du mots
clé et des résultats de recherche qu’elle propose. De ce fait une fois toutes ses étapes effectué les
données sont présentées dans une interface graphique afin de sensibiliser et de permettre aux
utilisateurs de s’informer sur les différentes attaques du phishing et avoir les informations les
plus a jours.
4
Figure 3.12: Interface de presentation
[1] K. Desai, V. Devulapalli, S. Agrawal, P. Kathiria, and A. Patel, “Web Crawler: Review of
Different Types of Web Crawler, Its Issues, Applications and Research Opportunities,”
Int. J. Adv. Res. Comput. Sci., vol. 8, no. 3, pp. 1199–1202, 2017, [Online]. Available:
http://ijarcs.info/index.php/Ijarcs/article/view/3190.
[2] G. Sharma, S. Sharma, and H. Singla, “Evolution of web crawler its challenges,” Int. J.
Control Theory Appl., vol. 9, no. Specialissue11, pp. 5357–5368, 2016.
[3] A. Gupta and G. N. Campus, “A Review on Efficient Web Crawling,” no. August, 2017,
doi: 10.13140/RG.2.2.20578.43205.
[4] M. Singh Ahuja, D. J. Singh Bal, and V. nica, “Web Crawler: Extracting the Web Data,”
Int. J. Comput. Trends Technol., vol. 13, no. 3, pp. 132–137, 2014, doi:
10.14445/22312803/ijctt-v13p128.
[5] M. Najork, “Web Crawler Architecture,” Encycl. Database Syst., pp. 1–4, 2017, doi:
10.1007/978-1-4899-7993-3_457-3.
[6] G. Pant, “Exploration versus Exploitation in Topic Driven Crawlers,” A. Web Dyn. Adapt.
to Chang. Content, Size, Topol. Use, Springer, pp. 153–178, 2004.
[7] K. Nemeslaki, Andreas, Pocsarovszky, “Web crawler research methodology,” 22nde Eur.
Reg. ITS Conf. Budapest,18-21 Septmebre,2011, 2011.
[9] L. Yu et al., “Summary of web crawler technology research,” J. Phys. Conf. Ser., vol.
1449, no. 1, pp. 1–10, 2020, doi: 10.1088/1742-6596/1449/1/012036.
[10] F. K. F. Arnaud, “Contribution à la Fouille des données avec réduction des doublons,”
Ngaoundere, Cameroon.
[11] S. Zheng, P. Dmitriev, and C. L. Giles, “Graph based crawler seed selection,” WWW’09 -
Proc. 18th Int. World Wide Web Conf., pp. 1089–1090, 2009, doi:
10.1145/1526709.1526870.
[12] S. Batsakis, E. G. M. Petrakis, and E. Milios, “Improving the performance of focused web
crawlers,” Data Knowl. Eng., vol. 68, no. 10, pp. 1001–1013, 2009, doi:
10.1016/j.datak.2009.04.002.
[13] M. AbuKausar, V. S. Dhaka, and S. Kumar Singh, “Web Crawler: A Review,” Int. J.
Comput. Appl., vol. 63, no. 2, pp. 31–36, 2013, doi: 10.5120/10440-5125.
[14] V. Shrivastava, “A Methodological study of web crawler,” J. Eng. Res. Appl. ISSN- 2248-
9622, vol. 8, no. 11, pp. 1–8, 2018, doi: 10.9790/9622-0811010108.
[15] S. Chakrabarti, “Crawling the Web,” Min. Web, pp. 17–43, 2003, doi: 10.1016/b978-
155860754-5/50003-3.
[16] F. Van De Maele, “Ontology-based Crawler for the Semantic Web Felix Van de Maele
Ontology-based Crawler for the Semantic Web Felix Van de Maele,” Architecture, no.
May, 2006.
[18] K. Aggarwal, “An Ef fi cient Focused Web Crawling Approach,” pp. 131–138, doi:
10.1007/978-981-10-8848-3.
[19] M. Bazarganigilani, A. Syed, and S. Burki, “Focused Web Crawling Using Decay
[22] A. Huang, “Similarity measures for text document clustering,” New Zeal. Comput. Sci.
Res. Student Conf. NZCSRSC 2008 - Proc., no. April, pp. 49–56, 2008.
[26] L. Ma and Y. Zhang, “Using Word2Vec to process big text data,” Proc. - 2015 IEEE Int.
Conf. Big Data, IEEE Big Data 2015, pp. 2895–2897, 2015, doi:
10.1109/BigData.2015.7364114.
[28] M. Benard Magara, S. O. Ojo, and T. Zuva, “A comparative analysis of text similarity
measures and algorithms in research paper recommender systems,” 2018 Conf. Inf.
Commun. Technol. Soc. ICTAS 2018 - Proc., no. March, pp. 1–5, 2018, doi:
10.1109/ICTAS.2018.8368766.
[31] P. Papadimitriou, A. Dasdan, and H. Garcia-Molina, “Web graph similarity for anomaly
detection,” J. Internet Serv. Appl., vol. 1, no. 1, pp. 19–30, 2010, doi: 10.1007/s13174-
010-0003-x.
[32] N. Deo, “World Wide Web : A Graph-Theoretic Perspective,” Small, no. March, 2001.
[33] R. Meusel, S. Vigna, O. Lehmberg, and C. Bizer, “Graph structure in the web - Revisited :
Or a trick of the heavy tail,” WWW 2014 Companion - Proc. 23rd Int. Conf. World Wide
Web, pp. 427–432, 2014, doi: 10.1145/2567948.2576928.
[34] A. Alsum and M. L. Nelson, “ArcLink: Optimization techniques to build and retrieve the
temporal web graph,” Proc. ACM/IEEE Jt. Conf. Digit. Libr., pp. 377–378, 2013, doi:
10.1145/2467696.2467751.
[35] A. Broder et al., “Graph structure in the Web,” Struct. Dyn. Networks, vol.
9781400841356, pp. 183–194, 2011, doi: 10.1145/2615569.2615674.
[37] R. Kumar and A. Tomkins, “Stochastic models for the web graph 1 Introduction,”
Defense.
[39] R. Blanco and C. Lioma, “Graph-based term weighting for information retrieval,” Inf.
Retr. Boston., vol. 15, no. 1, pp. 54–92, 2012, doi: 10.1007/s10791-011-9172-x.
[40] H. Rong, T. Ma, M. Tang, and J. Cao, “A novel subgraph K+-isomorphism method in
social network based on graph similarity detection,” Soft Comput., vol. 22, no. 8, pp.
[42] H. Wang, H. He, and W. Zhang, “Demadroid: Object Reference Graph-Based Malware
Detection in Android,” Secur. Commun. Networks, vol. 2018, 2018, doi:
10.1155/2018/7064131.
[43] K. Gouda and M. Hassaan, “A fast algorithm for subgraph search problem,” 2012 8th Int.
Conf. Informatics Syst. INFOS 2012, 2012.
[44] J. R. Ullmann, “An Algorithm for Subgraph Isomorphism,” J. ACM, vol. 23, no. 1, pp.
31–42, 1976, doi: 10.1145/321921.321925.
[45] J. Bai, Q. Shi, and S. Mu, “A malware and variant detection method using function call
graph isomorphism,” Secur. Commun. Networks, vol. 2019, no. 1, 2019, doi:
10.1155/2019/1043794.
[47] H. Bunke, “Recent developments in graph matching,” Proc. - Int. Conf. Pattern Recognit.,
vol. 2, pp. 117–124, 2000, doi: 10.1109/ICPR.2000.906030.
[48] H. Bunke, “On a relation between graph edit distance and maximum common subgraph,”
Pattern Recognit. Lett., vol. 18, no. 8, pp. 689–694, 1997, doi: 10.1016/S0167-
8655(97)00060-3.
[49] X. Gao, B. Xiao, D. Tao, and X. Li, “A survey of graph edit distance,” Pattern Anal.
Appl., vol. 13, no. 1, pp. 113–129, 2010, doi: 10.1007/s10044-008-0141-y.
[54] M. Jamali, H. Sayyadi, B. B. Hariri, and H. Abolhassani, “A method for focused crawling
using combination of link structure and content similarity,” Proc. - 2006 IEEE/WIC/ACM
Int. Conf. Web Intell. (WI 2006 Main Conf. Proceedings), WI’06, pp. 753–756, 2006, doi:
10.1109/WI.2006.19.
[55] Y. Du, W. Liu, X. Lv, and G. Peng, “An improved focused crawler based on Semantic
Similarity Vector Space Model,” Appl. Soft Comput. J., vol. 36, pp. 392–407, 2015, doi:
10.1016/j.asoc.2015.07.026.