Vous êtes sur la page 1sur 88

DEDICACES

Mes Parents

Mon frère et mes sœurs

NGNINTEDEM TEUKENG Jim Carlson ii Master Sled : 2019-2020


REMERCIEMENTS
Ce mémoire de Master Recherche est le fruit de l’aide de plusieurs personnes qui ont
permis que ce travail s’accomplisse dans les conditions idéales. Que ceux dont les noms n’y
figurent pas ne m’en tiennent pas rigueur. Je ne saurais commencer à remercier tout ce monde
sans rendre Grâce à DIEU TOUT PUISSANT maître des temps et des circonstances pour la vie,
la santé, le courage et la persévérance qu’il a bien voulu m’accorder durant ce parcours.
Je tiens ici à remercier :
- Mon superviseur de ce travail, DAMAKOUA Irepran et mon encadreur, Dr. Ing.
TCHAKOUNTE Franklin. Merci pour votre disponibilité et vos investissements et surtout vos
conseils judicieux, qui ont contribué à alimenter ma réflexion.
- Tous les membres de jury de me faire l’honneur de participer à mon jury.
- J’adresse mes sincères remerciements à tous les professeurs, intervenants de l’Université
de Ngaoundéré en particulier de la Faculté des Sciences car ils ont largement contribué à
l’édification de mon profil pour la carrière que j’espère bâtir dans le domaine
Informatique.
- Ma grande famille qui m’a toujours soutenu et encadré pour que j’aille de l’avant
particulièrement mes parents, mes frères et sœurs que je ne saurais leur dire un immense
merci, pour leur patience et grande compréhension.
- Mes amis et Frères de la ville de Ngaoundéré pour leur solidarité et leur soutien.
- À mes camarades de la promotion 2015-2020 que j’ai servis avec humilité et avec
lesquelles j’ai passé une scolarité exceptionnelle, riche d’enseignements, et d’expériences
de rencontres, je veux ici dire ma sincère amitié
- Tous les membres de l’équipe « Cyber Security with Computational and Artifcial
Intelligence (CyComAi) » dirigée par Dr. Ing. TCHAKOUNTE Franklin pour leur
encouragement et leur soutient tout au long de ce travail.
- Enfin, que toutes les personnes qui ont permis que ce travail voie le jour soient assurées
de ma profonde reconnaissance.

NGNINTEDEM TEUKENG Jim Carlson iii Master Sled : 2019-2020


TABLE DES MATIÈRES
DEDICACES....................................................................................................................................i

REMERCIEMENTS.......................................................................................................................ii

LISTE DES TABLEAUX..............................................................................................................iv

LISTES DES FIGURES..................................................................................................................v

LISTES DES ALGORITHMES.....................................................................................................vi

LISTES DES ABREVIATIONS...................................................................................................vii

RESUME......................................................................................................................................viii

ABSTRACT...................................................................................................................................ix

INTRODUCTION GENERALE.....................................................................................................1

1 GENERALITE SUR LE WEB CRAWLING..........................................................................4

1.1 Le web crawling................................................................................................................4

1.1.1 Définition...................................................................................................................4

1.1.2 Principe de base d’un crawler....................................................................................6

1.1.3 Quelques Caractéristiques des crawler......................................................................8

1.1.4 Classification des web crawler................................................................................10

1.2 Evaluation de similarité dans le processus de crawling..................................................14

1.3 Limites et contribution....................................................................................................30

2 MISE EN ŒUVRE DE L’APPROCHE PROPOSEE............................................................31

2.1 Choix de l’URL de départ...............................................................................................34

2.2 Exploration de l’URL et détection des doublons............................................................35

2.3 Extraction et Prétraitement du contenu de la page..........................................................37

2.3.1 Noise Removal ou élimination du bruit...................................................................39

2.3.2 Tokenisation............................................................................................................39

2.3.3 Normalisation..........................................................................................................40

NGNINTEDEM TEUKENG Jim Carlson iv Master Sled : 2019-2020


2.4 Transformations en graphe et recherche du plus grand sous graphes commun..............42

2.5 Évaluations de la similarité.............................................................................................45

2.6 Stockages........................................................................................................................46

2.7 Interface de présentation.................................................................................................47

3 EXPERIMENTATION ET RESULTATS.............................................................................48

3.1 Cadre expérimentale.......................................................................................................48

3.1.1 Partie matérielle.......................................................................................................49

3.1.2 Partie logicielle........................................................................................................49

3.2 Comparaison de deux modèles de calcul de similarité...................................................49

3.3 Résultats..........................................................................................................................51

3.4 Analyse et interprétation des résultats............................................................................57

3.5 Application de la fouille pour le Phishing......................................................................60

3.5.1 Définition: Ingénierie Social et phishing.................................................................60

3.5.2 Méthodologie d’une attaque par phishing...............................................................61

3.5.3 Les types d’attaques de phishing.............................................................................63

3.5.4 Implémentation d’un crawler pour créer une base de connaissance pour le phishing
65

CONCLUSION ET PERSPECTIVES..........................................................................................68

ANNEXE I : CODE SOURCE PYTHON.....................................................................................70

BIBLIOGRAPHIE.........................................................................................................................71

NGNINTEDEM TEUKENG Jim Carlson v Master Sled : 2019-2020


LISTE DES TABLEAUX

Table 1.1 : Comparaison VF2 et Ullmann's [46]..........................................................................28


Table 2.1 : Https://trafilatura.readthedocs.io/ trafilatura evaluation resultats(2020-11-06).........38
Table 3.1 : Test 1...........................................................................................................................51
Table 3.2 : Test2............................................................................................................................52
Table 3.3 : Test3............................................................................................................................53
Table 3.4 : Consommation en temps et similarité moyenne.........................................................54
Table 3.5 : Evaluation de la precision...........................................................................................57
Table 3.6 : Quelques attaques de phishing....................................................................................63

NGNINTEDEM TEUKENG Jim Carlson vi Master Sled : 2019-2020


LISTES DES FIGURES

Figure 1.1 : Architecture générale d’un Crawler [4]......................................................................8


Figure 1.2 : Architecture Focused Web crawler [18]...................................................................14
Figure 2.1 : Architecture du modèle proposé...............................................................................34
Figure 2.2 : Choix de l’URL de départ.........................................................................................35
Figure 2.3: Exploration de l’URL et détection des doublons.......................................................37
Figure 3.1 : Harvest Rate..............................................................................................................58
Figure 3.2 : Consommation en temps...........................................................................................59
Figure 3.3 : Processus d'une attaque par phishing........................................................................62
Figure 3.4 : Architecture du système............................................................................................66

NGNINTEDEM TEUKENG Jim Carlson vii Master Sled : 2019-2020


LISTES DES ALGORITHMES

Algorithme 1.1 : Algorithme de Ullmann....................................................................................25


Algorithme 1.2 : Algorithme VF2................................................................................................27
Algorithme 1.3 : Algorithme simplifié VF2.................................................................................28
Algorithme 2.1 : Extraction et prétraitement................................................................................42
Algorithme 2.2 : Génération du graphe........................................................................................43
Algorithme 2.3 : Génération plus grand commun sous graphe....................................................44
Algorithme 2.4 : Algorithme ISMAGS........................................................................................45
Algorithme 2.5 : Calcul de similarité...........................................................................................46

NGNINTEDEM TEUKENG Jim Carlson viii Master Sled : 2019-2020


LISTES DES ABREVIATIONS

BFS Breath First Search

DC Distributed Crawler

DNS Domaine Name Service

FIFO First In First Out

HTTP Hypertext Transfer Protocol

IC Incremental Crawler

IOT Internet of Things

IP Internet Protocol

ISMAGS Index Based Matching Algorithm with General Symmetries

TC Traditional Crawler

TCP Transfer Control Protocol

TF-IDF Term Frequency Inverse Document Frequency

URL Uniform Resource Locator

URLS Uniform Resource Locator

VSM Vector Support Model

NGNINTEDEM TEUKENG Jim Carlson ix Master Sled : 2019-2020


RESUME
Le web dans son entièreté continue de croitre à un rythme effréné, c’est ainsi qu’extraire
l’information sur un sujet en particulier ne cesse de prendre de l’importance ce qui pose un
problème lorsqu’on parle de crawler traditionnel et de moteur de recherche. Le but d’un crawler
orienté est de sélectivement chercher les pages ayant un rapport avec un mot clé donné. Au lieu
de collecter et indexer tous les documents sur le web pour pouvoir être capable de répondre à
toute sortes de requête, un crawler orienté analyse les URLS autour de lui et se dirige vers celle
qui lui semble les plus pertinente a son exploration et évite les liens renvoyant au document non
pertinent. Ce qui permet ainsi d’économiser de façon significative les ressources physiques aussi
bien que les ressources du réseau et ainsi permet de maintenir le processus d’exploration le plus à
jour possible. Dans de nombreuses études, le modèle d'espace vectoriel (VSM) tire parti du Tf-
idf et de la similitude cosinus pour calculer les similitudes entre les pages Web et le sujet donné.
Cependant, la modélisation sous forme de vecteurs à ce défaut de ne pas pouvoir tenir compte de
l’ordre d’apparition des termes dans le document mais a également la particularité d’ignorer la
proximité et les connexions entre les termes. Pour résoudre ces problèmes, cet article propose un
modèle de recherche amélioré, le modèle basé sur les graphes isomorphes, qui étant donné deux
documents évaluent les similarités entre elles en cherchant le plus grands sous graphes commun
entre les deux. Les résultats expérimentaux démontrent que cette approche a une meilleure
précision que les approches existantes et améliore les performances au travers de sa capacité à
s’orienté vers les contenus les plus pertinents tout en ayant une consommation en temps et en
espace raisonnable. En conclusion, cette méthode est significative et efficace pour les crawler
orienté.

Mots-clés : Recherche d’information, Similarité de graphes, Isomorphisme, crawling


web, Hameçonnage, ingénierie sociale.

NGNINTEDEM TEUKENG Jim Carlson x Master Sled : 2019-2020


ABSTRACT

The web as a whole continues to grow at a breakneck pace, so extracting information on a


particular subject continues to gain importance which is a problem when it comes to traditional
crawling and search engine. The goal of an oriented crawler is to selectively search for pages that
relate to a given keyword. Instead of collecting and indexing all documents available on the web
to be able to respond to all kinds of requests, an oriented crawler analyzes the URLS around him
and goes to the one that seems most relevant to his exploration and avoids links referring to the
irrelevant document. This significantly saves physical resources as well as network resources and
thus keeps the exploration process as up to date as possible. In many studies, the vector space
model (VSM) takes advantage of the Tf-idf and cosine similarity to calculate the similarities
between web pages and the given subject. However, modeling in the form of vectors has this
issue of not being able to take into account the order of appearance of the terms in the document
but also has the particularity of ignoring the proximity and the connections between the terms.
To solve these problems, this article proposes an improved search model, the model based on
isomorphic graphs, which given two documents evaluate the similarities between them by
looking for the largest common subgraph between the two. The experimental results show that
this approach has better precision than existing approaches and improves performance through
its ability to focus on the most relevant content while consuming reasonable time and space. In
conclusion, this method is significant and efficient for oriented crawlers

