Rapport PFE Fake News 20200720

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 56

Mémoire de projet de fin d’étude

Présenté par :

Adil Kachbat
Abdellah Cherif

En vue de l’obtention du diplôme


Master Universitaire Professionnel
Business Analytics et Big Data

Thème

« Mise en place d’un système de


Détection de fake news »

Encadré par :
Mr Merouane Skiti

Année universitaire : 2019/2020


Remerciement

Nous tenons tout d'abord à remercier M. Merouane Skiti, notre professeur et encadreur de nous avoir
validé ce sujet, de nous avoir aidé et encadré tout au long du projet, et pour son suivi durant la période
de formation et de la préparation de notre projet de fin d’études.

Nous souhaitons ensuite adresser nos remerciements à M. Mounir Mahfoud, Responsable de la


formation B.A.B.D pour sa disponibilité tout au long de cette année, et au corps professoral et
administratif du Centre C.I.G.M.A, pour la qualité de l’enseignement offert et le soutien de l’équipe
administrative.

Nous remercions aussi les membres du jury qui nous fait l’honneur de nous accepter d’évaluer notre
travail.
Un grand merci à nos parents, pour leurs conseils, ainsi que pour leur soutien inconditionnel.
Nous voudrions enfin exprimer notre reconnaissance envers les amis et collègues qui nous apportait
leur soutien moral et intellectuel tout au long de cette année.

2
Table des matières

Chapitre 1 CONTEXT GENERALE DU PROJET ............................................................................................................. 6


I. Présentation du sujet : .................................................................................................................................. 6
1- Définition de fake news : ........................................................................................................................... 6
2- Les types des fakes news : ......................................................................................................................... 6
3- Impact des fakes news :............................................................................................................................. 6
II. Les chiffres impressionnants des fake news sur Facebook pour l’élection de Donald Trump : .................... 9
III. Fakes news guide des questions à se poser face à une information :..................................................... 10
IV. Les challenges de la lutte contre les fakes news : ................................................................................... 11
1- Le partage de l'émotion : ......................................................................................................................... 11
2- L’imperméabilité au fact-checking : ........................................................................................................ 12
3- La rémanence : ........................................................................................................................................ 12
Chapitre 2 problematique et solutions proposés : .................................................................................................. 12
I. Problématique ............................................................................................................................................. 12
II. Solution et objectif : .................................................................................................................................... 13
1- Solution : .................................................................................................................................................. 13
2- Objectif : .................................................................................................................................................. 13
Chapitre 3 Etude Conceptuelle ................................................................................................................................ 13
I. Cycle de vie de développement d’un projet machine learning/deep learning: .......................................... 13
Chapitre 4 : La Réalisation de projet ....................................................................................................................... 14
I. Introduction : ............................................................................................................................................... 14
1- Introduction au Machine Learning .......................................................................................................... 14
2- Gestion de projet avec l’outil Trello : ...................................................................................................... 16
3- Outils et langages utilisés : ...................................................................................................................... 17
4- Les phases d’un projet de Machine Learning : ........................................................................................ 17

3
Résumé

Ce mémoire traite de la problématique de la classification des informations, notre objectif est de détecter les
fausses nouvelles proviennent des sites web qui publient des faux articles ou des contenus ironiques.

La première partie de ce mémoire est consacrée à la présentation et la définition des différentes notions qui
interviennent dans le développement de notre projet.

En effet, le premier chapitre donne une vue détaillée sur la présentation de notre sujet « fake news ».

Dans ce chapitre nous commençons par une définition de « fake news », ces types, leur impact sur les
principaux domaines, tel que la santé, la politique et l’économie, ensuite nous allons voir comment évaluer la
qualité et la pertinence d'une information à travers quelques questions à se poser face à une information.

Dans le deuxième chapitre, nous allons définir la problématique à résoudre (comment distinguer entre les vrais
et les fausses informations ?), puis nous allons Présenter la démarche et les solutions proposées afin de
résoudre cette problématique.

Dans le troisième chapitre, nous présentons le cycle de vie de développement d’un projet d’apprentissage
automatique/profond. (Machine Learning/Deep Learning).

Le quatrième chapitre est consacré à la présentation de l’apprentissage automatique (machine Learning) et


l’apprentissage profond (Deep learning), en appliquant les techniques de ces derniers pour prédire la catégorie
des actualités (fausses informations ou vrais informations), puis nous interprétons les résultats les performances
(%) sur la prédiction des fausses informations pour chaque technique, en fin nous allons comparer les résultats
obtenus sur les deux systèmes.

A la fin nous traitons la partie la plus importante de projet qu’est le déploiement de modèle.

Après la construction et l’évaluation des modèles choisis en machine Learning ou bien en Deep Learning, selon
les résultats obtenus nous allons déployer le meilleur modèle qui nous donne des bonnes prédictions.

4
Introduction générale

À l’heure du Web 2.0, les actualités prennent une place de plus en plus importante dans notre activité sur
internet. Ayant pour but initial de favoriser les relations avec des personnes qui se connaissent déjà, ils tendent
à devenir des outils universels permettant de répondre au plus grand nombre possible de demandes : discuter
et rester en contact avec ses proches (utilisation primaire des réseaux sociaux), se divertir, se tenir informer des
actualités, etc. C’est dans ce dernier cadre d’utilisation que des fausses informations sont majoritairement
susceptibles d’apparaître.

Avant de définir les possibilités existantes quant à la détection de ces fausses informations, il convient de se
demander ce qui les caractérise comme étant fausses.

De plus en plus répandues sur le web, les Fake News sont un véritable problème. Les fausses informations
peuvent accentuer les tensions sociales, influencer les élections politiques, nuire à la réputation d’une
personnalité publique, ou même alimenter les conflits entre deux pays.

Actuellement, le « fact-checking »et la modération sont principalement effectués par des humains chargés de
vérifier la véracité des articles au cas par cas. C’est par exemple la méthode employée par Facebook, qui fait
appel à des milliers de modérateurs pour ” nettoyer ” sa plateforme.

Or, ce processus se révèle incroyablement long et fastidieux. De plus, les modérateurs humains peuvent eux-
mêmes faire preuve d’une subjectivité néfaste dans leurs jugements.

La suite de ce chapitre s’intéressera dans un premier temps à apporter une définition au terme de fausse
information, à la fin nous constituent un modèle de machine Learning pour faciliter la modération dans le
process de « Fact Checking ».

5
Chapitre 1 CONTEXT GENERALE DU PROJET

Présentation du sujet :
I.

1- Définition de fake news :


Le terme « fake news » ou « fausses informations » est préférable car il peut se référer à une gamme diversifiée
de désinformation couvrant des sujets tels que la santé, l'environnement et l'économie sur toutes les
plateformes et tous les genres, tandis que les « fake news » sont plus étroitement comprises comme des
actualités politiques.

Les fake news sont de fausses informations fabriquées et diffusées volontairement sur internet dans le but
d’induire en erreur"

Les « fake news » peuvent tromper les gens en ressemblant à des sites Web de confiance ou en utilisant des
noms et des adresses Web similaires à des organisations de presse réputées, ils sont créés pour influencer les
opinions des gens, pour faire avancer un programme politique ou pour semer la confusion et peuvent souvent
être une activité rentable pour les éditeurs en ligne.

2- Les types des fakes news :


Concernant contenu en ligne sur le web il y a divers types de nouvelles fausses ou trompeuses. Ci-dessous
quelques exemples :

- Clickbait:
Ce sont des histoires qui sont délibérément fabriquées pour gagner plus de visiteurs sur le site Web et
augmenter les revenus publicitaires des sites Web. Ces derniers utilisent des titres exaltants pour attirer
l'attention et générer des clics vers le site Web de l'éditeur.

- La propagande :
Des histoires créées pour tromper délibérément le public, promouvoir un point de vue biaisé ou une cause
politique.

- Histoires trompeuses :
Les histoires qui ne sont pas complètement fausses peuvent être déformées en utilisant des titres trompeurs ou
sensationnalistes. Ces types de nouvelles peuvent se propager rapidement sur les Sites de médias sociaux où
seuls les titres et les petits extraits de l'article complet sont affichés dans les fils d'actualité du public.

3- Impact des fakes news :


Dernièrement, face aux « fake news » et autres campagnes de désinformation qui entourent la pandémie du
coronavirus, WhatsApp avait décidé d'agir. En réduisant le partage de certains messages (hautement transférés)
à une personne ou à un groupe au lieu de cinq, cela explique l’impact de ces types d’informations sur la vie et la
prise de décision pour les gens.

Les fake news sont définies comme « la création et le partage délibérés d’informations fausses ou manipulées
dans le but de tromper et d’induire le public en erreur, que ce soit pour lui causer du tort ou à des fins
politiques, personnelles ou financières ».

6
a - Impact des fakes news sur la santé :
Depuis l’apparition du premier cas de contamination au COVID 19 au Maroc, plusieurs fausses informations-fake
news- sont diffusés à travers les réseaux sociaux : Vidéo, posts Facebook, Tweets et audios sur WhatsApp, les
fakes news autour de l’épidémie sont relayés sous plusieurs formes et sont rapidement propagées.

On décèle plusieurs modèles de fake news sur le sujet :

Le premier tend à exagérer la situation épidémique et sécuritaire, ces informations prétendent que les cas de
contamination sont en réalité bien plus nombreux et graves que les chiffres officiels, d’autres supports
annoncent de fausses informations sur les procédures sécuritaires et

Institutionnelles en cours, elles créent, par conséquence, un sentiment de panique chez les citoyens.

Le deuxième type de désinformation vise à minimiser la gravité de la pandémie, en invoquant pêle-mêle de


recettes des grands-mères ou différentes théories du complot visant à baisser la garde face à la menace
sanitaire.

En fin, un troisième type de message, plus subversif, présente un ensemble de procédés ou d’informations
permettant de se prémunir du virus. Ces messages sont truffés d’« intox » et allient informations vérifiées et
fausses informations (Disparition du Virus sous haute température, etc.).

Ces informations n’ont aucun fondement scientifique et la référence essentiel sur le sujet reste l’OMS et les
autorités institutionnelles et internationales

FIGURE 1.1 : FAKE NEWS ET CORONAVIRUS

Covid 19 et fakes news : un fléau mondial


A l’instar du Maroc, plusieurs pays à travers le monde connaissent la diffusion de fausses Informations sur la
pandémie, En Europe des fichiers audios ou d’écrit circulent sur les Applications WhatsApp et Messanger
contenant des « Intox » sur les mesures de précaution quotidien, origine du Virus ou encore le nombre de
contamination. Se sont toujours des conseils qui viennent d’un médecin, d’une Pneumologue qui a travaillé qui
a travaillé dans un hôpital auprès de patient atteint de COVID_19 ou encore. Des chercheurs issus des groupes
de travail sur les remèdes au nouveau virus, mais la plupart du temps, ces informations, transmis massivement
sur WhatsApp ou Messanger.

7
b - Impact des fakes news sur l’économie :
Les fausse informations (fake news) ont un impact sur l’économie mondiale. Une étude récente estime leurs
coûts directs à 78 milliards de dollars. En ajoutant le coût indirect, la facture monte à 100 milliards de dollars.

Une étude réalisée par la société israélienne de cybersécurité CHEQ et l’Université de Baltimore vient ainsi de
révéler que le coût total des fake news pour la seule année 2019 était estimé à 78 milliards de dollars (70
millions d’euros).

Cet impact est ainsi réparti :

39 milliards de dollars (35 millions d’euros) de pertes boursières directement provoqués par les effets de ces
fausses informations

17 milliards de dollars (15 milliards d’euros) liés à la désinformation financière

