Rapport PFE Fake News 20200720
Rapport PFE Fake News 20200720
Rapport PFE Fake News 20200720
Présenté par :
Adil Kachbat
Abdellah Cherif
Thème
Encadré par :
Mr Merouane Skiti
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 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
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).
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.
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.
- 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.
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.
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.
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
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).
39 milliards de dollars (35 millions d’euros) de pertes boursières directement provoqués par les effets de ces
fausses informations
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.
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.
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.
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 :
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.
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).
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
Comment évaluer la qualité et la pertinence d'une information et discerner le vrai du faux ? Voici quelques
questions à se poser au quotidien.
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.
L'auteur peut relater des faits ou exprimer son opinion : ce n'est pas la même chose.
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...
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
Pour mener un projet de Machine Learning efficace, voici les 8 étapes à suivre :
4)Identifiez et dimensionnez
3)Déterminez le produit à l’architecture nécessaire
développer pour alimenter votre
plateforme avec des données
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.
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.
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
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.
Dans ce chapitre, nous allons voir comment mettre en œuvre le scraping Web avec Python.
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.
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.
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é.
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é.
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 :
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 !
❖ 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.
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 :
Nous allons passer par plusieurs étapes afin de bien préparer nos données avant de les utiliser.
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.
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.
21
2. On enlève les mots à un caractère
4. Convertir en minuscules
Code :
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.
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.
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.
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.
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.
25
Figure 2.10: BoxPlot de nombre de mots dans les faux articles et vrais articles
❖ Analyse linguistique :
Fonctions auxiliaires
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.
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
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
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
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
Figure 3.10 : Nuage des mots pour le contenu des vrais et faux articles
Cette analyse est effectuée en utilisant le package vaderSentiment avec un fichier de lexique de vocabulaire
français.
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.
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 :
31
Histogram :
Corrélations mettant en évidence des variables hautement corrélées, des matrices de Spearman et Pearson
La distribution de données :
On peut voir à la figure 3.4 que nos données sont déséquilibrées. (Unbalanced Data Sets)
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.
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.
Code :
33
Vectorisation des documents et extraction de features :
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.
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 :
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.
-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 :
Naive Bayes :
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.
2. Leur rapidité.
37
KNN: k Nearest Neighbors :
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 ‘’’)
4. La méthode des k plus proches voisins n’utilise pas de modèle pour classifier les documents.
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.
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.
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.
40
Comparaison des résultats des 4 modèles de Machine Learning :
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.
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 :
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
Enfin, nous avons aplati notre matrice en vecteur et l'avons introduite dans une couche entièrement connectée
Comme un 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).
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)
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 :
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).
48
Nous affichons un échantillon de notre dataset.
On choisit de consacrer 80% de nos données à la partie de training et 20% pour la validation de notre model.
Nous avons utilisé une fonction générique pour le nettoyage traitement des textes (voir Notebook
Classification_CNN).
49
Tokens par document :
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.
50
+ input layer, de dimension égale au nombre de nos features = ?
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
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.
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 :
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 ?
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).
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).
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.
Nous allons concevoir une interface utilisateur où l'utilisateur peut soumettre sa requête
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