Keywords: Information search, graph similarity, isomorphism, web crawling, phishing,


social engineering.

NGNINTEDEM TEUKENG Jim Carlson xi Master Sled : 2019-2020


INTRODUCTION GENERALE

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.

Aujourd’hui, Les entreprises évoluent dans un environnement de plus en plus complexe.


Avec le succès de la numérisation, l'avènement d'Internet, le web représente un réservoir de
données colossal qui continue de croître chaque jour, et l'émergence des objets connectés, les
entreprises sont entrées dans l'air du Big Data. Elles sont inondées d'informations en tous
genres. Ce flot sans cesse croissant d’information a donné lieu à l’apparition de nouveau champs
de recherche tels que la fouille de données afin de permettre d’organiser et de mieux comprendre
ce vaste flux de données. La fouille de données sur le web ou Data Mining pour les anglo-saxons
a pour objet l’extraction de connaissances ou d’informations de grands jeux de données dans une
perspectives d’aide à la décision. Cependant malgré sa richesse, son évolvabilité et sa capacité
d’adaptation au fils des années la conception et la mise en œuvre d'outils efficaces, permettant
notamment à l'utilisateur de n'avoir accès qu'à l'information qu'il juge pertinente, devient une
nécessité absolue.

NGNINTEDEM TEUKENG Jim Carlson 1 Master Sled : 2019-2020


PROBLEMATIQUE
Avec les moteurs de recherche qui deviennent le moyen principal d’acquisition du
contenu web, les modules d’indexation de contenu appelés Crawler n’ont plus juste pour but de
retrouver le contenu, mais de fournir des métriques de mesure de pertinence de chaque page
indépendamment de l’appréciation des utilisateurs, permettant ainsi au moteur de recherche de
classer les résultats des requêtes par ordre d’importance. Les approches traditionnelles de
recherche d’information sur les pages web sont depuis plusieurs années dominées par des
méthodes basées sur des vecteurs prenant comme critère principal l’indépendance et la fréquence
d’apparition des mots dans les documents pour la sélection des caractéristiques et l’évaluation
des similarités entre les documents. Cependant malgré leur succès, ces techniques ont tendance à
ignorer l’ordre des mots dans le texte et leurs distance (position) dans le document. Pouvant
ainsi affaiblir le rendement de la métrique de mesure utilisée. Nous proposons une méthode
alternative de représentation basée sur les graphes isomorphes afin de challenger l’indépendance
des mots prônée en tenant compte cette fois ci de l’ordre et la distance des mots au travers d’un
graphe.

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.

NGNINTEDEM TEUKENG Jim Carlson 3 Master Sled : 2019-2020


CHAPITRE 1

1 GENERALITE SUR LE WEB CRAWLING

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 Le web crawling

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.

NGNINTEDEM TEUKENG Jim Carlson 4 Master Sled : 2019-2020


D’après [Olston,2010] la raison d’être des web crawler repose sur le fait que, le web ne
représente pas un répertoire d’informations centralisées mais au contraire est constitué de
centaines de milliers de fournisseurs indépendants de contenus web, chacun fournissant un
service lui étant propre, et plusieurs d’entre eux compétissent entre eux afin de fournir les
meilleurs contenus. En d’autres mots le web peut être vu comme un répertoire d’informations
fédérées, qui tiennent ensemble grâce à un ensemble de protocoles et format de fichier tels que le
TCP, le DNS, http, HTML et le Protocol d’exclusion robot.

Le crawler parcourt donc en permanence, de façon autonome et automatique, les


différents sites et pages web à la recherche de nouveaux contenus ou de mises à jour en se
référant au contenu exploré dans le passé. Derrière cette activité d’exploration, il possède
également la mission d’indexer les pages web en fonction de la qualité des contenus et des
paramètres d’évaluation qui auront été définis en amont. Les crawler peuvent être programmés
pour parcourir le web avec des objectifs déterminés. Ils sont actifs en permanence et visitent les
pages selon les instructions qui leur ont été données. Lorsqu’un site Web spécifique est parcouru
par un moteur de recherche, le moteur de recherche lit le texte, les hyperliens et les méta balises
du site Web et utilise cette information pour créer un profil pour le site Web qui sera utilisé par
le moteur de recherche. Le moteur de recherche indexe et utilise ce profil de chaque site Web ou
page Web pour fournir des résultats de recherche en réponse à une requête de recherche. En
général, ce processus est réalisé en faisant correspondre les mots clés de la requête aux mots clés
des profils de chaque page Web ou site Web. Selon [Chauhan et al., 2017], l’extraction de
l’information est un processus de récupération et de présentation de divers objets de contenu
pertinents pour l’utilisateur à sa requête à partir d’une collection normalisée d’objets provenant
de différentes sources ou référentiels. Le Web est la meilleure ressource des processus de
recherche d’information, où différentes techniques sont utilisées pour donner l’information
exacte dont les utilisateurs ont besoin.

Dans [Olston,2010] les applications principales des explorateurs web sont :

 L’indexation sur le web;


 L’archivage sur le web;
 La fouille de données sur le web.

NGNINTEDEM TEUKENG Jim Carlson 5 Master Sled : 2019-2020


Cependant, plusieurs recherches sur les techniques et les algorithmes de web crawling
restent secrètes et ne sont montrées au grand public, ceci dû à leur implémentation à but
économique.

1.1.2 Principe de base d’un crawler

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.

Les crawler font entrer en jeu principalement un ordonnanceur ou scheduler, un


téléchargeur ou downloader et une queue. Scheduler aura pour objectif de fournir les Seed
URLS au downloader qui a son tour va rechercher les informations sur internet relativement aux
pages. Une fois trouvées, il enverra ses informations à l’extracteur. L’extracteur a pour but, en
fonction des stratégies mise en place, d’obtenir les informations et les prochaines URL qu’il va
placer dans la queue. La queue effectuera donc un tri et un filtrage des URLS et va se positionner
à l’attente de l’appel du scheduler.

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

NGNINTEDEM TEUKENG Jim Carlson 6 Master Sled : 2019-2020


éléments far d’un crawler ; de ce fait on distingue deux types de queues à savoir les queues
normales et les queues avec priorité. Les queues normales, fonctionnent selon le paradigme
appelé FIFO (First in First Out c’est-à-dire la première URL insérer dans la queue correspondra à
la première a en sortir) pour choisir la prochaine URL a crawler tandis que, les queue avec
priorité, procèdent à un calcul de priorité ( le calcul de priorité évalué sous forme de score selon
un ensemble de critères bien définis à l’instar de la présence d’un mot clé dans l’URL, la
pertinence de la page, son contenu ou parfois même au travers de l’analyse du lien de la page)

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.

NGNINTEDEM TEUKENG Jim Carlson 7 Master Sled : 2019-2020


Les pages web extraites sont Stockées et indexées dans une zone de stockage bien
organisée. C’est donc au travers de ces indexes qu’ils pourront les extraire ou les récupérer si
besoin est. L’unité de stockage quant à elle est une entité chargée de sauvegarder les résultats du
processus d’exploration. Ces résultats pouvant être sous forme textuelles, de ressources
multimédia, de métadonnées etc. Ces derniers souvent conservés sous des fichiers ou dans une
base de données stockée dans le disque dur de l’ordinateur sur lequel tourne le Crawler.

Figure 1.1 : Architecture générale d’un Crawler [4]

1.1.3 Quelques caractéristiques des crawler

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 ;

NGNINTEDEM TEUKENG Jim Carlson 8 Master Sled : 2019-2020


 Efficience et performance : un crawler qui visite un page web pour la première fois
aura tendance à télécharger toutes les pages qu’il trouvera, initialisant ainsi une utilisation
efficiente des ressources à savoir le processeur, la mémoire et la bande passante ;
 Exclus le contenu (Excluded content) : le fichier Robot.txt a besoin d’être a lu avant de
commencer à extraire les pages web d’un site ainsi il pourra déterminer si le concepteur
du site a spécifié le nombre de page qui peuvent être crawler [Singh Ahuja [9]] ;
 Robuste : le web étant constitué à la fois de contenu statique et dynamique, ainsi donc,
un crawler doit aussi bien être compatible avec des pages statiques que celle dynamique ;
 Qualité : un web crawler doit donner priorité pour l’obtention de pages de grande qualité
satisfaisant les besoins de l’utilisateurs et également améliorer le ciblage et la précision
de l’obtention de ses pages toute en réduisant celle d’acquisition d’autre pages ;
 Fraicheur : les données disponibles dans les moteurs de recherche doivent être toujours
des plus récentes et a jour. Le crawler devra donc être capable de mettre à jour de façon
indépendantes ces données en fonction de leur fréquence de changement [Yu,2020 [4]];
 Politness : le crawler doit être conçu de telle façon à respecter les politiques du serveur.
Ces politiques ayant pour objectif de réguler quelle page peut ou ne peut être crawler
mais aussi la fréquence de visite de ce dernier ;
 Contenu Dupliqué (Duplicate content) : Un crawler doit être capable de reconnaitre et
d’éliminer des données dupliquées sur différentes URLS. Il s’agit par exemple du
Checksum, fingerprint qui pourront être utilisés à cette fin ;
 Extensibilité : les crawler doivent être conçus dans une architecture modulable c’est-à-
dire, ils doivent être capables de s’adapter au nouveau format de données et Protocol
d’acquisition [Yu,2020 [5]].

1.1.4 Classification des web crawler

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.

NGNINTEDEM TEUKENG Jim Carlson 9 Master Sled : 2019-2020


1.1.4.1 Generic web Crawler
Encore connus sous le nom de Traditional Crawlers, les crawlers traditionnels ont pour
but de parcourir tous les documents et liens en relation avec un sujet sur le web. Un generic
crawler extrait un grand nombre de pages provenant de diverses sources du web. Ce type de
crawler aura tendance à visiter autant de page que possible ; c’est dans ce sens que leur approche
est considérée comme aveugle et exhaustive [16]. Ainsi pour pouvoir trouver et stocker ses
données, un generic crawler doit être lancer pendant un temps assez long et consomment
énormément de ressources de stockage. Par exemple Google’s page Rank algorithm renvoie plus
de 25 milliards de documents relativement à un critère de recherche [D. Austin, 2017]

1.1.4.2 Incrémental crawler


Ce sont des crawler qui ont pour principal objet de parcourir le web à la recherche de
contenus des plus récents afin de mettre à jour leur base de données. La principale différence
entre les IC et les TC repose sur leurs stratégies de recherche. Pour les TC crawler après avoir
traversé le contenu du web, il a besoin de le mettre à jour et pour cela il effectue une nouvelle
traversée du réseau relativement à la traversée passée, et là, il va remplacer l’ancien contenu avec
le nouveau qu’il aura trouvé. Tandis que les IC ont adopté un nouveau mécanisme afin de mettre
à jour les données ; ils marquent premièrement la collection de données existantes, ensuite lors
des mises à jour ils ne cherchent que les données des pages obsolètes grâce au marquage
d’informations sur les données existantes et après il remplace les pages anciennes avec les
nouvelles. Ainsi ce type de crawler améliore grandement l’efficience, réduit l’espace de stockage
et la fréquence de mise à jour de données.

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.