9 milliards de dollars (8 milliards d’euros) sur le secteur de la santé

9 milliards de dollars (8 milliards d’euros) pour réparer les dégâts sur la réputation (d’une personne, d’un parti,
d’une entreprise)

3 milliards de dollars (2,7 milliards d’euros) investis par les plateformes et sites Internet pour réguler et
debunker les fausses informations

235 millions de dollars (210 millions d’euros) de pertes publicitaires pour des marques suite à de la
désinformation.

Coût des fake news : 100 milliards de dollars en tout

A ces coûts directs, les auteurs de l’étude ajoutent les coûts économiques indirects – pêle-mêle, la perte de
confiance dans les grandes institutions, le ralentissement de l’innovation, les atteintes à la réputation, la perte
d’image de marque ou les pressions sur des institutions comme l’armée et la police.

Le total approche alors les 100 milliards de dollars (90 milliards d’euros) sur l’année. Le Forum Economique
Mondial a d’ailleurs classé la diffusion de fake news parmi les principaux risques économiques mondiaux.

Un business juteux, mais qui sape la démocratie et l’économie mondiale :

Cette étude évoque également les investissements conséquents pour fabriquer ces fausses nouvelles : elle
estime à 200 millions dollars (179 millions d’euros) les sommes qui seront destinées à créer des fausses
informations pour la campagne présidentielle américaine de 2020 ; à 140 millions de dollars (125 millions
d’euros) les sommes investies en fake news pour l’élection générale en Inde en 2019 ; à 34 millions de dollars
(30 millions d’euros) pour les élections brésilienne de 2018 ; à 20 millions de dollars (18 millions d’euros) pour
les dernières élections au Kenya…

Un business juteux, qui enrichit les populistes et les créateurs de contenus sans scrupule, tout en sapant les
bases de la démocratie et de l’économie mondiale.

c - Impact des fakes news sur la politique :


Les récentes décisions politiques importantes comme le Brexit et l’élection de Donald Trump ont surpris les
journalistes et les spécialistes de la prédiction en défiant toutes les attentes. Parmi les causes de ces résultats
inattendus, on compte les « fake news ».

Ces articles, basés sur de fausses informations, ont pu être créés spécialement pour influence le résultat de ces
événements politiques.

8
Selon la rumeur, dans le cadre du Brexit et de l’élection présidentielle, des stratèges politiques ont utilisé des
tests de personnalité sophistiqués, basés sur l’activité sur les réseaux sociaux, pour créer des fakes news afin
d’influencer le vote de larges segments de la population.

Les chiffres impressionnants des fake news sur Facebook pour l’élection
II.

de Donald Trump :

FIGURE 2.1 : FAKE NEWS ET L’ÉLECTION DE DONALD TRUMP

Les fake news pour l'élection présidentielle américaine de 2016 ont eu une ampleur bien plus importante que
prévue. C'est ce que devraient déclarer les représentants de Facebook,Selon plusieurs médias, dont le Wall
Street Journal et Business Insider, Facebook devrait dévoiler que jusqu'à 126 millions d'Américains ont pu
visionner des contenus mis en ligne par des intérêts russes dans le but d'influer les élections américaines. En
clair, des rumeurs accusant Hillary Clinton ou favorables à Donald Trump.

80.000 posts ont été publiés par des trolls russes entre janvier 2015 et août 2017. 29 millions d'Américains
auraient vu apparaître ces articles directement sur leur fil d'information. En les partageant à leur tour, c'est 126
millions de personnes qui ont été exposées à ces fausses informations.

FIGURE 3.1 : FAKE NEWS DANS LES RÉSEAUX SOCIAUX

Parmi ceux-ci, 2752 seraient, selon Twitter, directement lié à la IRA, l'"Agence de recherche sur internet",
considérée comme "l'usine à trolls" du Kremlin. Un chiffre plus de 10 fois supérieur au précédent rapporté par le

9
réseau social aux autorités, en septembre. A l'époque, Twitter n'avait repéré que 201 comptes pro-russes
propageant des fakes news.

Ces comptes ont généré 1,4 million de tweets automatiques, qui ont reçu 288 millions d'interactions (like,
partage, réponse).

Google aussi s'est fait troller :

Sur son blog officiel, Google a reconnu lundi 31 octobre 2017, pour la première fois officiellement, avoir
également trouvé des contenus du même genre.

"Nous avons trouvé des preuves de tentatives de détournement de nos plateformes pendant l'élection
américaine de 2016 par des acteurs liés à l'Internet Research Agency en Russie", a écrit Google, qui parle
"d'activité limitée" sur le moteur de recherche et sa plateforme vidéo YouTube.

Sur YouTube, Google a identifié 18 chaînes (suspendues depuis par le groupe) "vraisemblablement liées" à la
campagne et ayant publié environ 1100 vidéos en anglais semblant avoir un contenu politique. Elles ont cumulé
309.000 vues aux Etats-Unis dans les 18 mois précédant l'élection.

Quelques chiffres :

29 millions d'Américains ont été exposées à des fake news sur les réseaux sociaux entre janvier 2015 et août.

45,5 millions de tweets ayant relayé ou commenté une fake news en 2019

100 articles par jour dans la presse consacrés aux fake news en 2019.

30% des Français reconnaissent avoir déjà relayé des fake news en 2019

FIGURE 4.1 : NOMBRE DE TWEET SUR LES FAKE NEWS

Fakes news guide des questions à se poser face à une information :


III.

Comment évaluer la qualité et la pertinence d'une information et discerner le vrai du faux ? Voici quelques
questions à se poser au quotidien.

1) QUI EST L'AUTEUR DE L'INFORMATION ?

L'auteur est souvent identifié au début ou à la fin d'un article, par son nom ou par ses initiales. Parfois, il n'est
pas mentionné ou il écrit sous un pseudonyme ou pour un organisme. Il est important de déterminer la

10
légitimité de l’auteur : est-il un expert ou non sur le sujet ? Certains sites proposent même d'accéder, via un lien
hypertexte, à sa biographie et à l'ensemble de ses publications.

2) QUEL EST L'OBJECTIF DE L'AUTEUR ?

L'auteur peut relater des faits ou exprimer son opinion : ce n'est pas la même chose.

3) QUELLE EST LA NATURE DU SITE ET DE SON ÉDITEUR ?

Un blog, un site institutionnel, un média en ligne, un réseau social, ..., la nature d'un site est aussi diverse que
variée et peut apprendre beaucoup sur la qualité d'une information. C'est aussi le cas pour l'éditeur du site qui
peut être un média détenu par un groupe français ou étranger, un parti politique, une entreprise, une
association, un particulier...

4) QUELS SONT LES OBJECTIFS DU SITE ?

Un site peut avoir pour objectif de vendre, d'informer, de militer, de convaincre, de manipuler, de faire peur ou
encore de faire le buzz. En fonction de l'objectif du site, l'information n'a pas la même pertinence.

5) COMMENT SE PRÉSENTE LE SITE ?

La structure, l'ergonomie, la clarté de la langue, le type de publicités, ..., la présentation d'un site est parfois
révélatrice de la crédibilité des informations qu'on y trouve.

6) D'OÙ VIENT L'INFORMATION ?

Les sources d'une information sont primordiales pour déterminer sa crédibilité. L'origine d'un chiffre ou d'une
citation, quand elle est mentionnée, permet au lecteur de s'y référer directement. Certains sites proposent des
liens hypertextes renvoyant vers les sites sources.

7) L'INFORMATION A-T-ELLE ÉTÉ PUBLIÉE SUR D'AUTRES SITES ?

Il est important de comparer et de croiser les sources. Cela permet de voir si l'information est présente sur
d'autres plateformes et de voir comment elle est traitée ailleurs.

8) DE QUAND DATE L'INFORMATION ?

Il est important de savoir à quel moment les faits relatés se sont produits. Par exemple, certaines fausses
informations s'appuient sur des images prises dans des contextes et à des moments différents pour commenter
un sujet d'actualité. Les légendes sous les images, la date de publication d'un article, les métadonnées sont
susceptibles d'apporter de précieux renseignements.

9) L'INFORMATION PRÉSENTE-T-ELLE DES DÉTAILS INCOHÉRENTS ?

Par exemple, lorsque l'image ne correspond pas à la légende qui l'accompagne, cela doit éveiller les soupçons
sur la véracité de l'information.

10) QUE DISENT LES COMMENTAIRES ?

Parce qu'ils soulignent parfois l'incohérence d'une information, les commentaires des internautes sont utiles
pour jauger la crédibilité des informations avancées.

IV. Les challenges de la lutte contre les fakes news :

1- Le partage de l'émotion :
Comme le souligne Benoît Raphaël, expert en innovation média, journaliste, créateur de Le Plus de
l'Obs et Le Lab d'Europe 1, la démonstration qu’une info est fausse par des fact-checkers spécialistes ne
11
suffit pas : “Le problème c'est que de récentes études ont montré que même quand vous démontrez
qu'une info est fausse, cela n'empêche pas les internautes de la partager, parce que ce n'est plus tant
l'info qui importe que le message qu'elle véhicule, ou l'émotion qu'elle reflète. En plus de journalistes
fact-checkers ou de "tiers de confiance", on a aussi besoin d'autonomie chacun face à la vérification de
l'info”. Nombreux sont les internautes qui veulent croire à ces fakes news, qui correspondent à leurs
envies, leurs prises de position. Ils les partagent à des sphères qui ne seront jamais ou rarement en
contact avec les flux de messages des fact-checkeurs.
2- L’imperméabilité au fact-checking :
En effet, dans un contexte de défiance jamais vu envers les politiques, les institutions, les entreprises et
les médias, les consommateurs de fake news sont devenus très imperméables aux analyses et
signalement émanant de fact checkeurs travaillant pour...des médias.
3- La rémanence :
Autre problème : la tendance à la persistance de la fake news. A l’instar des Hoax, débusqués par des
acteurs comme Hoaxbuster depuis près de...20 ans, les fake news sont recyclées, recyclent elles-
mêmes d’anciennes images ou vidéos.

Pire, certains propagateurs de fake news n’effacent pas leur messages après le signalement par un fact-
checkeur du caractère mensonger de l’information. Or, un simple correctif ou erratum sera beaucoup moins
partagé et visible.

Chapitre 2 Contexte du projet :


Problématique
I.

De plus en plus répandues sur le web, les Fake News sont un véritable problème. Les fausses informations
peuvent accentuer les tensions sociales, influencer les élections politiques, la santé, l’économique, nuire à la
réputation d’une personnalité publique, ou même alimenter les conflits entre deux pays.

Malheureusement, les géants de la tech peinent à trouver une solution pour endiguer ces informations
fallacieuses. Actuellement, le fact-checking et la modération sont principalement effectués par des humains
chargés de vérifier la véracité des articles au cas par cas. C’est par exemple la méthode employée par Facebook,
qui fait appel à des milliers de modérateurs pour ” nettoyer ” sa plateforme. Or, ce processus se révèle
incroyablement long et fastidieux. De plus, les modérateurs humains peuvent eux-mêmes faire preuve d’une
subjectivité néfaste dans leurs jugements.
Le problème de la publication de fausses nouvelles n'est pas nouveau et il a déjà été signalé dans les âges
anciens, mais il a commencé à avoir un impact énorme, en particulier sur les utilisateurs des médias sociaux. Ces
fausses informations doivent être détectées dès que possible afin d'éviter leur influence négative sur les
lecteurs et, dans certains cas, sur leurs décisions, par exemple pendant l'élection. Par conséquent, les méthodes
qui peuvent détecter efficacement les fausses nouvelles font l'objet de recherches intenses.