1.1.4.3 Distributed Web Crawler 


Ce sont des crawler qui tournent sur un groupe d’ordinateurs, ou chacun d’entre eux
correspond à un focused crawler. L’un des problèmes majeurs des DC est la gestion des

NGNINTEDEM TEUKENG Jim Carlson 10 Master Sled : 2019-2020


communications et la coordination entre les différentes machines. Les DC peuvent être
subdiviser en trois types :

 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.

1.1.4.4 Parallel Crawler 


Il est né de la difficulté pour un seul crawler process à parcourir l’entièreté du web. Afin
de palier à ce problème, le crawler process doit être parallèle afin de s’exécuter dans un temps
relativement court. Les parallèles Crawler peuvent être distribués ou embarqués. Les Parallèles
distributed crawler peuvent communiquer au travers d’un réseau local ou d’un WAN. Les
parallèles crawler ont pour avantages d’améliorer le Harvest rate et également de créer moins de
surcharge de bandes passantes sur le réseau. Malgré les soucis probables lors du téléchargement
des contenus parcourus, il existe quelques méthodes afin de réduire ces couts à savoir par
exemple la compression et la Somatisation.

1.1.4.5 IOT Web crawler


L’avènement de l’internet of things a été porteur de nouveau challenges dans plusieurs
domaines de l’informatique mais également dans l’extraction de données. Et c’est dans cette
optique que les IOT web crawler ont vu le jour. Ils s’appuient sur les protocoles communément
utilisés pour l’accès au capteur ou objets connectés tels que le Protocol http et FTP. Comme

NGNINTEDEM TEUKENG Jim Carlson 11 Master Sled : 2019-2020


exemple on a Shodan qui est un crawler qui connecte les informations sur les objets connectés en
s’appuyant sur l’exploitation des ports tels que http, FTP, SSH, Telnet SNMP, SIP, RTSP ;
shodan crawler connecte des métadonnées relativement aux objets connectés.

1.1.4.6 Focused web crawler


Premièrement introduit Filippo Menczer et par Soumen Chakrabarti et al [Wikipédia], les
web crawler ont été énormément étudié depuis les années 90 car ils sont l’un des composant
essentiel des moteurs de recherche. Plusieurs études se sont focalisées sur les méthodes pour
prédire la pertinence d’une page web pour un sujet donné avant de le télécharger dans une base
de données locale. C’est pour cette raison que les focusse crawler sont également appelé Topical
Crawler.

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]].

Ce type de méthodes est principalement classé sous deux catégories : content-based et


link-based [5] ; la catégorie content based s’appuie sur les techniques de text mining et
l’extraction de mots de mots clés pour déterminer si le contenu d’une page web appartient à un
domaine spécifique. La deuxième catégorie exploite la structure des liens dans une page web
pour déduire les informations de la pages web. Le anchor text, qui est le mot ou la phrase qui
pointe (hyperliens, redirige) vers la page cible, il s’avérais être utile dans cette tache car il
contient généralement la description de la page. Cette méthode utilise soit le anchor text ou le
texte à côté de celui-ci pour prédire le contenu de la page cible.

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

NGNINTEDEM TEUKENG Jim Carlson 12 Master Sled : 2019-2020


compte dans le processus de crawling ceci dans le but de maintenir une grande précision sur la
qualité de page web obtenue.

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]].

Figure 1.2 : Architecture Focused Web crawler [18]

1.2 Evaluation de similarité dans le processus de crawling

NGNINTEDEM TEUKENG Jim Carlson 13 Master Sled : 2019-2020


Le web, de plusieurs manières, simule un réseau social, car les liens ne pointent pas de façon
hasardeuse, ils ne sont pas sans signification. Chaque lien dénote une relation sémantique entre
les pages. Ainsi donc le crawler se base sur ses liens afin d’extraire de façon effective les pages
en corrélation. Ceci pouvant être fait de deux façon [19] :

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.

1.2.1.1 Les approches basées sur les vecteurs

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.

1.2.1.1.1 Modèle de représentation de documents

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

NGNINTEDEM TEUKENG Jim Carlson 14 Master Sled : 2019-2020


terme ti dans le document dj. L’ensemble T est généralement appelé vocabulaire ou dictionnaire.
Ainsi donc les variations entre les diverses approches se situent :

 La méthode utilisée pour définir un terme ;


 La méthode utilisée pour calculer le poids des termes.

De ce fait on distingue donc :

Bags-of-words

Le bag-of-Word est largement utilisé dans l’extraction d’informations et le text mining


[Huang 2008 [21]] dans ce processus les mots sont indépendants. On considère qu’un document
peut être décrit au moyen d'un dictionnaire (de « mots »). Dans sa version la plus simple, un
document particulier est représenté par l'histogramme des occurrences des mots le composant :
pour un document donné, chaque mot se voit affecté le nombre de fois qu'il apparaît dans le
document. Un document est donc représenté par un vecteur de la même taille que le dictionnaire,
dont la composante i indique le nombre d'occurrences du i -ème mot du dictionnaire dans le
document [23].

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.

Term Frequency Inversed Document Frequency (TF-IDF)

Le TF-IDF (de l'anglais term frequency-inverse document frequency) est une méthode de


pondération souvent utilisée en recherche d'information et en particulier dans la fouille de

NGNINTEDEM TEUKENG Jim Carlson 15 Master Sled : 2019-2020


textes[24]. Cette mesure statistique permet d'évaluer l'importance d'un terme contenu dans un
document, relativement à une collection ou un corpus. Le poids augmente proportionnellement
au nombre d'occurrences du mot dans le document. Il varie également en fonction de la
fréquence du mot dans le corpus. Etant donné que le Term Frequency représente la pertinence
d’un terme dans un document donné et que l’Inverse Document Frequency peut refléter le rôle
d’un terme par rapport à tous les documents d’un corpus, la combinaison des deux valeurs
permet de bien comprendre la fréquence réelle des termes et le potentiel de chaque terme pour
optimiser le texte existant [25]. Pour ce faire, il suffit de multiplier les deux valeurs entre elles,
ce qui donne la formule générale suivante pour l'analyse TF-IDF et la détermination d’une
fréquence de termes aussi exacte et utilisable que possible :

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.

1.2.1.1.2 Métrique de similarité

Du fait de l’existence de plusieurs métriques de similarité, il est impératif de pouvoir


qualifier la mesure qui va être utilisée comme métrique authentique en se basant sur les
conditions suivantes[28].

NGNINTEDEM TEUKENG Jim Carlson 16 Master Sled : 2019-2020


Soit X l’espace métrique, associée à la fonction de distance d qui associe une valeur
numérique à la quantité d(x,y) pour tout x, y ∈ X satisfaisant l’axiome
 d(x,y) ≥ 0 implique que la distance entre deux points doit être non négative et supérieure
ou égale à zéro.
 d(x,y) = 0 ⇔ x = y implique que la distance entre deux objets peut être égale à zéro si et
seulement si ses objets sont identiques.
 d(x,y) = d(y,x) implique que la distance entre deux points reste la même qu’importe le
point par lequel on mesure (principe de symétrie).
 d(x,y) + d(y,z) ≥ d(x,z) implique que la somme de deux distances doit être supérieure ou
égale à la longueur du coté restant (inégalité triangulaire)

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]

{0 lorsque d 1 et d 2 sont1 lorsque d 1 et d 2 sont similaires


'
disjoints , c est −à−dire totalement dissimilaires
Dice coefficient

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

Où Nc est le nombre de termes communs à d1 et d2 et N1 (respectivement N2) est le nombre de


termes de d1 (respectivement d2)
Similarité Cosinus (Cosine similarity)

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‖

NGNINTEDEM TEUKENG Jim Carlson 18 Master Sled : 2019-2020


La similarité Cosinus est fréquemment utilisée en tant que mesure de ressemblance entre
deux documents d1 et d2 [28]. Il s’agit de calculer le cosinus de l’angle entre les représentations
vectorielles des documents à comparer. La similarité obtenue SimCosinus (d1, d2) appartient
[0,1].

{0 lorsque d 1 et d 2 sont1 lorsque d 1 et d 2 sont similaires


'
disjoints , c est −à−dire totalement dissimilaires

1.2.1.2 Les approches basées sur les graphes

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.

1.2.1.2.1 Term Graph


Les travaux [39] propose une nouvelle approche pour évaluer la similarité des documents
basés sur les contenus textuels. Il s’appuie à cet effet sur une représentation des textes sous
formes de graphes où, les mots représentent les nœuds et les liens sont représentés par la co-
occurrence et les relations grammatical ; sont approches est décliné sous formes de 4 graphes
(TextRank, TextLink, PosRank, PosLink). Une fois le document représenté sous formes de
graphes les poids associé (co-occurrence, dépendance grammaticale) aux liens entre les mots du
document sont extrait. Les poids extraits sont utilisés afin d’évaluer la similarité d’un document
relativement à une requête. Les mesures utilisées sont le Average degree, Path length et le
clustering coefficient.

NGNINTEDEM TEUKENG Jim Carlson 19 Master Sled : 2019-2020


Pd
w(t,d) = log idf . log tw + Ψ
k + Pd

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é.

1.2.1.2.2 Graphe Isomorphe

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.

NGNINTEDEM TEUKENG Jim Carlson 20 Master Sled : 2019-2020


Définition : Soit G (S, E) un graphe ou S représente l’ensemble des sommets du graphe G et E
l’ensemble des arêtes de tel sorte que chaque arête a C (a inclus dans A) A connectent deux
sommets adjacent (S1, S2) C S. Un sous graphe induit G’ est un sous graphe de G ou toutes les
arêtes connectant les sommets S’dans G’ sont présent dans G. on dit que deux graphe G1(S1, E1)
et G2(S2, E2) sont isomorphes s’ils existent une bijection Ψ qui a fait correspondre les éléments
de E1 a ceux de E2 et vice versa.

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)

On définit le nombre maximal de sous graphes induits communs à G1 et G2 ou le


Maximum Common Induced Subgraph comme étant le plus large en termes d’arrêt du sous
graphe induit commun à G1 et G2.

Détection d’isomorphisme entre graphes

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.

[41] distingue plusieurs méthodes pour permettre de déterminer s’il existe un


isomorphisme entre deux graphes :

NGNINTEDEM TEUKENG Jim Carlson 21 Master Sled : 2019-2020


 Ullmann Algorithme

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.

L’algorithme marche en énumérant de façon systématique les matrices M possible d’une


part et de d’autre vérifie si elles encodent un isomorphisme [44]. On a donc :
Pour deux graphes G1 et G2 de matrice d’adjacence A=ai et B=bi. Respectivement, on
définit une matrice M’de taille a(rows) X b(columns) dont les éléments sont 1 ou 0 de tels sorte
que chaque ligne contient exactement un seul1 et aucune colonne ne contiennent plus d’un seul
1. Alors M’représente un isomorphisme entre G1 et un sous graphe de G2. Dans ce cas si m i , j=1
alors le j -ème point de G2 correspond au i -ème point de G1 dans ce morphisme.

m 0i j ¿ 1 si≤dégré du j−ième point de G β est supérieur ou égal au dégré du i−ème point de G α ,


{ ¿ 0 sinon

M [ i ] [ j]=1 Si le i -ème nœud de G1 peut être mapper avec le j -ème de G2.

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;

NGNINTEDEM TEUKENG Jim Carlson 22 Master Sled : 2019-2020


Output: Boolean: g’ is a subgraph of g;
if d > β then
return True
for each 1 ≤ k ≤ α satisfy F k = 0 do
if REFINE – CRITERION = false then
goto line-3;
H d : = k;
F k : = 1;
If UllmanAlgorithm (g’, g, H, F, d + 1) then
Return True /* Terminate */
F k : = 0;
return False
Algorithme 1.1 : Algorithme de Ullmann

 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

NGNINTEDEM TEUKENG Jim Carlson 23 Master Sled : 2019-2020


correspondance trouvée. En d’autres termes pour trouver tous les mapping on doit conserver
chaque état contenant des pairs ayant passé le test de faisabilité (feasability check). Pour [42] Il
existe 5 règles de faisabilité auxquelles chaque paire candidate doit adhérer afin d’être incluse
dans l’ensemble des paires correspondantes (matched set of pairs).

Algorithme : VF2
Input : G1(V1, E1) et G2(V2, E2)
Output: set de matching entre G1 et G2

initialize the state S0

call match (S0)

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

check (feasibility (node1, node2))


Predecessor rule ()
Successor rule ()
In node rule ()
Out node rule ()

NGNINTEDEM TEUKENG Jim Carlson 24 Master Sled : 2019-2020


New nodes rule ()

Algorithme 1.2 : Algorithme VF2

Complexité :

Le tableau suivant représente une évaluation des algorithmes de détection d’isomorphisme


proposé respectivement par Cordella (VF2) et Ullmann.

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)

Table 1.1 : Comparaison VF2 et Ullmann's [46]

Isomorphisme de graphe et évaluation de similarité

 Le graph Edit Distance (GED)

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

NGNINTEDEM TEUKENG Jim Carlson 25 Master Sled : 2019-2020


k
GED = min (e 1 … ek ¿ ∈ γ (G 1 ,G 2) ∑ C (e i)
1

Où C dénote le coût engendré par une opération e i et γ (G 1 ,G 2) dénotent l’ensemble des


modifications pour transformer G1 en G2.

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.

 Une métrique basée sur le MCS

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 :

Pour tous graphes G1, G 2 et G 3, les propriétés suivantes sont vraies :

1) 0 ≤ d(G1, G 2) ≤ 1.

2) d(G1, G 2) = 0 ⇔ G1 et G 2 sont isomorphiques l’un à l’autre.

3) d(G1, G 2) = d(G 2, G1).


4) d(G1, G 3 ≤ d(G1, G 2) + d(G 2, G 3).

1.3 Limites et contribution

Malgré les progrès dans l’extraction et l’exploration de l’information, la majorité des


approches mises en exergue sont généralement basées sur les SVM. Cette approche a la

NGNINTEDEM TEUKENG Jim Carlson 26 Master Sled : 2019-2020


particularité d’ignorer la proximité et les connexions entre les termes. Les approches
susmentionnées ont donc la particularité d’utiliser une indépendance entre les termes afin de
produire leurs features. Cette représentation peut être donc considérée comme incomplète. Par
exemple deux documents contenant un nombre de termes donc la fréquence d’apparition est
similaire serons contextuellement différents lorsque la distribution spatiale des termes est
différente. Par exemple, les mots école, ordinateurs, science signifient différentes choses
lorsqu’ils apparaissent dans différentes parties d’un document ce qui n’est pas le cas lorsqu’on
les retrouve ensemble dans une phrase telle que « école de science de l’informatique ». Ainsi
donc, l’utilisation d’une méthode basée sur les vecteurs construit à partir de la fréquence
d’apparition des termes dans un document ne semble pas être la meilleure méthode si l’on
souhaite prendre en compte le contexte d’apparition, la distribution spatiale des termes ainsi que
leur interconnexion. Afin de pouvoir palier au problème mentionné et améliorer la qualité des
crawler dans le processus de fouille, nous avons introduit dans ce travail une approche basée sur
la représentation des documents sous formes de graphes et également mis en avant la notions
d’isomorphismes pour le calcul de similarités.

En guise de conclusion à ce chapitre théorique, nous avons tenté de donner un panorama


d’approches existantes dans le processus d’évaluation de similarité. On se rend compte que dans
le processus, ce sont les méthodes basées sur les vecteurs qui dominent. Mais cependant, bien
qu’étant prisée, ces méthodes possèdent des limites. C’est donc dans ce sens, que la notion de
graphes isomorphes à été présenté afin de combler les manques des méthodes basées sur les
vecteurs.

NGNINTEDEM TEUKENG Jim Carlson 27 Master Sled : 2019-2020


CHAPITRE 2

2 MISE EN ŒUVRE DE L’APPROCHE


PROPOSEE

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.

NGNINTEDEM TEUKENG Jim Carlson 28 Master Sled : 2019-2020


 Un modèle mathématique est choisi pour mesurer les similarités

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 :

 Choix des URLS de départs basés sur un mot clé ;


 Explorer l’URL de départ et extraire tous les liens de cette page qui seront eux aussi
parcourus ;
 Détection de doublons d’URL c’est-à-dire évité qu’une URL ne soit parcourue plus d’une
fois ;
 Récupération du contenu des URL parcourues ;
 Prétraitement du contenu récupéré ;
 Transformation du contenu sous forme de graphe de mots
 Recherche du plus grand sous graphes commun entre le contenu de l’URL actuel avec les
URLS de départs ;
 Evaluation et test de la similarité obtenu par rapport à la valeur seuil ;
 Stockage du contenu pertinent en mémoire ;
 Proposer une interface de présentation des résultats de recherche ;

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

NGNINTEDEM TEUKENG Jim Carlson 29 Master Sled : 2019-2020


résultats de recherche sont ensuite sélectionnées et envoyées à la file d’attente ; ses URLS sont
sélectionnées comme entrée initiale pour le téléchargeur. Le downloadeur demande la page web
associée à l’URL sur le web et reçoit en réponse les données correspondantes sous forme d’un
document HTML. Ensuite, il va extraire toutes les URLS du document et extraire le contenu
principal de la page. Les URLS extraites passent par un détecteur de doublons qui se rassure que
les URLS qui traverserons cette composante ne soient pas en double. Une fois cette vérification
faite, le contenu correspondant à l’URL est extrait et prétraité et transformé sous forme de
graphe. Le contenu ainsi transformé est comparé avec le contenu des URLS renvoyé par le
moteur de recherche. La similarité résultante nait de l’extraction du plus grand sous graphe
commun de contenu entre l’URL en cours et ceux renvoyer par le moteur de recherche. Une fois
la valeur de similarité obtenue, dépendamment de la valeur seuil choisie, l’URL est insérée dans
la fille d’attente et organisée en fonction des priorités. Les contenus correspondants aux URL
désignés comme pertinentes sont stockés dans la composante stockage qui est généralement une
base de données ou un entrepôt de données. Le processus ci-dessus est répété avec l’URL suivant
de la fille d’attente, qui est celle dont la valeur de priorité est la plus grande. Une fois la file
d’attente vide ou que le nombre d’URLS visité atteint une certaine valeur limite, la tâche
d’exploration en cours se termine. Les données explorées et enregistrées dans le stockage
peuvent être demandées par l’utilisateur final et ainsi donc sera présenté par le module Interface
utilisateur. La méthodologie de recherche employée fait suite à plusieurs niveaux : le premier
concerne le Choix de l’URL de départ, le second l’Exploration de l’URL et détection des
doublons, le troisième Extraction et Prétraitement du contenu de la page, le quatrième le calcul
du plus grand sous graphes commun et enfin l’évaluation de similarité, le stockage et la
présentation. La section suivante fourni les détails sur chaque module.

NGNINTEDEM TEUKENG Jim Carlson 30 Master Sled : 2019-2020


Figure 2.3 : Architecture du modèle proposé

2.1 Choix de l’URL de départ

NGNINTEDEM TEUKENG Jim Carlson 31 Master Sled : 2019-2020


Dépendamment de ce que l’utilisateur souhaite, le choix de l’URL de départ est l’une des
tâches les plus importantes dans le processus, car la qualité de l’URL de départ influe sur la
qualité des résultats. En effet, certains outils de fouille de donnée s’appuient sur une sélection
aléatoire d’URL Tandis que d’autre utilisent les URLS renvoyé par les moteurs de recherche
après saisie d’un mot clé comme URLS de départ [11] comme dans notre cas par exemple. Ainsi
cette composante aura dont comme objectif de se rassurer de l’accessibilité, ensuite de charger
les URLS de départs dans la file d’attente des URLS à explorer. Une fois la composante placée
dans la file d’attente elle est transmise à la prochaine étape du processus d’exploration.

Figure 2.4 : Choix de l’URL de départ

2.2 Exploration de l’URL et détection des doublons

NGNINTEDEM TEUKENG Jim Carlson 32 Master Sled : 2019-2020


Une fois l’URL disponible c’est-à-dire que le statut de l’URL étant 200, l’exploration et
l’extraction des liens présents dans l’URL peut démarrer. L’URL d’entrée correspond dont a une
URL provenant de la file d’attente pouvant contenir plusieurs autres. Comme nous l’avons dit
plus haut, la file d’attente ou queue est une structure de données contenant l’ensemble des URLS
à explorer. Afin de pouvoir traiter et manipuler de façon effective le contenu d’une page web,
l’explorateur convertit le contenu HTML de la page en une structure arborescente appelé DOM
(Document Objet Model) en s’appuyant dans le cadre du développement logiciel que nous avons
employé pour le développement de notre projet dénommé BeautifullSoup. Lancé initialement en
2004 par Leonard Richardson, Beautiful Soup est un package Python pour analyser les
documents HTML et XML (y compris avoir un balisage malformé, c'est-à-dire des balises non
fermées, ainsi nommées d'après tag soup). Il crée un arbre d'analyse pour les pages analysées qui
peut être utilisé pour extraire des données de HTML, utile pour le scraping Web. Ainsi l’accès au
contenu ou valeur d’une balise consiste à définir l’attribut correspond à cette balise. Dans notre
cas par exemple, l’analyse de la valeur de l’attribut correspondant à la balise ‘’Href’’ nous
permet d’obtenir le lien de la page web. De ce fait on distingue :

 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

NGNINTEDEM TEUKENG Jim Carlson 33 Master Sled : 2019-2020


L’URL valide doit ensuite être testée si elle est interne ou externe au site web de départ.
Pour vérifier qu’une URL est interne ou externe, on vérifie si l’URL contient le nom de domaine
du site générale si tant est le cas le lien est considéré comme interne sinon il est pris comme
externe. Le résultat renvoyé par ce module est une liste d’URL interne au site de départ. Une fois
les URLS extraites, elles sont ensuite filtrées dans la liste d’attente afin de se rassurer qu’elles
n’y soient pas déjà présente ceci à travers la vérification de la valeur du ‘’drapeau’’ qui est 0
lorsque l’URL n’existe pas et 1 lorsqu’elle est déjà présente dans la file.

Figure 2.5: Exploration de l’URL et détection des doublons

2.3 Extraction et Prétraitement du contenu de la page

NGNINTEDEM TEUKENG Jim Carlson 34 Master Sled : 2019-2020


L’extraction du contenu est l’une des étapes les plus importantes dans le processus ; le
plus souvent elle consistera à extraire les éléments contenus dans les balises d’entête et dans le
corps du document HTML. Cependant notre approche basée sur la librairie python Trafilatura est
un package Python et un outil de ligne de commande qui télécharge, analyse et explore de
manière efficiente les données de la page Web : il peut extraire les métadonnées, le texte
principal et les commentaires tout en préservant des parties du formatage du texte et de la
structure de la page. La sortie peut être convertie en différents formats [51]. D’après [52], après
une évaluation des différentes approches d’extraction de contenu de la page web, Trafilatura a
obtenu les scores les plus intéressants (tableau 2). Une fois le contenu de la page web extrait, il
doit être nettoyer et traité pour les phases suivantes.la langue choisie étant l’anglais, 3 phases
retiennent notre attention dans ce processus à savoir :

Table 2.2 : Https://trafilatura.readthedocs.io/ trafilatura evaluation resultats (2020-11-06)

500 documents, 1487 text and 1496 boilerplate segments


Recal
Python Package Precision Accuracy F-Score Diff.
l
raw HTML 0.527 0.878 0.547 0.659 0
html2text 2020.1.16 0.488 0.714 0.484 0.580 8.9x
html_text 0.5.2 0.526 0.958 0.548 0.679 1.9x
inscriptis 1.1 (html to txt) 0.531 0.958 0.556 0.683 2.4x
justext 2.2.0 (tweaked) 0.870 0.584 0.749 0.699 6.1x
newspaper3k 0.2.8 0.921 0.574 0.763 0.708 12.9x
goose3 3.1.6 0.950 0.629 0.799 0.757 19.0x
boilerpy3 1.0.2 (article
0.851 0.696 0.788 0.766 4.8x
mode)
baseline (text markup) 0.746 0.804 0.766 0.774 1x
dragnet 2.0.4 0.906 0.689 0.810 0.783 3.1x
readability-lxml 0.8.1 0.917 0.716 0.826 0.804 5.9x
news-please 1.5.13 0.923 0.711 0.827 0.804 184x
trafilatura 0.6.0 0.924 0.849 0.890 0.885 3.9x

NGNINTEDEM TEUKENG Jim Carlson 35 Master Sled : 2019-2020


500 documents, 1487 text and 1496 boilerplate segments
Recal
Python Package Precision Accuracy F-Score Diff.
l
trafilatura 0.6.0 (+ fallbacks) 0.933 0.877 0.907 0.904 8.4x

2.3.1 Noise Removal ou élimination du bruit


L’élimination du bruit ou noise removal est une tache de normalisation de texte qui
consiste à éliminer les caractères et parties du texte pouvant interférer sur son analyse.
L’élimination du bruit est considérée comme l’une des étapes les plus important dans le
processus de prétraitement de texte [58].

Les tâches de nettoyage du texte sont entre autres :

 Suppression de l’entête et des pieds de pages,


 Suppression des métadonnées et des balises HTML, XML, etc. ;
 Extraction des informations pertinente des autres formats de fichier tel que
JSON ;

Dans notre processus de prétraitement, l’élimination du bruit sera faite au travers de la


librairies BeautifulSoup et des expressions régulières.

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

NGNINTEDEM TEUKENG Jim Carlson 36 Master Sled : 2019-2020


tokenisation afin de transformer nos contenu nettoyé sous forme de liste de mots ceci grâce aux
fonctions de la librairie NLTK (Natural Language Tools Kit), qui est une librairie python dotée
de nombreuses fonctions destinées au traitement du langage naturel.

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

Le processus de « lemmatisation » consiste à représenter les mots (ou « lemmes ») sous


leur forme canonique. Par exemple pour un verbe, ce sera son infinitif. Pour un nom, son
masculin singulier. L'idée étant encore une fois de ne conserver que le sens des mots utilisés
dans le corpus.

 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.

NGNINTEDEM TEUKENG Jim Carlson 37 Master Sled : 2019-2020


 Les autres tâches

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 :

 Rendre tous les caractères en minuscule,


 Retirer les chiffres ou les convertir en leurs représentations textuelles,
 Retirer les signes de ponctuation (généralement inclus dans la tokenisation),
 Retirer les espaces vides (également compris dans la tokenisation),
 Retirer ce qu’on appelle en anglais stopWord : ce sont les mots très courants
dans la langue étudiée ("and", "a", "the"... en anglais par exemple)
qui n'apportent pas de valeur informative pour la compréhension du "sens"
d'un document et corpus. Ils sont très fréquents et ralentissent notre travail :
nous souhaitons donc les supprimer. Il existe dans la librairie NLTK une liste
par défaut des stopwords dans plusieurs langues, notamment en anglais.

Pseudo code : Extraction et prétraitement

Input : URL

Output : fichier texte traité

Extraction du contenu de l’URL

Stockage sous un fichier texte

Elimination du bruit du texte

Tokenisation du texte

Normalisation du texte

NGNINTEDEM TEUKENG Jim Carlson 38 Master Sled : 2019-2020


Retourner (fichier texte)

Algorithme 2.3 : Extraction et prétraitement

Une fois le texte prétraité il devient plus aisé de passé à l’étapes suivantes.

2.4 Transformations en graphe et recherche du plus grand


sous graphes commun

Les approches conventionnelles de représentation, considèrent les documents comme


entant un vase de mots en mettant de côté la signification ou l’idée que l’auteur souhaitait mettre
en exergue. Cette représentation de documents ne capture pas certaines informations structurelles
tels que l’ordre et la proximité des occurrences mots ou leur position dans le document.

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.

Pseudo Code : Transformation en graphe

Input : fichier texte

NGNINTEDEM TEUKENG Jim Carlson 39 Master Sled : 2019-2020


Output : graphe

Découpage de chaque terme du texte

Création des sommets à partir de chaque terme

Les termes qui se suivent sont reliés entre eux

Génération du graphe

Retourner (graphe)

Algorithme 2.4 : Génération du graphe

Le calcul du plus grand sous graphes

Les algorithmes de correspondance entre sous-graphes sont utilisés pour rechercher et


énumérer des structures d'interconnexion spécifiques dans les réseaux. En énumérant ces
structures /sous-graphes spécifiques, les propriétés fondamentales du réseau peuvent être
dérivées. Le choix de l’algorithme suivant est tout d’abord basée sur le fait qu’il a pour vocation
première de ne chercher que les sous graphes communs, ensuite les analyses de [reference] nous
ont montré que, cette algorithme s’avèrent être un bon candidat lorsqu’il s’agit de tenir compte
du temps nécessaire pour découvrir des patterns communs entre deux graphes.

Algorithme : Plus grand sous graphe commun

Input : graphe 1, graphe 2 : deux graphes 

Output : MCS (plus grand sous graphe commun)

SI |M ( s)| = |G 2|

Retourner G2

SINON

NGNINTEDEM TEUKENG Jim Carlson 40 Master Sled : 2019-2020


M( s)edge chercher les paires possibles de G2 correspondant à G1

Retourner (M (s))

Algorithme 2.5 : Génération plus grand commun sous graphe.

Dans ce travail, nous présentons l'algorithme de correspondance de sous-graphes basé


sur un index avec le General Symmetries (ISMAGS), une version améliorée de l'algorithme de
concordance de sous-graphes à base d'index (ISMA). ISMA rapidement trouve toutes les
instances d'un motif prédéfini dans un réseau en explorant intelligemment l'espace de recherche
et en tenant compte des structures symétriques facilement identifiables. Cependant, des symétries
plus complexes (impliquant éventuellement la commutation de plusieurs nœuds) ne sont pas pris
en compte, ce qui entraîne une production superflue. ISMAGS résout ce problème en utilisant
une phase d'analyse de symétrie pour détecter toutes les structures symétriques dans les sous-
graphes de motifs du réseau. Ces structures sont alors converties en contraintes de rupture de
symétrie utilisées pour élaguer l'espace de recherche et accélérer les calculs. La performance de
l'algorithme a été testé sur plusieurs types de réseaux (réseaux biologiques, sociaux et
informatiques) pour différents sous-graphes avec un dégré de symétrie variable. Pour les sous-
graphes avec des structures symétriques complexes (multi-nœuds), facteurs d'accélération élevés
sont obtenus lorsque l'espace de recherche est élagué par les contraintes de rupture de symétrie.
Pour les sous-graphiques sans ou simples structures symétriques, ISMAGS réduit encore les
temps de calcul en optimisant les opérations d'ensemble. De plus, la liste calculée des instances
de sous-graphe est minimale car elles ne contiennent aucune instance qui diffère uniquement par
une symétrie de sous-graphe.

Algorithme : findSubgraphInstances(Graph g, Subgraph sg).

Set<Constraint>constraints  analyseSubgraph[sg];

NodeListHandler candidates  candidate node lists (to be intersected) for each subgraph
node;

for SubgraphNode sgn in sg do

NGNINTEDEM TEUKENG Jim Carlson 41 Master Sled : 2019-2020


for Edge e leaving/arriving in sgn do

t  type of edge;

S  list of graph nodes in g that have an edge of type t;

Add S to candidates [sgn];

end for

end for

SubgraphNode sgn ˿ subgraph node with the smallest candidate, node sublist;

NodeList snt calculate candidate node list of sgn;

mapNodes(sgn, candidates, constraints)

Algorithme 2.6 : Algorithme ISMAGS

2.5 Évaluations de la similarité

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.

Algorithme : Similarité Isomorphique


Input : (URL1, URL2, URL3)
Output : Valeur de similarité entre (URL1, URL2, URL3)

Pour chaque URL en cours de traitement


Déterminer le MCS (URL1, URL3)
Déterminer le MCS (URL2, URL3)
Déterminer la fréquence Tf d’apparition du mots clé dans le document

NGNINTEDEM TEUKENG Jim Carlson 42 Master Sled : 2019-2020


correspondant à URL3
Si Isomorphe (URL1, URL3) = Vrai
Sim1=0
Sinon
MCS ( URL 1 ,URL 3 )
Sim1= 1- ( max ⁡edge (URL 1 ,URL 3)
+Tf )
Si Isomorphe (URL2, URL3) = Vrai
Sim2=0
Sinon
MCS ( URL 2 , URL3 )
Sim2= 1- ( max ⁡edge (URL 2 ,URL 3)
+ Tf )
¿ 1+ ¿2
Similarité =
2

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.

2.7 Interface de présentation

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).