FIGURE 5.1 : NOMBRE DE NEWS DANS LES RÉSEAUX SOCIAUX


12
La question aujourd’hui n’est plus de savoir si les fake news ont eu un impact réel sur ces décisions politiques. Il
faut maintenant se demander comment combattre ce phénomène. Les journalistes sont formés à vérifier leurs
sources minutieusement, mais même eux peuvent être trompés par les fake news les plus réussies. Dans ce
contexte, comment le consommateur moyen peut-il distinguer le vrai du faux ?

Solution et objectif :
II.

1- Solution :
Les « fake news », ou fausses informations, constituent l’un des principaux fléaux du siècle, à l’ère d’internet et
des réseaux sociaux. Pour lutter contre la désinformation à grande échelle et ses conséquences politiques
désastreuses.

Seules des machines sont capables de traiter la masse colossale d'informations qui circulent sur le web. Chaque
minute dans le monde, 98 000 messages sont publiés sur Twitter, 500 000 commentaires et 130 000 photos
envoyés sur Facebook et 400 heures de vidéo sont montées sur YouTube. Humainement, c'est impossible de
traiter cette quantité d'informations. Le problème et que parmi toutes ces informations, certaines sont des fake,
c’est-à-dire de la désinformation. Alors on va le déléguer à une machine.

Du point de vu de l’informatique, nous somme sur un problème de classification entre les messages
correspondant à une information vérifiée et ceux relevant de la désinformation.

Une solution reposant sur l’Intelligence artificiel pourrait s’avérer extrêmement utile. Nous allons développer un
système de Machine Learning permettant d’évaluer prédire la catégorie des informations (vraies informations,
fausses informations).

Nous allons utiliser les techniques de l’apprentissage profond (Deep Learning) pour les résultats et les
performances de ces techniques pour la prédiction des catégories des informations.

2- Objectif :
L’objectif de ce système est de prédire quelles sont les sources qui ont le plus de chances de publier de fausses
informations. Le système est programmé pour classer les informations en deux classes : fake ou no Fake.

Chapitre 3 Etude Conceptuelle


I.Cycle de vie de développement d’un projet machine learning/deep
learning:
Les entreprises digitales ont déjà un cycle de vie à gérer, celui de la donnée (voir Figure 6). Il consiste
principalement à ingérer la donnée à la source, à la valider et à la redistribuer auprès des acteurs ou des
solutions métier. Le cycle de vie de la donnée est déjà quelque chose de complexe et technique à gérer, mais qui
s’accompagne via des méthodes de gouvernance.

FIGURE 6.1 : CYCLE DE VIE DES MODÈLES


13
Le cycle de vie des modèles est une conséquence du cycle de vie des données. D’abord pour prédire, le modèle
doit être branché sur des données émises au jour le jour. Ensuite pour le réentraînement, le modèle doit avoir la
possibilité de s’adapter sur des données fraîches et labellisées pour maintenir sa performance.

Arrive alors un nouvel élément : le modèle prédictif. Cela peut être une moyenne, une règle métier ou un
modèle de machine Learning, il s’agit dans tous les cas d’un mécanisme qui se nourrit de données passées pour
propager une information vers le futur. Le modèle va donc devoir se brancher sur le cycle de vie des données de
deux manières différentes : pour s’entraîner d’une part et pour prédire d’autre part.

Chapitre 4 : La Réalisation de projet


I.Introduction :
Nous arrivons maintenant à la phase ultime. Cette dernière partie est la plus importante puisqu’elle met en
réalité toute la théorie précédente.

Comme nous avons présenté dans le premier chapitre, notre problématique c’est comment distinguer entre les
fausses et les vraies informations à partir.

Afin de résoudre ce problème nous allons appliquer les techniques d’apprentissage automatique (Machine
Learning) et profond (Deep Learning).

Dans la première étude (apprentissage automatise) le but c’est de tester les capacités d’un système de
classification automatique à détecter si une information est vari ou fausse dont provient d’une dataset déjà
préparé avec la technique de scraping pour récupérer les articles depuis des sites qui publient des faux articles
ou des contenus ironiques.

Dans un premier temps nous allons préparer nos données avant de les utiliser, puis nous allons choisir le ou
plutôt les algorithmes de Machine Learning qui nous semble les mieux adaptés afin de prédire qu’un news est
fausse ou vrai grâce à des données d’entrainement.

C’est-à-dire que nous allons analyser et préparer les données et leur donner une signification (Fake news et real
news).

C'est à partir de cette signification que la machine va réaliser son apprentissage. L'objectif étant d'indiquer à la
machine que pour une série de données nouvelles et pour une observation précise, la valeur à prédire est la
catégorie des actualités (vrais, faux).

Ensuite, pour tester la qualité de l'apprentissage du modèle, nous l'évaluons sur un banc d'essai où il n'a jamais
vu les réponses !

La deuxième approche c’est une approche par apprentissage profond (Deep Learning), et dans cette étape
nous nous allons créer un classificateur CNN (Convolutional Neural Network) pour prédire la catégorie des
actualités (vrais, faux).

Application des techniques d’apprentissage automatique pour prédire la


II.

catégorie des actualités (vrais actualité/faux actualité) :


1- Introduction au Machine Learning :

a - Définition apprentissage automatique (Machine Learning) :


Le Machine Learning, aussi appelé apprentissage automatique en français, est une forme d’intelligence
artificielle permettant aux ordinateurs d’apprendre sans avoir été programmés explicitement à cet effet.

14
Cette technologie permet de développer des programmes informatiques pouvant changer en cas d’exposition à
de nouvelles données.

Le Machine Learning est une méthode d’analyse de données permettant d’automatiser le développement de
modèle analytique. Par le biais d’algorithmes capables d’apprendre de manière itérative.

Figure 7.1 : cycle de vie des modèles

b - Les principales méthodes de Machine Learning :


Les deux méthodes de Machine Learning les plus couramment utilisées sont l’apprentissage supervisé &
l’apprentissage non supervisé.

Figure 8.1 : Méthodes machine learning

c - Objectif machine Learning :


L’objectif du machine Learning est de laisser la machine construire son système de raisonnement sans avoir à
imposer un programme au préalable. Pour cette phase d’apprentissage, la machine se base sur plusieurs
exemples afin de comprendre la logique du modèle qu’elle doit intégrer.Pour se former, le machine learning va
s’intéresser aux masses de données à analyser afin d’en déterminer l’algorithme de transformation. A partir des
exemples étudiés, le machine Learning commence ainsi sa phase d’apprentissage en toute autonomie.
15
d - Méthodologie de conduite du projet :
Les éléments clés d’un projet de Machine Learning réussi :

Pour mener un projet de Machine Learning efficace, voici les 8 étapes à suivre :

1) Identifiez les cas d’usage 6) Élaborez un modèle


7) Développez votre produit
et les besoins de l’entreprise adapté à votre projet

2)Identifiez les jeux de


5)Prenez soin de vos données 8)Testez et rectifiez
données nécessaires

4)Identifiez et dimensionnez
3)Déterminez le produit à l’architecture nécessaire
développer pour alimenter votre
plateforme avec des données

Figure 9.1 : Les éléments clés d’un projet de Machine Learning

2- Gestion de projet avec l’outil Trello :

Présentation :
Trello est un outil de gestion de projet en ligne gratuit, lancé en septembre 2011 et inspiré par la
méthode Kanban de Toyota. Il repose sur une organisation des projets en planches listant des cartes,

Chacune représentant des tâches. Les cartes sont assignables à des utilisateurs et sont mobiles d'une planche à
l'autre, traduisant leur avancement.

Figure 2.1 : Interface outil Trello

16
3- Outils et langages utilisés :

Anaconda est une distribution libre et open source des langages de programmation Python et R appliqué au
développement d'applications dédiées à la science des données et à l'apprentissage automatique (traitement de
données à grande échelle, analyse prédictive, calcul scientifique), qui vise à simplifier la gestion des paquets et
de déploiement. Les versions de paquetages sont gérées par le système de gestion de paquets anaconda. La
Distribution Anaconda est utilisée par plus de 6 millions d'utilisateurs, et il comprend plus de 250 paquets
populaires en science des données adaptés pour Windows, Linux et MacOS.

Jupyter est une application web utilisée pour programmer dans plus de 40 langages de programmation, dont
Julia, Python, R, Ruby ou encore Scala. Jupyter permet de réaliser des notebooks, c'est-à-dire des programmes
contenant à la fois du texte en markdown et du code en Julia, Python, R... Ces notebooks sont utilisés en
science des données pour explorer et analyser des données.

Langage de programmation objet, multi-paradigme et multiplateformes. Il favorise la programmation


impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort, d’une gestion
automatique de la mémoire par ramasse-miettes et d'un système de gestion d’exceptions ; il est ainsi similaire à
Perl, Ruby, Scheme, Smalltalk et Tcl.

4- Les phases d’un projet de Machine Learning :

Un projet Machine Learning ce n’est pas un projet de développement classique et il a donc ses propres
contraintes mais surtout il aura besoin d’une grande souplesse et de réajustements réguliers.

Réussir son projet de Machine Learning revient à respecter les étapes ci-dessous :

Accès &
Acquisition Analyse des Modélisati Déploiemen
des données données on t

Définition des Préparation Evaluation &


objectifs des données scoring

Figure 2.2 : Les phases d’un projet de Machine Learning

a- Etape 1 : Acquisition des données


L’algorithme se nourrissant des données en entrée, c'est une étape importante. Il en va de la réussite du projet,
de récolter des données pertinentes et en quantité suffisante.

17
Malheursement nous n'avons pas trouvé un dataset sur le web destiné au problématique de fake news en
langage français, pour cela nous avons utilisé les techniques de scraping pour récupérer les articles depuis des
sites qui publient des faux articles ou des contenus ironiques.

Ci-dessous la liste du site :

❖ Le corpus de Fake news :

- legorafi.fr- secretnews.fr- mespropresrecherches.com- limmunite.fr- lejournalnews.com -corse-machin.com-


radiomogette.com- leouestfranc.com- teurgoole.fr- sud-ou-est.fr- lechodelaboucle.fr- lamentable.fr-
radiocockpit.fr- nordpresse.be-el-manchar.com-bopress.ma- raleursactuels.com- on-dit-quoi.blogspot.com-
desavantage.com- worldtvdesinfo.com

❖ Le Corpus des vrais articles :

- europe1.fr- 20minutes.fr- lexpress.fr- francetvinfo.fr- dhnet.be- lefigaro.fr- 7sur7.be- huffingtonpost.fr-


leparisien.fr- lepoint.fr- lemonde.fr- ladepeche.fr- nouvelobs.com- rtl.fr- lesoir.be- france24.com- lesechos.fr-
metronews.fr- journaldunet.com- rfi.fr- sudouest.fr- liberation.fr- linternaute.com- ouest-france.fr- rtbf.be-rtl.be

Utilisation de la méthode Scraping pour collecter nos données :

Qu’est-ce que le Web Scraping :


Le scraping Web est une méthode automatisée utilisée pour extraire de grandes quantités de données de sites
Web. Les données sur les sites Web ne sont pas structurées. Le web scraping permet de collecter ces données
non structurées et de les stocker sous une forme structurée. Il existe différentes façons de récupérer des sites
Web tels que les services en ligne, les API ou l'écriture de notre propre code.

Dans ce chapitre, nous allons voir comment mettre en œuvre le scraping Web avec Python.

Le Web Scraping est-il légal :


Pour savoir si le scraping Web est légal ou non, certains sites Web autorisent le scraping Web et d'autres non.
Pour savoir si un site Web autorise ou non le raclage Web, vous pouvez consulter le fichier «robots.txt» du site
Web. Vous pouvez trouver ce fichier en ajoutant «/robots.txt» à l'URL que vous souhaitez supprimer

Utilisation Python pour le Web Scrap ?


Vous avez probablement entendu à quel point Python est génial. Mais, il en va de même pour les autres
langues. Alors pourquoi devrions-nous choisir Python plutôt que d'autres langages pour le Web Scrap?

Voici la liste des fonctionnalités de Python qui le rend plus adapté au scraping web.

1- Facilité d’utilisation : Python est simple à coder. Vous n'êtes pas obligé d'ajouter des points-virgules ";" ou
des accolades "{}" n'importe où. Cela le rend moins salissant et facile à utiliser.
2- Grande collection de bibliothèques : Python possède une énorme collection de bibliothèques telles que
Numpy, Matlplotlib, Pandas, etc., qui fournit des méthodes et des services à des fins diverses. Par
conséquent, il convient au Web Scraping et à la manipulation ultérieure des données extraites.
3- Typé dynamiquement : en Python, vous n'avez pas à définir de types de données pour les variables, vous
pouvez utiliser directement les variables là où c'est nécessaire. Cela vous fait gagner du temps et accélère
votre travail.
4- Petit code, grande tâche : le Web scraping est utilisé pour gagner du temps. Mais à quoi ça sert si nous
passons plus de temps à écrire le code. Avec python nous n’allons pas à le faire. Nous pouvons écrire de
petits codes pour effectuer de grandes tâches. Par conséquent, vous gagnons du temps même lors de
l'écriture du code.
5- Syntaxe facilement compréhensible : La syntaxe Python est facilement compréhensible principalement
parce que la lecture d'un code Python est très similaire à la lecture d'une instruction en anglais.

18
Il est expressif et facilement lisible, et l'indentation utilisée en Python aide également l'utilisateur à différencier
les différentes portées / blocs dans le code.

Fonctionnement et les étapes de Scraping Web:


Lorsque vous exécutons le code de scraping Web, une demande est envoyée à l'URL que nous avons
mentionnée. En réponse à la demande, le serveur envoie les données et nous permet de lire la page HTML ou
XML. Le code analyse ensuite la page HTML ou XML, recherche les données et les extrait.

Pour extraire des données à l'aide du web scraping avec python, nous devons suivre ces étapes de base:

1. Trouvez l'URL de la page à partir de laquelle nous souhaitons extraites les données.
2. Inspection de la page.
3. Trouvez les données que nous souhaitons extraire
4. Ecrire le code
5. Exécutez le code et extrayez les données.
6. Stocker les données dans le format requis.

Bibliothèques utilisées pour le Web Scraping

Comme nous le savons, Python est utilisé pour diverses applications et il existe différentes bibliothèques à des
fins différentes. Dans notre cas, nous utiliserons les bibliothèques suivantes pour le scraping:

• Selenium: Selenium est une bibliothèque de tests Web. Il est utilisé pour automatiser les activités du
navigateur.
• BeautifulSoup : Beautiful Soup est un package Python pour l'analyse de documents HTML et XML. Il crée des
arbres d'analyse qui sont utiles pour extraire facilement les données.
• Pandas : Pandas est une bibliothèque utilisée pour la manipulation et l'analyse des données. Il est utilisé
pour extraire les données et les stocker dans le format souhaité.

b- Etape 2 : Définition des objectifs dans la technique d’apprentissage automatique :

Il s’agit ici de déterminer quelle typologie de problème que nous devons résoudre.

Pour cela nous devons savoir si nous avons des données d’expérimentation avec résultat ou non, afin de
déterminer si nous abordons un problème de type supervisé ou non-supervisé.

Ensuite quelle est la typologie du problème à résoudre (Régression, Classification, Clustering…).

Les données utilisées pour évaluer notre modèle sont celle que nous avons collecté grâce au méthode Scraping.
Nos données sont déjà réparties en deux classes.

Nous allons utiliser ces données pour développer un modèle qui peut prédire le score de la catégorie des
informations (fausses informations, vraies informations), puis interprétons les résultats pour trouver les
variables les plus prédictives du score.

Du point de vu de l’informatique, nous somme sur un problème de classification entre les messages
correspondant à une information vérifiée et ceux relevant de la désinformation.

Problème supervisé : on nous donne à la fois les fonctionnalités et la cible (données étiquetées).

Ci-après les objectifs que nous souhaitons atteindre grâce aux techniques de machine Learning que nous allons
appliquer :

❖ Identifier les prédicteurs dans l'ensemble de données.

19
❖ Construire des modèles de régression / classification qui peuvent prédire le score compte tenu de nos
données.
❖ Interpréter les résultats des modèles et utiliser le meilleur modèle entrainer pour classer des nouvelles
actualités.

Pendant l’entrainement de notre modèle, nous voulons que notre modèle apprenne la relation entre les
caractéristiques (Features) et le score, nous lui donnons donc à la fois les caractéristiques et la réponse (fausse
informations ou vraie information).Ensuite, pour tester la qualité de l'apprentissage du modèle, nous l'évaluons
sur un banc d'essai où il n'a jamais vu les réponses !

c- Etape 3 : Accès au jeu de données :


Une étape cruciale dans laquelle on va retravailler les données (features ou variables). C’est une opération
indispensable car les algorithmes de Machine Learning n’acceptent pas tout type de données. C’est une
opération nécessaire afin d’affiner les variables pour qu’elles soient mieux gérées par ces mêmes algorithmes.

Importer les librairies nécessaires :


La première étape consiste à importer les librairies qui nous seront utiles pour la construction de notre modèle.
Dans notre cas, nous travaillerons avec trois librairies complétement indispensables pour le déroulement de
notre projet, il s’agit de :

❖ NUMPY : qui nous permet d’utiliser des maths dans notre code, et ainsi faire de gros calculs avec
Python.
❖ PANDAS : cette librairie est la meilleure concernant la gestion et le traitement des Datasets.
❖ MATPLOTLIB : pour visualiser nos résultats sous forme de graphs (Courbes, Diagrammes,
Histogrammes…). Nous utiliserons plus précisément le module « PYPLOT » qui nous sera très utile pour
visualiser des graphs en 2D.

Importer le Dataset:
Nous allons charger nos données dans un DataFrame Pandas, l'une des structures de données les plus utiles
pour la science des données. Considérons-le comme une feuille de calcul dans Python que nous pouvons
facilement manipuler, nettoyer et visualiser. Pandas a de nombreuses méthodes pour aider à rendre le pipeline
science des données/apprentissage automatique aussi fluide.

Dans un premier temps, nous commençons d’abord d’importer notre dataSet de Fake news.

Traitement sur Fake news DataSet :


Pour importer notre Dataset, on va l’affecter à la variable df_fakenews on utilisant la méthode d’importation «
read_csv (..)».

Nous avons un total de 16 383 lignes contient des fausses informations, dans le chapitre suivant nous allons voir
comment préparer et nettoyer ces données.

20
Caractéristiques :

d- Etape 4 : Préparation et nettoyage des données (feature engineering)


Nettoyez les données (cela représente en général 90 % du travail), cette étape ultime est essentielle pour
réduire la complexité des modèles, mais elle requiert une connaissance poussée du domaine pour être menée à
bien.

Nettoyage et pré-traitement des données brutes :


Le Data Cleaning (nettoyage de données) est l’étape la plus importante avant d’analyser ou modéliser des
données mais elle peut être très fastidieuse.

Nous allons passer par plusieurs étapes afin de bien préparer nos données avant de les utiliser.

Etape 1 : Les données dupliquées :


Une partie importante de l'analyse des données consiste à analyser les valeurs en double et à les supprimer.
La méthode drop_duplicates () de Pandas aide à supprimer les doublons.

Etape 2 : Identifier les données dupliquées :


Les doublons peuvent être identifiés avec la méthode duplicated() de la classe DataFrame. Cette méthode
retourne une série de valeurs True et False que vous pouvez utiliser pour afficher les lignes dupliquées.

Dans un premier temps, nous vérifions si nous avons des titres dupliqués de nos news.

Il est maintenant le temps de ranger notre liste. Heureusement, Pandas a pensé à cela aussi et DataFrame a une
méthode appelée drop_duplicates () qui, comme son nom le suggère déjà, supprime les doublons et renvoie le
résultat nettoyé.

La méthode drop_duplicates () définit les lignes en double si toutes leurs colonnes ont la même valeur. Par
conséquent.

Etape 3 : Traitement et nettoyage de texte (caratères spéciaux, espace multiples, ...) :


La première étape du traitement des données texte est de récupérer le texte et le nettoyer afin de pouvoir
l'utiliser ultérieurement dans nos algorithmes.

On procède en premier lieu au prétraitement pour nettoyer les textes et les préparer à la représentation
vectorielle. On utilise les expressions régulières pour cette phase de nettoyage.

1. On enlève les caractères spéciaux

21
2. On enlève les mots à un caractère

3. On remplace les espaces multiples par un seul espace

4. Convertir en minuscules

Etape 4 : Sauvegarde des données :


Après le nettoyage de ces données, nous allons les enregistrer afin de les utiliser pour entrainer notre model.

Code :

Traitement et nettoyage des données des vraies Articles :


Appliquons ces étapes, une à une, sur le premier document.

Nous avons appliqué les différentes étapes précédentes que nous avons déjà utilisé sur le traitement des
fausses informations (Vérification des données vides, suppression des lignes sans contenu,
vérification/suppression des données dupliqués, Traitement et nettoyage de texte, Feature selection) afin de
bien préparé et nettoyé les données des vrais articles avant de les analyser ou les modéliser.

Après le nettoyage de ces données, nous allons les enregistrer afin de les utiliser pour entrainer notre model.

e- Etape 5 : Analyse des données

Après avoir bien préparer et nettoyé nos données, Il est maintenant le temps de les analyser.

Étant donné que Fake News Corpus est le jeu de données principal, l’analyse des données commencera par cet
ensemble de données.

Nous commençons tout d’abord par la visualisation de nos données.

Visualisation des données :


La visualisation des données est une partie essentielle du pipeline de la data science. Lors des premières étapes
d’un projet, vous effectuerez souvent une analyse exploratoire des données afin d’avoir une compréhension
plus profonde de vos données. Parfois, nous ne voyons aucun sens dans notre data set tant que nous ne les
avons pas sous une forme visuelle, telle que des graphiques et des histogrammes ou des maps.

La visualisation des données participe vraiment à rendre les choses plus accessibles et plus faciles à
comprendre, en particulier avec des jeux de données de grandes dimensions et de grandes tailles.

❖ Affichages des vrais articles par site :

Une caractéristique intéressante à examiner est la distribution des sources d'information par rapport à leur

Catégories. Cela montre que dans certains cas, des sources prédomines.