Figure 2.6: interface utilisateurs

NGNINTEDEM TEUKENG Jim Carlson 44 Master Sled : 2019-2020


CHAPITRE 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.

3.1 Cadre expérimentale

Nous avons présenté au chapitre précèdent un modèle d’un explorateur de donnée


intégrant une composante d’analyse de pertinence basée sur des scores dérivés de l’analyse des
graphes. Afin de pouvoir se rassurer de l’effet pratique de ce modèle dans la recherche il est
important que nous implémentions cette solution et que nous analysons les résultats obtenus afin
de tirer conclusion de l’efficacité et de l’efficience de notre modèle. Comme tout système

NGNINTEDEM TEUKENG Jim Carlson 45 Master Sled : 2019-2020


informatique, notre environnement de test est constitué de deux principales parties : la partie
matérielle et la partie logicielle.

3.1.1 Partie matérielle


Elle correspond à l’ensemble des technologies matérielles utilisé lors des phases de test.
Le matériel étant constitué d’un ordinateur portable, d’un modem 4G avec un abonnement chez
le fournisseur d’accès internet Camtel. A noter que ce matériel a servi aussi bien pour la
conception que pour les tests relatifs à la mise en œuvre de la solution proposée. Les
performances relatives à l’ordinateur utilisé sont les suivantes :

 Processeur Intel® Atom™x5-Z8350 ;


 Une mémoire installée (RAM) de 2.00 Go ;
 Un disque dur SSD d’une capacité de 32 Go couplé à un disque dur d’une capacité de
250 Go.

La connexion internet est capital pour le bon fonctionnement du système. Le système


ainsi conçu n’est utilisable que grâce à un ensemble de logiciel qui doivent au préalable être
installé sur l’ordinateur.

3.1.2 Partie logicielle


Nous avons dans le cadre du développement de se crawler utiliser le langage de
programmation python car il offre plusieurs bibliothèques utiles à la conception d’un crawler
notamment beautifulSoup pour l’analyse des pages web, Networkx et panda pour la conception
des data frames et graphes et la librairies NLTk pour le traitement du langage. Ces bibliothèques
nous ont été bénéfique dans la mise sur pied de notre crawler. Nous avons travaillé sur la version
10 du système d’exploitation Microsoft Windows. Comme environnement de développement
dédié à notre travail nous avons fait le choix de l’environnement Anaconda 3.0 couplé à l’éditeur
jupyter avec la version 3.6 python, ceci dû à la facilité et l’ergonomie lors du développement
qu’elle offre.

NGNINTEDEM TEUKENG Jim Carlson 46 Master Sled : 2019-2020


3.2 Comparaison de deux modèles de calcul de similarité

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

NGNINTEDEM TEUKENG Jim Carlson 47 Master Sled : 2019-2020


si une page web est relation avec le sujet défini c’est-à-dire si la similarité de la page web
extraite est inferieure a valeur seuil alors elle est jugée comme pertinente.

Nombres de pages pertinentes


Harvest Rate (HR) =
nombres total de pages explor é es

 Similarité Moyenne (Average Similarity)

Il correspond à la moyenne arithmétique de similarité des pages web en rapport avec le


sujet par rapport à toutes les pages web extraites. En d’autres termes il s’agit de la moyenne des
similarités pour chaque sujet d’exploration.

 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

NGNINTEDEM TEUKENG Jim Carlson 48 Master Sled : 2019-2020


Table 3.3 : Test 1

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

Table 3.4 : Test2

  Isomorphisme (0,95) Cosine(0,3)   BFS


Nombre de Harvest
pages Harvest Harvest rate
explorée Rate Sim Moyenne rate Sim Moyenne
10 0.30 0.86 0.50 0.3190412   0.20
0.2034448 0.20
20 0.30 0.93 0.20 5  
30 0.00 0.99 0.20 0.20   0
40 0.20 0.94 0.20 0.16   0
50 0.10 0.95 0.00 0.08   0
60 0.00 1.00 0.20 0.23   0
70 0.00 1.00 0.20 0.1943167   0

NGNINTEDEM TEUKENG Jim Carlson 49 Master Sled : 2019-2020


2
80 0.00 1.00 0.10 0.17   0
90 0.00 0.99 0.10 0.12   0
100 0.00 0.99 0.40 0.16   0

Test 3: https//en.wikipedia.org/wiki/Phishing

  Isomorphisme(0,95) Cosine(0,3) BFS


Nombres Harvest Rate
de pages Harvest Harvest
explorées Rate Sim_Moyenne rate Sim_Moyenne
10 0.20 0.87282579 0.00 0.14966633 0.30
20 0.00 0.97171487 0.00 0.15465689 0.00
30 0.00 0.97196277 0.00 0.16366918 0.00
40 0.10 0.97484861 0.00 0.15862047 0.00
50 0.00 0.97475221 0.10 0.18443467 0.00
60 0.00 0.97959581 0.00 0.17282103 0.00
70 0.40 0.828199 0.00 0.13228256 0.30
80 0.30 0.8666023 0.00 0.15608512 0.30
90 0.70 0.71201692 0.00 0.14981685 0.50
100 1.00 0.59158121 0.00 0.12683978 0.50
110 1.00 0.59158121 0.00 0.12683978 0.00
120 1.00 0.59158121 0.00 0.12683978 0.00
130 0.70 0.74726521 0.00 0.11407055 0.00
140 0.40 0.83219096 0.00 0.09879165 0.20
150 0.70 0.70184742 0.00 0.11968211 0.00
160 0.70 0.7110018 0.00 0.12592074 0.10
170 0.30 0.87260131 0.00 0.09888931 0.10
180 0.30 0.87267632 0.00 0.16096165 0.00
190 0.60 0.74963367 0.00 0.12172236 0.00
200 0.40 0.83081777 0.00 0.11126857 0.00
Table 3.5 : Test3

 Similarité Moyenne, consommation en Temps et espace


Le résultat suivant représente le temps d’exécution pour différents sites web.

NGNINTEDEM TEUKENG Jim Carlson 50 Master Sled : 2019-2020


Table 3.6 : Similarité moyenne

Test SimMoyenne (ISG) SimMoyenne (cos)


Test1 0.16
0.87423
Test2 0.97 0.18
Test3 0.81 0.14

Table 3.7: Consommation en temps et espace

Test Nombre Temps(secon Temps(secon Temps(secon Mémoi Mémoi Memoi


s de) de) de) re (Mb) re (Mb) re (Mb)
d’URL (ISG) (Cos) (BFS) (ISG) (cos) (BFS)
S
exploré
es
Test 100
2899.12 2430.65 661.06 315 315 34
1
Test 100
3692.46 3391.53 360.50 298 300 34
2
Test 200
21515.69 13099.28 713.64 340 270 37
3

 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

NGNINTEDEM TEUKENG Jim Carlson 51 Master Sled : 2019-2020


manière la plus aléatoire possible ceci pour ne laisser intervenir aucun paramètre prédéfini dans
notre processus de sélection. Une fois les URL choisis, ce que l’on aimerait est de pouvoir évalué
la précision d’une URL par rapport à une autre et par rapport à un sujet ou à un thème donné
pour cela l’extraction du contenu et son prétraitement devient une étape nécessaire. Les sorties
obtenues après cette phase correspondent aux différents corpus ci-dessous :

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 :

Table 3.8 : Evaluation de la précision

Test (URL) Isomorphisme Cosinus


URL4, URL2 0.868836955393493 0.3302284510388509
URL4, URL1 0.9480660774491675 0.3816595075718861
URL3, URL2 0.9992110453648915 0.054280005595692085
URL3, URL1 0.9988165680473373 0.054277056960154293

3.4 Analyse et interprétation des résultats

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

NGNINTEDEM TEUKENG Jim Carlson 54 Master Sled : 2019-2020


d’exécution du programme, l’utilisation de la mémoire, le Harvest rate, la précision et la
similarité moyenne. Pour notre implémentation, la similarité par le cosinus a été utilisée avec une
valeur seuil fixé à 0.3. Ce chiffre inferieur à ce qui est généralement proposé dans la littérature
qui varie entre (0.5 et 0.7) mais il reste très significatif dans l’implémentation d’une similarité
par cosinus. Pour notre approche basée sur les graphes isomorphiques, le choix d’une valeur de
pertinence fixée à 0.95 valeur issue des différents tests effectués.
Les tableaux 3.1, 3.2, 3.3 présente une série de tests effectuée sur 3 échantillons de taille
variable allant de 100 à 200 URLS. La courbe de la figure 6 correspond au Harvest rate pour nos
400 URLS parcourus

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

Nombre de pages explorées

isomorphisme Cosinus BFS

Figure 3.7 : Harvest Rate

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

NGNINTEDEM TEUKENG Jim Carlson 55 Master Sled : 2019-2020


BFS aurait obtenu de meilleurs résultats au travers du parcours en largeur qui est sa principale
caractéristique. S’agissant des deux autres métriques, la particularité d’un crawler orienté à se
déplacer prioritairement vers des contenus pertinents est mise en évidence. Cependant bien que
se chevauchant dans leurs parcours l’analyse de nos résultats nous permettent de dire que le
Harvest rate de la métrique proposée est meilleur que son concurrent qui est l’approche basé sur
le cosinus. En d’autres termes, le rapport entre le nombre de pages parcourues et le nombre de
pages jugées pertinentes trouvé tout au long de son parcours est inférieur à celui de notre
approche basée sur les graphes isomorphes. Un tel résultat sous attend donc que le choix d’un
crawler basé sur les isomorphismes de graphe a une facilité de parcours et une meilleure capacité
d’exploration dans la recherche de contenu pertinent.

S’agissant de la précision l’analyse des résultats et des scores obtenus au tableau7


(tableau précision) nous montre que pour nos deux premiers échantillons, il existe une forte
corrélation entre leur contenu de même que pour les deux URLS suivants mais cependant au vu
de leur contenu, la méthode basée sur les graphes isomorphes est à posteriori meilleure que celle
basée sur les vecteurs en termes de précision relativement à des contenus. De même s’agissant
des deux derniers échantillons correspondants au tableau7 il est évident de voir que les deux
métriques n’ont aucune difficulté à parvenir à évaluer la dissimilarité entre deux sujets provenant
de deux champs différents d’où ses scores tendant relativement vers 0 pour cosinus et 1 pour les
graphes isomorphes.

Les figures 3.2 et 3.3 présentent respectivement les consommations en temps et en


espace, obtenues pendant les différents tests. Quand il est question d’analyser le temps mis par
un programme, prendre en compte les différentes instructions nécessaires à son exécution n’est
que partie remise. A cet effet, le temps mis par les graphes isomorphe afin d’évaluer les
similarités entre deux documents dépendent principal du temps mis pour la création du graphe en
lui-même, pour la recherche d’un isomorphisme ou d’un sous graphe commun et afin pour
l’évaluation de la fréquence d’apparition d’un mot clé de recherche dans le document. Ainsi
donc le temps mis pour effectuer ses différentes tâches ne peut qu’impacter sur le processus de
crawl c’est dans ce sens que l’analyse des résultats dépendamment du temps mis des graphes
isomorphes est plus élevé que celle de la méthode basée sur les vecteurs et celle du BFS.

NGNINTEDEM TEUKENG Jim Carlson 56 Master Sled : 2019-2020


Consommation en Temps (Seconde)
25000

20000

15000

10000

5000

0
Test1 Test2 Test3

Temps(seconde) Temps(s) Cosinus Temps(s) BFS

Figure 3.8 : Consommation en temps

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.

NGNINTEDEM TEUKENG Jim Carlson 57 Master Sled : 2019-2020