Par exemple, en regardant à la figure 2.3 montre que la plupart des faux articles proviennent de sud-ou-est.fr et
radiocockpit.fr, du de la même manière, par contre on trouve des vraies articles (dans plusieurs sites tel que :
europe.fr, 20minites.fr, metronews.fr……….
22
Il faut en tenir compte lors de la formation et de la mise à l'essai des modèles, car l'objectif n'est pas de faire la
distinction entre ces deux sources mais entre les fausses et vraies informations.

Figure 2.3 : Nombre des vrais articles par site

❖ Affichage des faux articles par site :

Figure 2.4 : Nombre des faux articles par site

❖ Distribution des mots des titres :

Une autre fonction d'importation à examiner est la distribution du nombre de mots dans le texte.

En effet, à un moment donné, il sera nécessaire de x une longueur constante pour les textes et en utilisant pour
une petite longueur signifierait beaucoup de coupe et une taille trop longue signifierait trop rembourrage. Il est
donc nécessaire d'étudier la longueur des textes afin de choisir le bon.

23
Figure 2.5 : Distribution de la moyenne de mots dans les titres des faux articles

Figure 2. 6 : Distribution de la moyenne de mots dans les titres des vrais articles

Figure 2.7 : BoxPlot de nombre de mots dans les titres des faux articles et vrais articles

24
On peut voir à la figure 2.7 que les titres des fausses nouvelles contiennent un peu plus de mots que les titres
des informations fiables, mais la différence est minime.

❖ Distribution des mots des articles :

Figure 2.8 : Distribution de la moyenne de mots par article : fausses inofmation

Figure 2.9 : Distribution de la moyenne de mots par article : vraies informations

25
Figure 2.10: BoxPlot de nombre de mots dans les faux articles et vrais articles

❖ Analyse linguistique :

Fonctions auxiliaires

Les textes sont prétraités en utilisant NLTK

La première étape consiste à diviser le texte en un tableau de phrases sur la ponctuation d'arrêt comme des
points ou des points d'interrogation, mais pas sur des virgules.

La deuxième étape consiste à filtrer les mots contenus dans ces phrases, pour ce faire, on va utiliser Stop Words
(mots tels que « ainsi », « apparemment », « alors »), ponctuation, mots ou taille inférieure ou égale à
l'arborescence.

Les mots non alphanumériques, les valeurs numériques et les balises (telles que les balises html) ont été
supprimées.

❖ Analyse des titres :

Figure 3.1: 10 mots plus courants dans les titres des faux articles
26
Figure 3.2: 10 mots plus courants dans les titres des vrais articles

❖ Analyse des tri-grams pour les titres :

Un n-gramme est une sous-séquence de n éléments construite à partir d'une séquence donnée. L'idée semble
provenir des travaux de Claude Shannon en théorie de l'information. Son idée était que, à partir d'une séquence
de lettres donnée (par exemple « par exemple ») il est possible d'obtenir la fonction de vraisemblance de
l'apparition de la lettre suivante. À partir d'un corpus d'apprentissage, il est facile de construire une distribution
de probabilité pour la prochaine lettre avec un historique de taille {\displaystyle n}.

Cette modélisation correspond en fait à un modèle de Markov d'ordre n {\displaystyle n}nnnn où seules les
n {\displaystyle n}n dernières observations sont utilisées pour la prédiction de la lettre suivante. Ainsi un
bigramme est un modèle de Markov d'ordre 2.

Figure 2.3 : tri-gram plus courants dans les titres des faux articles

27
Figure 3.4 : tri-gram plus courants dans les titres des vrais articles

❖ Les nuages de mots pour les titres

Figure 3.5 : Nuage des mots pour les titres des vrais et faux articles

❖ Analyse de contenu :

Figure 3.6 : 10 mots plus courants dans le contenu des faux articles

28
Figure 3.7 : 10 mots plus courants dans le contenu des vrais articles

❖ Analyse des tri-grams pour le contenu

Figure 3.8 : tri-gram plus courants dans le contenu des vrais articles

29
Figure 3.9 : tri-gram plus courants dans le contenu des vrais articles

❖ Les nuages de mots pour le contenu :

Figure 3.10 : Nuage des mots pour le contenu des vrais et faux articles

❖ Analyse de sentiment des textes :

Cette analyse est effectuée en utilisant le package vaderSentiment avec un fichier de lexique de vocabulaire
français.

Figure 4.1 : Analyse de sentiment des faux articles

30
Figure 4.2 : Analyse de sentiment des vrais articles

f- Etape 6 : Modélisation :
Classification avec les algorithmes classiques de Machine Learning :
Lors de cette étape nous allons choisir le ou plutôt les algorithmes de Machine Learning qui nous semble les
mieux adaptés.

La difficulté n’est pas dans ce choix mais plutôt dans l’ajustement des hyperparamètres que vous allez devoir
faire afin d’obtenir un modèle performant

Pour développer ces modèles prédictifs, l’apprentissage supervisé va notamment se baser sur des techniques de
classification.

La mise en pratique des techniques de classification implique le fait que les données peuvent être identifiées et
catégorisées en fonction de leurs caractéristiques.

La première chose à faire en travaillant avec du texte est l'incorporation de mots et de textes, en effet, afin
d'utiliser ces algorithmes d'apprentissage automatique sur les textes, une représentation mathématique de ces
textes est nécessaire.

Reporting sur la dataset :


L'analyse exploratoire des données (EDA : Exploratory Data Analysis) joue un rôle très important dans la
compréhension de l'ensemble de données.

C’est la tâche principale à effectuer.la tâche consistant à effectuer une analyse exploratoire des données
augmente en parallèle avec le nombre de colonnes de notre ensemble de données.

l'EDA devient parfois une tâche fastidieuse -mais rappelez-vous que tout est dicté par un ensemble de règles -
comme tracer le diagramme et l'histogramme pour une variable continue, mesurer les valeurs manquantes,
calculer la fréquence si c'est une variable catégorielle - nous donnant ainsi la possibilité d'automatiser des
choses.

C'est la base de ce module python pandas_profiling qui aide à automatiser le premier niveau d'EDA.

Pour chaque colonne, les statistiques suivantes, sont pertinentes pour le type de colonne Essentials :

- Type, unique values, missing values


- Quantile statistics like minimum value, Q1, median, Q3, maximum, range, interquartile range
- Descriptive statistics like mean, mode, standard deviation, sum, median absolute deviation, coefficient
of variation, kurtosis, skewness
- Most frequent values.

31
Histogram :
Corrélations mettant en évidence des variables hautement corrélées, des matrices de Spearman et Pearson

Figure 4.3 : Corrélation des variables

La distribution de données :
On peut voir à la figure 3.4 que nos données sont déséquilibrées. (Unbalanced Data Sets)

Figure 4.4 : distribution des faux et vrais articles par site

Les classes déséquilibrées sont un problème courant dans la classification de l'apprentissage automatique.

La plupart des algorithmes d'apprentissage automatique fonctionnent mieux lorsque le nombre d'échantillons
dans chaque classe est à peu près égal.

Nous remarquons que le nombre d’articles des vraies nouvelles est plus que des fausses nouvelles.

Pour cela nous allons appliquer le downsampling sur le dataset realnews pour équilibrer les échantillons.

Downsampling :
startegy pour gérer les classes déséquilibrées en créant un sous-ensemble aléatoire de la majorité de taille égale
à la classe minoritaire.

Après application de downsampling sur le dataset Real news, on envois bien que nos données soient bien
équilibrées maintenant.

32
Figure 4.5 : distribution des faux et vrais articles par site

Après avoir bien équilibré les deux classes, nous commençons maintenant pour importer les librairies
nécessaires pour l’analyse de texte.

Application de Lemmatisation/stemming avec FrenchStemmer :

Lemmatisation et stemming génèrent toutes deux la forme racine des mots. La différence est que le radical
n'est peut-être pas un mot réel.

Le stemming suit un algorithme avec des étapes à effectuer sur les mots ce qui le rend plus rapide.

Pour appliquer le stemming, on aura besoin d'un lemmatiseur. Pour ce on a téléchargé wordnet.

Le but pour appliquer le lemmatiseur c’est pour remonter à la racine du mot.

Appliquons cette méthode sur le premier élément de data fakes news.

Code :

33
Vectorisation des documents et extraction de features :

On procède à l'extraction des features, après suppression des stopwords.

On choisit la valeur de min_df, le nombre minimum de documents où chaque feature apparait par exemple 5.

On choisit aussi max_df, le nombre maximum où le feature apparait. Ici on a choisi 0.7, ça veut dire chaque
feature doit apparaitre au plus dans 70% des documents.

CountVectorizer génère une matrice où chaque ligne représente un document, et chaque colonne fait référence
à un feature.

On peut afficher le nombre de features extraits, et la liste de ces features.

Générer la matrice avec une représentation TF/IDF de nos nouvelles :

Des fois il vaut mieux opter par une représentation TFIDF. On va générer la matrice avec cette représentation
pour nos nouvelles.

34
Préparation des parties apprentissage et d'une partie test (Training and Testing Sets) :
On prépare les données pour la classification. On aura besoin d'une partie apprentissage et d'une partie test.

Le module model_selection de Scikit-Learn propose des fonctions pour séparer le jeu de données du jeu de tests
qui sont attentives à ce type de petits problèmes.

La fonction train_test_split permet de décomposer le jeu de données en 2 groupes : les données pour
l'apprentissage et les données pour les tests.

Le paramètre test_size indique la taille du jeu de nos données de test qui sera utilisé : 20% des enregistrements.

On choisit de consacrer 20% de nos données au test et 80% qui restent pour la partie apprentissage afin
d’entrainer notre modèle sur les données des fausses et vraies informations.

une partie sera dédiée au données textuelles, et une partie dédiée aux labels.

Model :
Dans ce chapitre nous allons appliquer les classificateurs d'apprentissage automatique pour prédire si les
nouvelles données sont de vraies nouvelles ou de fausses nouvelles. Pour cette tâche, nous formerons quatre
algorithmes de classification populaires - RandomForestClassifier, LogisticRegression, Naive-Bayes et KNN:
k Nearest Neighbors pour prédire les fausses nouvelles. Après avoir évalué les performances des quatres
algorithmes, nous conclurons lequel de ces quatres est le meilleur dans la tâche.

Nous commençons par un très bref récapitulatif de chaque modèle ses avantages, inconvénients et de son
fonctionnement.

RandomForestClassifier :

Qu’est-ce que la RandomForestClassifier ?


Rapide, robuste et parallélisable. L’idée est d’entrainer plusieurs arbres de décision sur des sous-ensembles
aléatoires et différents de notre jeu de données. Au final un vote démocratique de nos différents groupes nous
donne la prédiction.

Figure 4.6 : RandomForest pour la classification

Avantages algorithme RandomForestClassifier :


-Peut résoudre les deux types de problèmes que sont la classification et la régression et fait une estimation
décente sur les deux fronts.

35
-Peut gérer de grands ensembles de données avec une dimensionnalité plus élevée. Il peut gérer des milliers de
variables d'entrée et identifier les variables les plus significatives, il est donc considéré comme l'une des
méthodes de réduction de dimensionnalité. De plus, le modèle affiche l'importance de la variable, ce qui peut
être une caractéristique très pratique.

-Il dispose d'une méthode efficace pour estimer les données manquantes et maintient la précision lorsqu'une
grande partie des données sont manquantes.

Inconvénients algorithme RandomForestClassifier :


-Il fait sûrement un bon travail de classification mais pas en ce qui concerne le problème de régression car il ne
donne pas de prédiction précise de la nature continue. En cas de régression, il ne prédit pas au-delà de la plage
des données d'entraînement, et qu'ils peuvent sur-ajuster des ensembles de données particulièrement
bruyants.

-Peut ressembler à une approche de boîte noire pour les modélisateurs statistiques, nous avons très peu de
contrôle sur ce que fait le modèle. Vous pouvez au mieux essayer différents paramètres et graines aléatoires.

LogisticRegression :

Qu’est-ce que la régression logistique ?


La régression logistique ressemble un peu à la régression linéaire, mais elle est utilisée lorsque la variable
dépendante n'est pas un nombre, mais quelque chose d'autre (comme une réponse Oui / Non). Elle s'appelle
Régression mais effectue la classification en fonction de la régression et classe la variable dépendante dans l'une
ou l'autre des classes.

Figure 4.7 : Logistic Regression pour la classification

Les outils en python pour appliquer la régression logistique :


Il existe de nombreux packages pour calculer ce type de modèles en python mais les deux principaux sont scikit-
learn et statsmodels

Scikit-learn, le package de machine learning :


Scikit-learn est le principal package de machine learning en python, il possède des dizaines de modèles dont la
régression logistique. En tant que package de machine learning, il se concentre avant Tout sur l’aspect prédictif
du modèle de régression logistique, il permettra de prédire très facilement mais sera pauvre sur l’explication et
l’interprétation du modèle. Par contre, pour la validation de la qualité prédictive des modèles, l’ajustement des
hyper-paramètres et le passage en production de modèles, il est extrêmement efficace.

Avantages de la régression logistique :


1. Rapide à entrainer et prévoir.
2. Bon pour les petits problèmes de données de classification.
3. Facile à comprendre.
36
Inconvénients de la régression logistique :
1- Pas très précis
2- Ne pas utiliser pour les données non linéaires.
3- Pas flexible pour adapter à des données complexes.

Naive Bayes :

Qu’est-ce que Naive Bayes?


Naive Bayes Classifier est un algorithme populaire en Machine Learning. C’est un algorithme du Supervised
Learning utilisé pour la classification. Il est particulièrement utile pour les problématiques de classification de
texte.

Figure 4.8 : Naive Bayes pour la classification

Si on considère par exemple la classe "UQTR" qu'on retrouve 3 fois dans 7 documents, alors le «Prior
probabilities» est de 3/7 .

Pour classer un ensemble de documents, Naïve Bayes utilise comme entrée les mots qui se trouvent dans ces
derniers, ensuite il calcule la fréquence de chaque mot dans les différents documents classés dans une classe
donnée.

Avantages algorithme Naive Bayes:


Parmi les avantages des méthodes Naïve Bayes on peut citer par exemple [64] :

1. La facilité et la simplicité de leur implémentation.

2. Leur rapidité.

3. Les méthodes Naïve Bayes donnent de bons résultats.

Inconvénients algorithme Naive Bayes :


À cause de l'hypothèse d'indépendance des mots dans ce modèle, on le qualifié souvent de naïf ou de simple. En
général, ce type d'algorithmes permet de faire le même travail de classification que les autres algorithmes qui
existent déjà, mais ces performances sont limitées quand il s'agit d'une grande quantité de lexiques à traiter. En
effet, si le nombre de lexiques augmente, alors le nombre des dépendances entre l'ensemble des mots
augmentent, et donc, la vérification de l'hypothèse de Naïve Bayes diminue.

37
KNN: k Nearest Neighbors :

Figure 4.9 : KNN pour la classification

Qu’est-ce que KNN?


C’est un algorithme basé sur la proximité des observations.

Pour trouver la classe d'un nouveau cas, cet algorithme se base sur le principe suivant :

Il cherche les k plus proches voisins de ce nouveau cas, ensuite, il choisit parmi les candidats trouvés le résultat
le plus proche et le plus fréquent (figure ‘’’)

Avantages algorithme KNN:


La méthode des k plus proches voisins présente plusieurs avantages parmi lesquels nous citons par exemple :

1. La facilité de mise en œuvre de cet algorithme.

2. Son efficacité pour des classes réparties de manière irrégulière.

3. Son efficacité pour des données incomplètes.

4. La méthode des k plus proches voisins n’utilise pas de modèle pour classifier les documents.

Inconvénients algorithme KNN:


Le principal inconvénient de cette méthode est le temps d'exécution qu’elle met pour la classification d'un
nouveau cas, car il faut calculer chaque fois la similarité entre les k exemples et le nouveau k, avant de décider
quelle classe à choisir.

Le deuxième inconvénient de cette méthode est la grande capacité de stockage qu'elle nécessite pour le
traitement des corpus.

En plus de ces deux inconvénients, l'algorithme des k plus proches voisins utilise de nombreuses données de
références (les classes de bases) pour classifier les nouvelles entrées.

g- Etape 7 : Evaluation & Scoring :


Le protocole d’évaluation est le suivant : pour chaque classifieur, ses performances sont évaluées lorsqu’il est
entraîné sur tous les messages de tous les événements sauf un événement dont les messages servent de jeu de
test. Chaque événement est passé dans ce rôle de test, puis les résultats sont moyennés.

Dans ce chapitre, nous classerons les textes d'actualités comme fausse ou vraie information en utilisant des
algorithmes de classification d’apprentissage automatique. Nous effectuerons cette classification en utilisant 4
algorithmes un par un. Premièrement, nous obtiendrons le terme fréquences et count vectorizer qui seront
inclus comme attributs d'entrée pour le modèle de classification et l'attribut cible que nous avons définie ci-
dessus fonctionnera comme attribut de sortie. Pour lier ensemble count vectorizer, TF-IDet le modèle de
classification, le concept de pipeline est utilisé. Un pipeline d'apprentissage automatique est utilisé pour

38
automatiser les workflows d'apprentissage automatique. Ils fonctionnent en permettant à une séquence de
données d'être transformées et corrélées ensemble dans un modèle qui peut être testé et évalué pour atteindre
un résultat de classification, qu'il soit fausses informations ou vraies informations.

Dans la première étape, nous classerons le texte des nouvelles à l'aide du modèle de RandomForestClassifier et
évaluerons ses performances à l'aide de matrices d'évaluation.

Classification avec RandomForestClassifier :

Classification avec LogisticRegression :

Après avoir effectué la classification à l'aide du modèle de RandomForestClassifier, nous classerons le texte
d'actualité à l'aide du modèle LogisticRegression et évaluerons ses performances à l'aide de matrices
d'évaluation.

39
Classification avec Naive Bayes :
Après avoir effectué la classification à l'aide du modèle de LogisticRegression , nous classerons le texte
d'actualité à l'aide du modèle Naive Bayes et évaluerons ses performances à l'aide de matrices d'évaluation.

Classification avec KNN: k Nearest Neighbors:


Enfin, nous classerons le texte d'actualité à l'aide du modèle KNN Classifier et évaluerons ses performances à
l'aide de matrices d'évaluation.

40
Comparaison des résultats des 4 modèles de Machine Learning :

La figure ci-dessous les résultats des quatres classifieurs d’apprentissage automatique :

En regardant les résultats, le modèle de la régression logistique affiche des résultats très satisfaisants du
point de vue de la détection des fausses nouvelles.

Les deux modèles RandomForestClassifier et LogisticRegression sont toujours ceux qui le meilleur, avec un la
régression logistique atteignant une précision de 96% et un score de 95% en utilisant l’algorithme de
RandomForest.

Conclusion :
Nous pouvons analyser à partir des scores de précision, des matrices de confusion et des rapports de
classification des quatres modèles, nous pouvons conclure que le modèle de régression logistique avec une
précision maximale de 95.72% a surpassé le modèle RandomForestClassifier 95.32% avec une précision de,

41
Naive-Bayes 93.42% avec une précision de et KNN qui n’a pas donnée es bons résultats avec une précision de
62.86% dans cette tâche.

Application des techniques d’apprentissage automatique pour prédire la


I.

catégorie des actualités (vrais actualité/faux actualité) :

1- Introduction au Deep Learning :


Le deep learning est un sous-ensemble du machine learning – et l’une des 15 approches différentes. Tout Deep
Learning est Machine Learning, mais pas tout Machine Learning est Deep Learning (figure ).

Figure 4.10 : Logistic Regression pour la classification

Depuis quelques années, les réseaux de neurones ont commencé à prendre de plus en plus une grande place
dans divers domaines tels que : le traitement des signaux au niveau des télécommunications, la cryptographie,
ainsi que le traitement des langues naturelles.

Le Deep Learning est utile car il évite au programmeur d’avoir à assumer les tâches de spécification de fonction
(définissant les caractéristiques à analyser à partir des données) et l’optimisation (comment peser les données
pour fournir une prévision précise) – l’algorithme fait les deux.

Le Principe de fonctionnement de ces réseaux est directement inspiré du fonctionnement de vrais neurones
humains.

Le fait d'accepter que le cerveau humain fonctionne d'une façon totalement différente de celle d'un ordinateur
a eu un impact très important sur le développement des réseaux de neurones. En effet, La quantité énorme des
travaux effectués pour comprendre le fonctionnement du cerveau humain a mené la représentation de ce
dernier par un ensemble de composantes appelées neurones, interconnectées les unes avec les autres. Le
cerveau humain a la capacité d'organiser ces neurones, selon une organisation très complexe, non linéaire et
extrêmement parallèle, afin d'accomplir des tâches très élaborées.

Selon (Haykin ,1994) : « Un réseau de neurones est un processus distribué de manière massivement parallèle,
qui a une propension naturelle à mémoriser des connaissances de façon expérimentale et de les rendre
disponibles pour l’utilisation. Il ressemble au cerveau en deux points :

1. La connaissance est acquise au travers d'un processus d'apprentissage

2. Les poids des connexions entre les neurones sont utilisés pour mémoriser la connaissance ».

Cette définition est considérée comme une base pour l'élaboration des réseaux de neurones artificiels.

42
De manière similaire à la nature, le fonctionnement d'un réseau de neurones est influencé par la connexion des
éléments entre eux. On peut entraîner un réseau de neurones pour un rôle spécifique (traitement des signaux
par exemple) en ajustant les valeurs des Connections (ou poids) entre les neurones.

2- Comment le Deep Learning obtient de meilleurs résultats :

L'apprentissage en profondeur utilise des couches d'algorithmes de réseau neuronal pour déchiffrer des
informations de niveau supérieur sur d'autres couches en fonction des données d'entrée brutes. Par exemple,
dans une application de reconnaissance d'image, un calque pourrait identifier des caractéristiques telles que des
arêtes vives ou des contrastes lumineux, tandis qu'un autre pourrait identifier la façon dont différentes formes
distinctes apparaissent. En outre, une troisième couche pourrait déchiffrer ce que l'image montre. Tout cela est
réalisé en apprenant les différentes manières dont les informations des couches précédentes sont reconstituées
pour former des objets distinctifs.

Les algorithmes de réseau neuronal sont conçus pour reconnaître des modèles de données basés sur une
compréhension précoce du fonctionnement du cerveau humain. Les réseaux de neurones peuvent aider à
regrouper des points dans un large échantillon de données en fonction des similitudes de ses caractéristiques, à
classer les données en fonction des étiquettes des données précédentes et à extraire des caractéristiques
distinctes des données. Les modèles numériques que ces réseaux reconnaissent sont stockés dans des vecteurs
qui représentent des entrées du monde réel. Les réseaux de neurones profonds peuvent être considérés comme
des composants d'applications d'apprentissage automatique plus larges impliquant des algorithmes pour
l'apprentissage par renforcement, la classification et la régression.

L'apprentissage en profondeur utilise un apprentissage autodidacte et des constructions d'algorithmes avec de


nombreuses couches cachées, des données volumineuses et de puissantes ressources de calcul. Le cadre
algorithmique est appelé le réseau neuronal, tandis que les couches cachées du réseau lui confèrent le surnom
d'apprentissage en profondeur.

3- Avantages des réseaux de neurones :


Les réseaux de neurones sont considérés parmi les méthodes de classification les plus efficaces. En effet, ce type
d'algorithmes représente plusieurs avantages parmi lesquels on peut citer par exemple :

1. La rapidité et l'efficacité de traitement des grands corpus.

2. La possibilité de combiner ce type d’algorithmes avec d’autres méthodes de classification.

3. un taux d’erreur très faible par rapport aux autres méthodes de classification.

4. Les réseaux de neurones ne nécessitent pas l’utilisation de modèles mathématiques très complexes pour leur
fonctionnement. En effet, grâce à leur capacité d'apprentissage, ils se basent principalement sur les modèles de
données à traiter.

4- Inconvénients des réseaux de neurones :


Malgré les grands avantages que représentent les réseaux de neurones, ils ont aussi des inconvénients qu'on
peut résumer dans les points suivants :

1. La lenteur d'apprentissage.

2. Les résultats obtenus par la classification des réseaux de neurones ne sont pas interprétables. En effet, le
réseau généré par ce type d’algorithmes est considéré comme une boîte noire, c'est-à-dire que l'utilisateur n'a
aucune information explicite sur le fonctionnement interne. En cas d’erreurs, il est impossible de déterminer la
cause cette erreur.

3. La convergence des résultats des réseaux de neurones est incertaine.


43
4. Les réseaux de neurones ne permettent pas l'intégration des connaissances a prioripour le traitement de
nouvelles données.

5- Difference entre Machine Learning & Deep Learning :

Figure 5.1: Machine Learning et Deep Learning

Machine Learning & Deep Learning sont devenus des termes extrêmement utilisés dans le cadre de nos
activités, avec des applications toujours plus nombreuses. Lorsque l’on parle de Deep Learning, nous parlons
d’algorithmes capables de mimer les actions du cerveau humain grâce à des réseaux de neurones d’où le terme
d’Intelligence Artificielle. Il est souvent expliqué que la différence entre Machine Learning et Deep Learning
réside dans le fait que les algorithmes de Machine Learning vont traiter des données quantitatives et
structurées (des valeurs numériques), lorsque ceux de Deep Learning traiteront des données non-structurées,
comme le son, le texte, l’image. Ceci étant vrai, nous expliquons ici ce pourquoi cette différence est réelle : le
Feature Extraction.

6- Pas de feature extraction en Deep Learning :


En Deep Learning, souvent, il n’est pas possible de faire de Feature Extraction, et même, vous n’avez pas à en
faire.

Pourquoi ? En Deep Learning, nous traitons souvent des données non-structurées : des images, du son, du texte,
etc. Lorsque vous avez une image, vous n’allez pas pouvoir extraire l’élément qui va être prédicteur : il est bien
entendu impossible pour nous en tant qu’humain de sélectionner à la main tous les pixels de chaque image
appartenant au chien ou au chat (l’exemple classique de reconnaître si sur une image est représenté un chat ou
un chien). Dans cette mesure, on n’a donc pas besoin de Feature Extraction.

L’algorithme va être entrainé pour sortir lui-même les éléments influents dans la prédiction que vous souhaitez
réaliser.

7- Les étapes d’utilisation de réseau de neuronne dans la classification :


Pour pouvoir utiliser les capacités d'un réseau de neurones dans la classification, il faut

Premièrement le construire. Ce processus se déroule en·quatre étapes

1. Construire la structure du réseau.

2. Construire une base de données de vecteurs pour modéliser le domaine étudié, ce qui se fait en deux étapes :
la première consiste en l'apprentissage du réseau et la deuxième aux différents tests de cet apprentissage.

44
3. La troisième étape consiste à paramétrer le réseau par apprentissage. Puisque les vecteurs de la base de
données d'apprentissage sont présentés au réseau séquentiellement, un algorithme d'apprentissage
interviendra pour ajuster les poids du réseau afin que les vecteurs soient correctement interprétés.

4. Reconnaissance : Cette phase consiste à utiliser une base de données de tests qui permettra de voir si les
entrées de tests seront reconnues par le réseau construit.

Après l'exécution de plusieurs tests, si le réseau de neurones semble efficace dans le

Traitement des entrées, on peut l'utiliser pour de vraies applications.

8- Les algorithmes de Deep Learning :

Figure 5.2 : Algorthmes Deep Learning

Nous parlons de deux principaux algorithmes de l’apprentissage profond.

❖ Les réseaux de neurones convolutionnels (CNN : Convolutional Neural Network) :

Le réseau de neurones convolutifs (CNN) est un réseau neuronal multicouche à réaction qui utilise des
perceptrons pour l'apprentissage supervisé et pour analyser les données. Il est principalement utilisé avec des
données visuelles, telles que la classification d'image.

❖ Les réseaux de neurones récursifs (RNN : Recurrent Neural Network) :

Le réseau neuronal récurrent (RNN) est conçu pour reconnaître l'attribut séquentiel d'un ensemble de données
et utiliser des modèles pour prédire le prochain scénario probable. Il s'agit d'une approche puissante pour
traiter des données séquentielles telles que le son, les données de séries chronologiques et le langage naturel
écrit. La descente de gradient stochastique (SGD : stochastic gradient descent ) est utilisée pour entraîner le
réseau avec un algorithme de rétropropagation.

9- Comment fonctionnent les algorithmes d'apprentissage profond :


Alors que les algorithmes d'apprentissage en profondeur comportent des représentations d'auto-apprentissage,
ils dépendent des ANN qui reflètent la façon dont le cerveau calcule les informations. Pendant le processus
d'apprentissage, les algorithmes utilisent des éléments inconnus dans la distribution d'entrée pour extraire des
caractéristiques, regrouper des objets et découvrir des modèles de données utiles. Tout comme les machines de
formation pour l'auto-apprentissage, cela se produit à plusieurs niveaux, en utilisant les algorithmes pour
construire les modèles de texte, la traduction automatique et les relations de réponse.

10- Architecture générale d'un réseau neuronal convolutif :

45
Figure 5.3 : Architecture générale CNN

Un réseau neuronal convolutionnel (CNN : convolutional neural network) est composé de couches
«convolutionnelles» et de couches «sous-échantillonnées» (convolutional layers).

-Convolutional layers : Les couches convolutives comprennent des neurones qui analysent leur entrée pour
rechercher des motifs.

Downsampling layers , or “pooling” layers :les couches de sous-échantillonnage, ou couches de «pooling», sont
souvent placées après les couches convolutives dans un ConvNet, principalement pour réduire la
dimensionnalité de la carte d'entités pour l'efficacité du calcul, ce qui peut à son tour améliorer les
performances réelles.

En règle générale, les deux calques apparaissent dans un ordre alternatif, mais ce n’est pas toujours le cas.

Ceci est suivi d'un MLP avec une ou plusieurs couches (fully connected layer).

11- Fonctionnement de l’architecture CNN :

Lorsque nous pensons aux images comme entrée, un ordinateur doit gérer une matrice de nombres 2D (valeurs
de pixels) et nous avons donc besoin d'un moyen de détecter les caractéristiques de cette matrice. Un modèle
CNN d'apprentissage en profondeur passera cette matrice de caractéristiques à travers une série de couches de
convolution avec des filtres (Kernals), une couche RELUE (ou une autre fonction d'activation), des couches de
mise en commun, des couches entièrement connectées (FC) et appliquera une fonction d'activation telle que
Sigmoid ou Fonction Softmax pour classer un objet avec des valeurs probabilistes entre 0 et 1.

Convolutional Layer : Une couche convolutionnelle peut être considérée comme composée d'une série de «
cartes » appelées « carte d’entités » ou « carte d’activation ». Chaque carte d'activation a deux composants :

-Une carte linéaire, obtenue par convolution sur des cartes de la couche précédente (chaque carte linéaire est
associée à un filtre apprenant ou kernal)

-Une activation qui opère sur la sortie de la convolution Toutes les cartes d'une couche donnée contribuent à
chaque convolution.

En l'absence de sous-échantillonnage actif et de pas égal à 1, la taille de la carte de sortie devrait idéalement
être égale à celle de l'entrée. Pour de tels cas, nous utilisons une technique appelée «zero padding» qui garantit
que le résultat de la convolution est de la même taille que l'image d'origine.

Le regroupement réduit le nombre de paramètres lorsque les images sont trop grandes. Le « regroupement
spatial » ou le « sous-échantillonnage » réduit la dimensionnalité de chaque carte mais conserve les
informations importantes. La mise en commun spatiale peut être de différents types :

✓ Mean Pooling
✓ Max Pooling
✓ P-norm Pooling
✓ Sum Pooling
46
La mise en commun moyenne implique de prendre la moyenne des éléments de la carte d'entités rectifiée. De
même, la mise en pool maximale prend le plus grand élément de la carte et l'extraction de la somme de tous les
éléments de la carte d'entités est appelée mise en commun de somme.

Mean Pooling : consiste à prendre la moyenne des éléments de la carte des entités rectifiées. De même, la mise
en pool maximale prend le plus grand élément de la carte et l'extraction de la somme de tous les éléments de la
carte d'entités est appelée mise en commun de somme.

Figure 5.4: Mean pooling dans CNN

Enfin, nous avons aplati notre matrice en vecteur et l'avons introduite dans une couche entièrement connectée

Comme un MLP.

Figure 5.5: Couche MLP

Dans le diagramme ci-dessus, la matrice de la carte d'entités sera convertie en vecteur (x1, x2, x3,…). Avec les
couches entièrement connectées, nous avons combiné ces fonctionnalités pour créer un modèle. Enfin, nous
avons une fonction d'activation telle que softmax ou sigmoid pour classer les sorties en chiffres réguliers
(0,1,2,…., 9).

12- Classification avec un réseaux de neurones convolutionnels – CNN :


Dans l'apprentissage profond, un réseau de neurones convolutifs (CNN ou ConvNet) est une classe de réseaux
de neurones profonds, le plus couramment appliqué à l'analyse de l'imagerie visuelle. Par exemple, CNN est
utilisé pour des applications telles que la classification d'images, la reconnaissance faciale, la détection d'objets,
etc.. Plus récemment, cependant, les réseaux de neurones convolutifs ont également trouvé une prédominance
dans la résolution des problèmes associés aux tâches NLP telles que la classification des phrases, la classification
de texte, l'analyse des sentiments, la synthèse maintenant que nous avons une compréhension de base du
fonctionnement d'un réseau neuronal convolutif et que nous avons vu sa mise en œuvre en vision par
ordinateur, nous discuterons davantage de sa portée dans le traitement du langage naturel.
47
Tout comme les images peuvent être représentées comme un tableau de valeurs de pixels (valeurs flottantes),
de la même manière, nous pouvons représenter le texte comme un tableau de vecteurs (chaque mot mappé à
un vecteur spécifique dans un espace vectoriel composé de tout le vocabulaire) qui peut être traité avec l'aide
d'un CNN. Lorsque nous travaillons avec des données séquentielles, comme du texte, nous travaillons avec des
convolutions unidimensionnelles, mais l'idée et l'application restent les mêmes.

Nous voulons toujours reprendre les motifs de la séquence qui deviennent plus complexes avec chaque couche
convolutionnelle ajoutée.Ici, nous allons former un réseau neuronal convolutionnel pour effectuer la
classification des actualités sur un ensemble de données et aussi prédire la catégorie de ces actualités (Fake,
Real) (figure 5.5 ci-dessous)

Figure 5.6: prédiction de la détection deux faux/vrais actualités avec CNN

Figure 5.7: Architecture CNN

Nous suivrons les étapes suivantes pour construire notre modèle CNN et afin d’obtenir les prédictions et les
scores pour nos actualités :

a- Etape 1 : chargement des données


Nous allons charger nos données dans un DataFrame Pandas.

Nous allons simplement utiliser notre ensemble de données pour former notre modèle CNN et nous mettrons
en œuvre tout en utilisant Keras (Keras est une API d'apprentissage profond et de réseaux de neurones de
François Chollet qui est capable de fonctionner sur TensorFlow (Google).

b- Etape 2 : labélisé notre data set


On donne la valeur 0 au data set de fake news et 1 au Data de realnews.

48
Nous affichons un échantillon de notre dataset.

c- -Etape 3 : préparation de donnée de d’entrainement (80%), validation (20%)


On prépare les données pour la classification. On aura besoin d'une partie de training et d'une partie validation.

On choisit de consacrer 80% de nos données à la partie de training et 20% pour la validation de notre model.

- distribution de données de training et validation :


Nous pouvons voir la distribution de données de training et validation.

Figure 5.8 : distribution des données d’entrainement et de validation

d- -Etape 4 : Nettoyage et traitement de texte :

Nous avons utilisé une fonction générique pour le nettoyage traitement des textes (voir Notebook
Classification_CNN).
49
Tokens par document :

Figure 5.9 : Nombre de Token par document

e- Etape 5 : prétraitement des données :


Avant de mettre les données dans le modèle, nous devons prétraiter le texte.
- Nous utiliserons le `Tokenizer` de Keras pour convertir chaque mot en un ID entier correspondant.
Représenter les mots sous forme d'entiers économise beaucoup de mémoire !
- Afin d'introduire le texte dans notre CNN, tous les textes doivent être de la même longueur. Nous
assurons cela en utilisant la méthode `sequence.pad_sequences ()` et la variable `MAX_LEN`. Tous les
textes plus longs que `MAX_LEN` sont tronqués et les textes plus courts sont remplis par des zéros
pour les obtenir à la même longueur.

f- Etape 6 : Construction de modèle CNN :


Nous mettrons en œuvre un modèle similaire à celui de Kim Yoon’s

Figure 5.10 : Modèle de Kim Yoon’s

La construction d'un model Neural Network nécessite la configuration des layers du modèle, puis la compilation
du modèle.

Nous allons construire notre modèle CNN simple, avec une seule hidden layer de 64 neuronnes.

Construire un modèle avec :

50
+ input layer, de dimension égale au nombre de nos features = ?

+ hidden layer 1: de dimension 64 et d'activation function = Relu

g- Etape 7 : le choix des hyperparamètres de notre modèle CNN


Ci-dessous les hyperparamètres choisis lors de la préparation de notre modèle CNN :

Figure 5.11 : Hyperparamètres choisis dans CNN

h- Etape 8 : Entrainement et l’évaluation de modèle CNN

Le résultat obtenu de notre model CNN sera le suivant (figure 6.1) :

Figure 6.1 : Score modèle CNN

On peut remarquer dans la figure 6.1 que les résultats de notre modèle CNN d’apprentissage profonds sont

meilleurs avec un score de 96% Par rapport à la méthode de la régression logistique où nous avions utilisé

(Accuracy : 95%).
Plot confusion matrix

51
Figure 6.2 : Confusion matrix

Conclusion :
Dans ce chapitre, nous avons proposé deux techniques pour la prédiction et la classification des informations.

Nous avons appliqué les techniques de l’apprentissage automatique en se basant les 4 algorithmes de
classification :

La deuxième technique que nous avons utilisée, nous avons appliqué un algorithme d’apprentissage profond

Pour prédire les fausses informations.

Nous conclure que les approches basées sur les techniques de l’apprentissage profond donnent des bons
résultats que celle de l’apprentissage automatique.

Une première constatation est les résultats encourageants du classifieur CNN pour la prédiction des
informations. En effet, les résultats sont supérieurs à ceux du système d’apprentissage automatique.

i- Déploiement de modèle KNN :


Nous arrivons à l’étape la plus importante de projet c’est le déploiement de notre model.

Lorsqu'un data scientist / ingénieur en apprentissage automatique développe un modèle d'apprentissage


automatique à l'aide de Scikit-Learn, TensorFlow, Keras, PyTorch, etc., l'objectif ultime est de le rendre
disponible en production. Souvent, lorsque nous travaillons sur un projet d'apprentissage automatique, nous
nous concentrons beaucoup sur l'analyse des données exploratoires (EDA), l'ingénierie des fonctionnalités, le
réglage avec des hyperparamètres, etc. Mais nous avons tendance à oublier notre objectif principal, qui est
d'extraire la valeur réelle du modèle de prédiction.

Le déploiement de modèles de machine Learning/deep Learning ou la mise en production de modèles signifie


mettre nos modèles à disposition des utilisateurs finaux ou des systèmes.

Cependant, le déploiement des modèles d'apprentissage automatique est complexe. Cet article vise à nous
permettre de commencer à mettre en production notre modèle CNN d'apprentissage profonds (Deep Learning)
formés à l'aide de l'API Flask puisque c’est le modèle qui nous a donné des très bon résultats (accuracy :96%) par
rapports aux 4 algorithmes de machine Learning.

52
Nous allons d'abord comprendre le concept de déploiement de modèle, puis nous parlerons de Flask, comment
l'installer, et enfin, nous plongerons dans un énoncé de problème pour apprendre à déployer notre modele
d’apprentissage profonds (Deep Learning) à l'aide de Flask.

Deployement de model :

Dans un projet typique d'apprentissage automatique et d'apprentissage profonds, nous commençons


généralement par définir l'énoncé du problème suivi de la collecte et de la préparation des données, de la
compréhension des données et de la construction du modèle, non ?

Mais, en fin de compte, nous voulons que notre modèle soit disponible pour les utilisateurs finaux afin qu'ils
puissent l'utiliser. Le déploiement de modèle est l'une des dernières étapes de tout projet d'apprentissage
automatique/profonds et peut être un peu délicat.

Dans les chapitres suivants, comment transmettre notre modèle d'apprentissage profonds à notre client, quelles
sont les différentes choses dont nous devons prendre soin lors de la mise en production de notre modèle ? Et
comment pouvons-nous même commencer à déployer un modèle ?

Qu'est-ce que Flask?

Flask est un Framework open-source de développement web en Python, son but principal est d'être léger, afin
de garder la souplesse de la programmation Python.

Il comporte plusieurs modules qui permettent à un développeur Web d'écrire plus facilement des applications
sans avoir à se soucier des détails tels que la gestion des protocoles, la gestion des threads, etc. Flask donne une
variété de choix pour développer des applications Web et il nous donne les outils et les bibliothèques
nécessaires qui nous permettent de construire une application Web.

Dans ce chapitre, nous nous appuierons sur l'ingéniosité de Flask pour nous aider à déployer notre propre
modèle d'apprentissage profonds. (CNN)

Pourquoi Flask ?
- Facile à utiliser.
- Serveur de développement et débogueur intégrés.
- Prise en charge des tests unitaires intégrés.
- Répartition des demandes RESTful. Très documenté.

Installation de Flask :
L'installation de Flask est simple et directe.il faut installer Python 3 et pip, puis pour installer Flask, nous devons
exécuter la commande suivante :

53
Spécification de besoin :

Nous travaillerons avec un ensemble de données des actualités dans cette section. Rappelons que notre objectif
est de détecter les fausses actualités.

Nous allons créer une page Web qui contiendra une zone de texte comme celle-ci (les utilisateurs pourront
rechercher n'importe quel texte).

Image page web (à mettre à jour )

Pour toute requête recherchée, nous utiliserons notre modèle de détection de deep learning que nous avons
développé afin de classer une actualité (vari nouvelle ou bien fausse nouvelle).

Configuration de projet WorkFlow :

1. Construction modèle :

Nous allons construire un pipeline de modèle de CNN pour classer une actualité (vari nouvelle ou bien fausse
nouvelle). Ici, notre objectif ne sera pas de créer un modèle de classification très précis, mais de voir comment
déployer ce modèle à l'aide de Flask.

2. Modèle de page Web :

Nous allons concevoir une interface utilisateur où l'utilisateur peut soumettre sa requête

3. Prédire la classe et envoyer les résultats :

Ensuite, utilisez le modèle enregistré pour prédire la classe des tweets et renvoyer les résultats sur la page
Web.
Environnement et outils :

1. scikit-learn
2. Pandas
3. Numpy
4. Flask

Remarque : l’application pour le déploiement de notre modèle d’apprentissage profonds (CNN) est disponible
sur le lien suivant :

http://fakenews.akachbat.com/

54
Conclusion Générale
Ce travail nous a permis de nous rendre compte de la difficulté de construction d’un fake news compte tenu des
moyens de vérification et de recoupent de l’information qui sont développés aujourd’hui à travers le monde. La
banalisation du concept par les médias ne signifie nullement une facilité de mise en oeuvre. Cette dernière, se
voit confrontées à des actions de « fact cheking » de plus en plus performants et qui font passer au peigne fin
toute actualité ou brève suspecte.

La technologie fait des progrès considérables aussi bien dans la création de fake que dans leur identification.
Mais le tri reste compliqué à réaliser et n’est jamais parfait, parce que même les humains n’en sont pas
capables. Le problème est que pour que la désinformation passe, il faut des informations vraies dans le
message. La partie fausse est incorporée de façon subtile dans la désinformation, c’est ce qui induit les
machines en erreur mais aussi les individus.

Du point de vue de l’informatique, on est sur un problème de classification entre les messages correspondant à
une information vérifiée et ceux relevant de la désinformation. La plupart des algorithmes d’apprentissage et de
classification se basent sur des modèles limités et, à ce jour, aucun d’entre eux n’est capable de comprendre le
sens d’un texte. La vérité est dans la nuance. Mais faire la différence entre une fausse information relevant
d’une erreur ou une désinformation intentionnelle n’est, pour l’instant, pas à la portée de l’intelligence
artificielle.

55
BIBLIOGRAPHIE

https://www.rudebaguette.com/2020/01/fake-news-impact-economie-mondiale/

https://blog.digimind.com/fr/tendances/fake-news-8-points_importants-comprendre-combattre

https://www.huffingtonpost.fr/2017/10/31/les-chiffres-impressionnants-des-fake-news-sur-facebook-pour-
lelection-de-donald-trump_a_23261587/

https://www.medias24.com/coronavirus-le-ministere-public-sevira-contre-les-auteurs-de-fake-news-8443.html

https://www.visibrain.com/fr/data/visibrain-fake-news-guide.pdf

https://telquel.ma/2020/03/14/othmani-les-propagateurs-de-fake-news-seront-severement-punis_1673076

https://fr.wikipedia.org/wiki/Flask_(framework)

https://docs.microsoft.com/fr-fr/azure/machine-learning/team-data-science-process/lifecycle-modeling

https://mc.ai/life-cycle-of-a-deep-learning-project/

https://www.inter-mines.org/fr/revue/article/apprentissage-profond-et-reseaux-neuronaux/1381

https://fr.slideshare.net/HakimNasaoui/les-10-plus-populaires-algorithmes-du-machine-learning-135086708

https://www.edureka.co/blog/web-scraping-with-python/

https://www.gouvernement.fr/fake-news-guide-des-questions-a-se-poser-face-a-une-information

https://notivica.com/principales-etapes-dun-projet-de-machine-learning-applique/

https://medium.com/saarthi-ai/sentence-classification-using-convolutional-neural-networks-ddad72c7048c

https://www.simplilearn.com/deep-learning-algorithms-article

https://www.lebigdata.fr/mit-machine-learning-fake-news

https://openclassrooms.com/fr/courses/4011851-initiez-vous-au-machine-learning/5869331-decouvrez-le-
domaine-de-la-data-science

https://www.datacorner.fr/reussirml/

https://www.datacorner.fr/ml-memento/

https://siecledigital.fr/2019/01/30/differences-intelligence-artificielle-machine-learning-deep-learning/

https://www.jedha.co/blog/la-vraie-difference-entre-machine-learning-deep-learning

https://lepture.com/en/2018/structure-of-a-flask-project

56

Vous aimerez peut-être aussi