Consommation Memoire(Mb)
400

350

300

250

200

150

100

50

0
Test1 Test2 Test3

Nombres d'URLS Memoire(Mb) ISG


Memoire(Mb) Cosinus Memoire(Mb) BFS

Figure 3.9 : Consommation Mémoire


Afin, Le average similarity correspond à la moyenne arithmétique des différentes valeurs
de similarité obtenues tout au long du processus d’exploration. Elle permet de donner un avis
moyen sur la pertinence du site dans son ensemble. Ayant montré son aisance dans la recherche
de contenu pertinent et sa capacité à s’orienté vers les contenus de même nature, l’approche
basée sur les graphes isomorphes obtient un score de similarité dans son ensemble bien supérieur
à l’approche basée sur les vecteurs implémentant la similarité par cosinus Tableau 3.4. S’il
s’agissait de donner une conclusion relativement aux sites parcourus on dirait que pour cosinus
dépendamment de la valeur seuil et des scores obtenus aucun de ses sites dans leur ensemble et
sur la limite d’URLS fixée ne présente de corrélation avec le terme clé. Contrairement aux
graphes isomorphes qui montrent que les premiers et derniers sites ont des similarités assez
intéressantes avec le terme clé.

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.

NGNINTEDEM TEUKENG Jim Carlson 58 Master Sled : 2019-2020


Afin, nous avons jugé judicieux afin d’évaluer la qualité de notre approche, de faire un
tableau de comparaison sur certains travaux trouvé dans la littérature. Le Tableau ci-dessous
représente un tableau récapitulatif de ses analyses.

Table 3.9: Tableau général de comparaison


Proposed Focused Focused crawler Focused Focused Crawler Focused
Focused Crawler [59] Crawler IMJECS Crawler [13
Crawler [alfarisy [60 2008]
2017] 2015]
Représentati Graphes de Décompositi StringXString  Ontolog Vecteur Vecteur
on du termes on du [0...1] ie et VSM(TF-IDF) VSM(TF-
contenu Anchor et de Vecteur Vecteur IDF)
l’URL sous (vocabulaire) basé (TF-
formes de la moyenne IDF)
Listes de d’occurrence d’un SSVM
mots terme (2) dans la
base de
vocabulaire
construite à
l’avance
Métrique Plus grand Similarité de Link_to_seed + Cosinus Link score et Priority= ½
d’évaluation sous graphe JACCARD Link_from_seed*( + Cosinus (les (cosinus
de commun et (Keyword, 0.1 + semanti mots clé du (Document,
similarités fréquence List) Content_Similarit c document, les Requete) +
d’apparition y) similarit mots clé de la Cosinus
du mots clé y table de mots) la (Anchor,
dans le table de mots Requete)
document étant mis en jour
en fonction de la
fréquence
d’apparition
d’un terme dans
le corpus
Priority=Link
(HITS)
+content_similar
ity
Performance Meilleur Meilleur Meilleur Harvest Meilleur Meilleur Harvest Meilleur
(Harvest Harvest rate Harvest 90% Harvest 77% Harvest
Rate/ 37% 81.75% Comparé au BFS 57.8% Comparé au 17,38%
Précision) comparé Comparé au qui a un Harvest Compar BFS qui a un Comparé au
au BFS qui a BFS qui a un rate de 30% sur le é au Harvest rate de BFS qui a un
un Harvest Harvest rate premier test et un BFS qui 20% Harvest rate
rate de 8% de 16% score de 75% a un de 2.52%
contre 33% pour Harvest
le BFS au second rate de
test 10.2%
Consommati Consommati Aucune L’approche Aucune Aucune Consommati
on en on en indication proposé indicati indication on en
ressource ressource consomme on ressource
temporelle et beaucoup plus de supérieur au

NGNINTEDEM TEUKENG Jim Carlson 59 Master Sled : 2019-2020


spatiale ressource que le BFS
supérieur au BFS
BFS

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.

3.5 Application de la fouille pour le Phishing

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.

3.5.1 Définition: Ingénierie Social et phishing 

NGNINTEDEM TEUKENG Jim Carlson 60 Master Sled : 2019-2020


L'ingénierie sociale est donc l’art de manipuler des personnes. C’est le terme utilisé pour
désigner un large éventail d'activités malveillantes réalisées par le biais d'interactions humaines.
Elle est considérée comme une discipline consistant à obtenir des informations personnelles et
confidentielles en exploitant la confiance, mais parfois aussi l’ignorance ou la crédulité de tierces
personnes. L'ingénierie sociale utilise la manipulation psychologique pour tromper les
utilisateurs dans le but de les inciter à commettre des erreurs de sécurité ou à divulguer des
informations sensibles et confidentielles.

Le phishing (ou hameçonnage en français) est une technique frauduleuse permettant de


voler des informations numériques. C’est une forme d’ingénierie sociale. Elle est basée sur la
faille humaine et consiste à duper un utilisateur par l’intermédiaire d’un courrier électronique.
On définit le phishing comme étant un type d’attaque au cours de laquelle le social engineer
échange avec un utilisateur au travers de canaux de communication électroniques afin de le
persuader d’effectuer un certain nombre d’action au bénéfice de l’attaquant. Les phishing mails
contiennent généralement des liens vers des sites frauduleux ou contiennent des attachements
avec des virus embarqués.

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).

3.5.2 Méthodologie d’une attaque par phishing

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

NGNINTEDEM TEUKENG Jim Carlson 61 Master Sled : 2019-2020


destinataires qu'il est nécessaire de cliquer sur les liens hypertextes en prétextant soit une
intervention technique, soit une mise à jour sur le site visité (banque, compte en ligne etc.).Ainsi,
si le destinataire rentre son login et son mot de passe pour valider le message reçu, ses
identifiants seront interceptés par le pirate qui n'aura plus qu'à rentrer sur le site officiel
(banque, compte en ligne, etc.) et procéder à des achats ou des virements. Le pirate peut
également revendre ces informations. Les criminels informatiques utilisent généralement
l'hameçonnage pour voler de l'argent. Les cibles les plus populaires sont les services bancaires et
de cartes de crédit en ligne ainsi que les sites de ventes aux enchères. Les adeptes de
l'hameçonnage envoient habituellement des courriels au plus grand nombre d’utilisateurs
possibles afin de rejoindre le plus grand nombre de victimes potentielles.
Typiquement, les messages ainsi envoyés semblent émaner d'une société digne de
confiance et sont formulés de manière à ne pas alarmer le destinataire afin qu'il effectue une
action en conséquence. Une approche souvent utilisée est d'indiquer à la victime que son compte
a été désactivé due à un problème et que la réactivation ne sera possible que lorsque l'usager
suivra certaines instructions. Le message fournit alors un lien qui dirige l'utilisateur vers une
page Web qui est une copie conforme du vrai site de la société de confiance. Arrivé sur cette
page trompeuse, l'utilisateur est invité à entrer des informations confidentielles qui sont alors
capturées et enregistrées par le criminel. L’hameçonnage est donc une forme de vol d’identité
électronique, aussi appelée usurpation d’identité, qui emploie l’ingénierie sociale ainsi que le
pharming.

NGNINTEDEM TEUKENG Jim Carlson 62 Master Sled : 2019-2020


Figure 3.10 : Processus d'une attaque par phishing

A l’étape 1, l’attaquant confectionne le mail adapté à l’information qu’il souhaite voler,


ensuite il le repend au maximum d’internaute possible à travers des courriels électroniques. Une
fois ceci fait et le mail reçu par l’utilisateur, ce dernier tout naïvement l’ouvre, le lit et suit le lien
ou il lui est proposé de cliquer dessus. Ceci conduit donc à l’installation d’un Remote Access
Trojan (RAT) sur l’ordinateur de l’utilisateur sans son consentement. L’objectif du RAT ici, est
de créer un back Door ou encore porté dérobé ayant les autorisations de l’administrateur. Le back
Door mis en place commence, l’attaquant entre en possession des données utilisateurs et les
pirates.

3.5.3 Les types d’attaques de phishing

Table 3.10 : Quelques attaques de phishing

Index No. Catégorie de Phishing Medium de Prevention/ Remédiation


transmission
1 Deceptive a) Messagerie instantanée a) Vérifié une fois au moins les
Phishing b) Message par mail mails suspectés comme phishing
mail

NGNINTEDEM TEUKENG Jim Carlson 63 Master Sled : 2019-2020


b) Vérifié au moins une fois les
sources d’information
c) Améliorer la sécurité de
l’ordinateur
2 a) Envoie du malware au a) Être méfiant des Popup vous
Malware
travers d’un mail notifiant que certains programmes
Based
b) Popup notifiant la ne sont pas installés sur votre
Phishing
présence d’un virus dans ordinateur
votre machine b) N’entrer vos informations
c) Phishing mail sensibles uniquement sur des sites
donc vous est sure
3 Key loggers and Screen a) Clavier a) Utiliser des systèmes ayant des
logger b) Internet logiciels de détection de
Keylogging intégré
b) Utilisation du clavier virtuel
4 Session a) Source Rooted IP a) Utilisation de longue chaine de
Hijacking paquets caractère comme clé de session
b) URL cookie b) Cryptage du trafic de données
5 Web Trojan a) Email non demandé a) Le système d’exploitation doit
b) Publicité non demandé être toujours à jours
(unrequested ad) b) Installé les version authentique
des logiciel antivirus
6 Whaling a) Détournement d’email a) Prendre conscience des attaques
ressemblant à un email de Whaling parmi les gens
authentique b) Implementé des methodes de
b) adresse Email Falsifié protection de données
et Corporation
authentique avec logos de
compagnies
7 Pharming a) email a) Utiliser uniquement les sites
b) Internet HTTPS protégés
b) Utiliser un antivirus
régulièrement mis à jour
c) Maintenir les nouveautés en
termes de sécurité toujours à jours
8 Vishing a) téléphone a) Eviter de prendre les appels
provenant de numéro inconnu
b) Eviter de divulguer vos
informations personnelles au
travers du téléphone
c) En cas de doute rappeler

NGNINTEDEM TEUKENG Jim Carlson 64 Master Sled : 2019-2020


l’entité sur un numéro connu
9 Smishing a) SMS / message texte a) Rechercher les numéros
inconnus
b) En cas de doute rappeler
l’entité sur un numéro connu
10 Spear phishing a) Internet a) Entrainement et sensibilisation
b) Email provenant des employées relativement a la
d’entités ou de securité
personnes qu’on connaît b) Limiter la quantité
d’informations personnel que
vous partagez
c) Invertir dans des solutions
automatiques pour l’analyse de
vos mail
11 Angler phishing a) Les media sociaux a) Vérifier tous messages d’aide
b) Internet ou de nature douteuse que vous
recevez sur les réseaux sociaux
avant de répondre
b) Prenez la peine de protéger les
informations divulguer lors des
interactions avec le social
customer service
12 Search engine phishing a) Internet web sites a) Vérifier toutes les offres que
b) popup vous recevez ainsi que les
informations qui vous sont
demandées
b) Être attentif aux offres
gratuites.
c) Ne vous enregistrer pas a des
offres gratuites, si vous le faites
utiliser un alias et un email qui
n’est connecté avec aucun autre
de vos comptes
13 Content injection a) URL a) Avoid passing HTML
phishing content via from request
parameters
b) Never construct and send
message error via request
parameters

NGNINTEDEM TEUKENG Jim Carlson 65 Master Sled : 2019-2020


14 Robocall attack a) Téléphone a) Ne divulguer pas vos
informations personnelles au tout
potentiel scammer ou arnaqueur
b) Ne répondez pas aux appels
provenant de numéro inconnu

3.5.4 Implémentation d’un crawler pour créer une base de


connaissance pour le phishing

3.5.4.1 Architecture du système


Avant de commencer, notons que l’analyste représente l’entité qui sera chargé de
s’assurer de la cohérence du système.

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.

NGNINTEDEM TEUKENG Jim Carlson 66 Master Sled : 2019-2020


(iii) (iv) interface de
www (i) Fouille de (ii) Extraction et Interprétation présentation
données stockage des et classification Utilisateur
données des données

Figure 3.11 : Architecture du système

3.5.4.2 Implementation de la solution


Afin de mettre sur pied notre système nous avons effectué un crawl basé sur les résultats
de recherche renvoyée par le moteur de recherche google sur les mots clés phishing, pharming,
smishing, vishing, scam comme entrée de notre module de fouille de données. Les résultats
obtenus nous ont permis de concevoir le système suivant :

NGNINTEDEM TEUKENG Jim Carlson 67 Master Sled : 2019-2020


1

4
Figure 3.12: Interface de presentation

Figure 3.13: Interface de présentation

NGNINTEDEM TEUKENG Jim Carlson 68 Master Sled : 2019-2020


Le (1) représente l’ensemble des attaques de phishing qui peuplent notre base de données,
en d’autres termes, il s’agit des mots clés choisie pour effectuer notre crawl. Le (2) quant à lui
représente la barre de recherche, c’est au travers de celle-ci que les utilisateurs pourront en
fonction de leur besoin recherché une information spécifique relativement aux arnaques sur notre
sites, car a titre de rappel l’objectif est de fournir à l’utilisateur une base de connaissance
relativement aux arnaques et spécifiquement au phishing qui sévit sur le web pour permettre à ce
dernier de s’informer et de prendre connaissance de cette dernière. (3) correspond à un bref
contenu à titre d’introduction qui donnent une brève définition des concepts et offre la possibilité
à l’utilisateur d’en savoir plus. (4) et (5) offrent la possibilité à l’utilisateur d’avoir accès au
URLS crawler relativement au concept de la page ; il s’agit-là des URLS jugée pertinent par
notre approche de similarité. Enfin, l’utilisateur doit avoir la possibilité de pouvoir accéder par
lui-même à l’une des pages ou spécifiquement au site correspondant au contenu présenté, c’est
dans ce sens que (6) consiste à un lien de redirection vers le site d’où la bribe de contenu a été
extrait afin d’avoir accès a toutes les informations de la page.

Le chapitre qui s’achève a été consacré à la présentation, l’analyse et l’interprétation des


résultats expérimentaux, le but étant de valider la qualité de l’approche ayant fait l’objet de ce
travail. Ainsi, d’une part, nous avons validé la performance et la stabilité de l’approche en
évaluant les similarités lors de l’exploration fait sur trois site web et d’autre part sa fiabilité a été
prouvée par l’utilisation de ce modèle comme première étapes dans la conception d’une base de
connaissance comme méthodes protection et de sensibilisation des utilisateurs sur Web pour les
attaques de phishing.

NGNINTEDEM TEUKENG Jim Carlson 69 Master Sled : 2019-2020


CONCLUSION ET PERSPECTIVES
Rechercher une information dans une ensemble trop immense de donnée devient une
tâche ardue ; il devient ainsi important d’avoir les avancés de recherche dans les domaines tel
que la Recherche d’Information qui traite particulièrement des technique et processus
scientifique mis en œuvre pour retrouver une information dans un ensemble de donnée. Les
méthodes d’exploration de grand ensemble de données sont diverses et variées, mais cependant
les métriques d’évaluation de similitude mis en avant dans ses approches particulièrement dans
la conception des robots d’exploration ont se fâcheux défaut d’avoir une représentation
incomplète de l’information. Dans ce document, un nouveau système est proposé afin de
surmonter cette limitation. Ce système s’efforce de prendre en compte non plus le mot comme
entité caractérisable au travers de sa fréquence d’apparition lors d’un processus d’exploration de
donnée, mais plutôt comme un élément possédant des liens et des connexions relativement au
contexte et au corpus d’où il provient. De ce fait notre système s’appuie sur la notion de graphe
et d’isomorphisme ; il consiste à une transformation d’un corpus préalablement nettoyé et
prétraité sous formes de graphes pour qu’ensuite relativement à des corpus issus des requêtes
vers les moteurs de recherches, le plus grand sous graphes communs entre ces deux-là soit
extrait. Afin, nous combinons le score obtenu à celle de la fréquence d’apparition du termes clé
dans la page explorée. Dans ce sens, dépendamment du score obtenu, notre système
d’exploration aura tendance à se déplacer vers telles ou telles pages pertinentes. La validation de
notre approche par des tests, notamment l’évaluation de similarité sur des URLS provenant de
trois site web et une application de ce modèle à un problème concret qui est la constitution d’une
base de connaissance sur le phishing. Nous ont permis de confirmer non seulement la stabilité,
mais aussi la fiabilité de notre approche grâce à sa précision et son Harvest rate malgré le temps
mis et l’espace consommé qui restent cependant dans l’ordre du raisonnable en comparaison à
d’autres approches. Les notions abordées tout au long de ce travail et les voies d’investigation

NGNINTEDEM TEUKENG Jim Carlson 70 Master Sled : 2019-2020


explorées nous incitent à entrevoir de multiples perspectives de recherche. Deux d’entre elles
alimenterons particulièrement nos réflexions futures. L’une consistera a appliqué les méthodes
de classification et de clustering afin de pouvoir catégoriser les pages extraites et jugées
pertinentes en Subtopics et l’autre consiste à incorporation de notre méthode avec des méthodes
s’appuyant sur des liens afin d’améliorer les performances de notre approche.

ANNEXE I : CODE SOURCE PYTHON

NGNINTEDEM TEUKENG Jim Carlson 71 Master Sled : 2019-2020


BIBLIOGRAPHIE

[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.

NGNINTEDEM TEUKENG Jim Carlson 72 Master Sled : 2019-2020


[8] C. Olston and M. Najork, “Web crawling,” Found. Trends Inf. Retr., vol. 4, no. 3, pp.
175–246, 2010, doi: 10.1561/1500000017.

[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.

[17] M. E. Elaraby, S. M. Abuelenin, H. M. Moftah, and M. Z. Rashad, “A new architecture


for improving focused crawling using deep neural network,” J. Intell. Fuzzy Syst., vol. 37,
no. 1, pp. 1233–1245, 2019, doi: 10.3233/JIFS-182683.

[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

NGNINTEDEM TEUKENG Jim Carlson 73 Master Sled : 2019-2020


Concept and Genetic Programming,” Int. J. Data Min. Knowl. Manag. Process, vol. 1, no.
December, pp. 7–10, 2011.

[20] M. K. V. and K.Kavitha, “A SURVEY ON SIMILARITY MEASURES IN TEXT


MINING,” Mach. Learn. Appl. An Int. J., vol. 3, 2016.

[21] a Markov, M. Last, and a Kandel, “Model-Based Classification of Web Documents


Represented by Graphs,” 2006.

[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.

[23] WIkipedia, “No Title.” https://fr.wikipedia.org/wiki/Sac_de_mots (accessed Jun. 11,


2020).

[24] Wikipedia, “TF-IDF.” https://fr.wikipedia.org/wiki/TF-IDF (accessed Jun. 11, 2020).

[25] Ionos, “No Title.” https://www.ionos.fr/digitalguide/web-marketing/analyse-web/analyse-


tf-idf/ (accessed Jun. 11, 2020).

[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.

[27] A. Nematzadeh, S. C. Meylan, and T. L. Griffiths, “Evaluating Vector-Space Models of


Word Representation, or, The Unreasonable Effectiveness of Counting Words Near Other
Words,” [Online]. Available:
https://cocosci.berkeley.edu/papers/nematzadeh_etal_17_cogsci_reps.pdf.

[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.

[29] W. H. Gomaa and A. A. Fahmy, “A Survey of Text Similarity Approaches,” Int. J.


Comput. Appl. (0975 – 8887) Vol. 68– No.13, vol. 68, no. 13, pp. 13–18, doi:
10.1007/978-3-030-42699-6_1.

NGNINTEDEM TEUKENG Jim Carlson 74 Master Sled : 2019-2020


[30] J. PrakashVerma, B. Patel, and A. Patel, “Web Mining: Opinion and Feedback Analysis
for Educational Institutions,” Int. J. Comput. Appl., vol. 84, no. 6, pp. 17–22, 2013, doi:
10.5120/14579-2800.

[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.

[36] R. Kumar, P. Raghavan, S. Rajagopalan, D. Sivakumar, A. Tomkins, and E. Upfal, “Web


as a graph,” Proc. ACM SIGACT-SIGMOD-SIGART Symp. Princ. Database Syst., pp. 1–
10, 2000, doi: 10.1145/335168.335170.

[37] R. Kumar and A. Tomkins, “Stochastic models for the web graph 1 Introduction,”
Defense.

[38] M. Diligentit, F. M. Coetzee, S. Lawrence, C. L. Giles, and M. Gori, “Focused crawling


using context graphs,” Proc. 26th Int. Conf. Very Large Data Bases, VLDB’00, pp. 527–
534, 2000.

[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.

NGNINTEDEM TEUKENG Jim Carlson 75 Master Sled : 2019-2020


2583–2601, 2018, doi: 10.1007/s00500-017-2513-y.

[41] P. Foggia, C. Sansone, and M. Vento, “Foggia et al - Performance comparison of five


algorithms for graph isomorphism.pdf.”

[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.

[46] L. P. Cordella, P. Foggia, C. Sansone, and M. Vento, “A (sub)graph isomorphism


algorithm for matching large graphs,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 26,
no. 10, pp. 1367–1372, 2004, doi: 10.1109/TPAMI.2004.75.

[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.

[50] E. Negre, “Comparaison de textes: quelques approches...,” 2013.

[51] “trafilatura-alternatives.” https://python.libhunt.com/trafilatura-alternatives (accessed


Nov. 17, 2020).

[52] “trafilatura.” https://pypi.org/project/trafilatura (accessed Nov. 11, 2020).


NGNINTEDEM TEUKENG Jim Carlson 76 Master Sled : 2019-2020
[53] K. K. Phukon, “A composite graph model for web document and the MCS technique,”
Int. J. Multimed. Ubiquitous Eng., vol. 7, no. 1, pp. 45–52, 2012.

[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.

[56] H. Liu, “focusedcrawler thesis experi 61.pdf,” Dalhousie University, 2007.

NGNINTEDEM TEUKENG Jim Carlson 77 Master Sled : 2019-2020

Vous aimerez peut-être aussi