extractionautomatiqued’évènementsà...

48
U R UFR S T E W3A R M M2 INFORMATIQUE Extraction automatique d’évènements à partir des presses en ligne Auteur : Antsa R n o étudiant : 36006643 Tuteur de stage : Ken TSISANDAINA Responsable de stage : Pr. Frédéric MESNARD Janvier - Juin 2017 w3a.fr web & data

Upload: others

Post on 14-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

  • Université de la RéunionUFR Sciences et Technologies

    Entreprise W3ARapport de stage de Masters M2 INFORMATIQUE

    Extraction automatique d’évènements àpartir des presses en ligne

    Auteur :Antsa Raharimanantsoano étudiant : 36006643

    Tuteur de stage :Ken TSISANDAINA

    Responsable de stage :Pr. Frédéric MESNARD

    Janvier - Juin 2017

    w3a.frweb & data

  • © LATEX style made by David Laï-Yock (2016)

    II

  • RemerciementsJe tiens à exprimer toute ma gratitude et ma reconnaissance à tous ceux qui ont de près oude loin contribuer à la réalisation de ce mémoire, en particulier :— Ken TSISANDAINA et Johan PRESENT, les fondateurs de W3A, dont l’accueil

    aussi bien au sein de leur entreprise que dans leur cadre professionnel a été cha-leureux, et dont les bons conseils et le temps qu’ils ont consacré pour moi sontinestimables.

    — toute l’équipe de projet AZOT, avec laquelle la collaboration a été enrichissante.— Pr Frédéric MESNARD, le responsable de stage, qui a toujours été disponible et

    réactif.— les associés chez RED SAMURAÏ, qui ont fait de mon passage chez W3A un

    moment inoubliable riche en découverte, convivialité et amitié.— tous mes camarades du Master 2 informatique à l’Université de La Réunion— ma famille, qui est d’un grand soutien moral— Les enseignants et le personnel administratif du Master 2 Informatique de l’Univer-

    sité de La Réunion.

    III

  • A ma famille, dont le soutien et l’amour inconditionnel m’aident à me surpasser.

    ˜

    "A coeur vaillant, rien d’impossible."Jacques COEUR

  • RésuméLe web est riche en données, et en sachant les exploiter, elles peuvent produire des valeursimportantes. L’entreprise W3A s’est focalisée là-dessus en créant la plateforme AZOT.Celle-ci va explorer et traiter les articles de presse en ligne pour en sortir des évènementsstructurés qu’elle stockera par la suite. L’objectif est de mettre à la disposition de toutle monde un outil qui offre une meilleure visibilité sur ce qui se passe autour d’eux etleur impact, permettant par la même occasion d’optimiser leur organisation que ce soitpersonnelle ou professionnelle, ainsi que leur gestion. La principale mission durant les sixmois de stage consiste à développer le moteur de cet outil pour que celui-ci puisse élaborerautomatiquement des évènements à travers les informations des textes de presse en ligne,avec le langage de programmation Python ainsi que la classification automatique qui faitpartie des méthodes de Machine learning. Le travail étant fini, l’outil a maintenant lacapacité de récupérer, structurer et classifier automatiquement les articles des e-journaux.

    Mots-cléspresse en ligne, évènement, traitement automatique de langage naturel, classification au-tomatique, clustering.

    AbstractDatas are everywhere nowadays, and the WEB is one of the richest area where to findthem. Their value is important if they’re carefully operated. That’s the goal of W3A bycreating platform named AZOT. It will explore and process articles datas in e-newspaperto consitute and save structured-events. AZOT’s aim is to offer a large visibility of whathappens and their consequences to users, in order to help them in their professional eitherpersonnal organization, and also in their management. The six months internship wasfocused on the core developemnt of this tool, to permit an automatic detection of eventsfrom information in articles. We used Python programming language and the automatedclassification via Machine Learning for the realisation. The mission is now accomplished.AZOT is able to automatically retrieve, structure and classify e-newspaper texts.

    Keywordse-newspaper, events, natural language processing, automated classification, clustering.

    V

  • Table des matières

    1 Introduction 1

    2 L’entreprise d’accueil : W3A 22.1 Présentation générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.2 Présentation d’AZOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.3 L’équipe de projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.4 Méthodologie de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    3 Contexte du stage 53.1 Problématique identifiée : données disponibles mais éparpillées . . . . . . 53.2 L’émergence du Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . 63.3 Le Traitement Automatique du Langage Naturel (TALN) . . . . . . . . . 63.4 Objectif fixé par l’entreprise . . . . . . . . . . . . . . . . . . . . . . . . 7

    4 Contributions du mémoire : mise en place du système d’extraction auto-matique d’évènements 94.1 Conception du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94.2 Extraction et structuration des contenus des articles avec newspaper . . . 11

    4.2.1 L’outil de web scraping newspaper . . . . . . . . . . . . . . . . . 114.2.2 Cas d’utilisation de newspaper pour AZOT . . . . . . . . . . . . 12

    4.3 Traitement des données textuelles avant leur manipulation . . . . . . . . . 134.3.1 La détection des mots ou tokenization . . . . . . . . . . . . . . . 134.3.2 La suppression des mots vides ou stopwords . . . . . . . . . . . . 144.3.3 La Représentation de documents avec TF-IDF . . . . . . . . . . . 14

    4.4 Classification automatique des articles . . . . . . . . . . . . . . . . . . . 154.4.1 Quelques définitions utiles . . . . . . . . . . . . . . . . . . . . . 164.4.2 Application de la méthode K-means pour faire émerger les évène-

    ments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    5 Observation des résultats obtenus 20

    6 L’environnement de travail 226.1 Le langage Python dans la science des données . . . . . . . . . . . . . . 22

    6.1.1 Le module lxml de Python . . . . . . . . . . . . . . . . . . . . . 226.1.2 La librairie NLTK . . . . . . . . . . . . . . . . . . . . . . . . . . 236.1.3 La librairie sickit-learn . . . . . . . . . . . . . . . . . . . . . . . 24

    6.2 Le système de gestion de base de données . . . . . . . . . . . . . . . . . 24

    VI

  • 7 La méthode de classification automatique 267.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267.2 La classification automatique par le clustering . . . . . . . . . . . . . . . 27

    7.2.1 La méthode K-means . . . . . . . . . . . . . . . . . . . . . . . . 277.2.2 La méthode Mean shift . . . . . . . . . . . . . . . . . . . . . . . 277.2.3 Comparaison entre K-means et Mean shift . . . . . . . . . . . . . 28

    7.3 Les sortes de représentation de documents . . . . . . . . . . . . . . . . . 28

    8 Étude comparative avec Google Actualités 308.1 Présentation de Google Actualités . . . . . . . . . . . . . . . . . . . . . 308.2 Fonctionnalités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    8.2.1 Fonctionnement général . . . . . . . . . . . . . . . . . . . . . . 308.2.2 Présentation des articles sur Google Actualités . . . . . . . . . . . 31

    8.3 Comparaison avec AZOT . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    9 Conclusion 32

    Bibliographie 33

    VII

  • Table des figures

    2.1 Présentation d’AZOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    3.1 Fonctionnement d’AZOT . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    4.1 Structure des données sur AZOT . . . . . . . . . . . . . . . . . . . . . . 104.2 Etape du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104.3 Représentation du WEB scraping . . . . . . . . . . . . . . . . . . . . . . 114.4 Exemple de clustering [1] . . . . . . . . . . . . . . . . . . . . . . . . . . 164.5 Algorithme pour le K-means itéré . . . . . . . . . . . . . . . . . . . . . . 184.6 Schéma illustratif du K-means itéré . . . . . . . . . . . . . . . . . . . . . 18

    5.1 Répartition des articles par cluster . . . . . . . . . . . . . . . . . . . . . 205.2 Représentation de la fiabilité du K-means itéré . . . . . . . . . . . . . . . 21

    6.1 Représentation schématique avec lxml . . . . . . . . . . . . . . . . . . . 23

    9.1 Diagramme de GANTT du projet . . . . . . . . . . . . . . . . . . . . . . 379.2 Code pour le K-means itéré avec Python . . . . . . . . . . . . . . . . . . 389.3 La page "journal" d’AZOT . . . . . . . . . . . . . . . . . . . . . . . . . 39

    Liste des tableaux

    4.1 Résultat du web scraping en tableau . . . . . . . . . . . . . . . . . . . . 124.2 Nombre moyen d’articles extraits par jour par source . . . . . . . . . . . 13

    1

  • 1

    Introduction

    Les données qui circulent au sein d’une organisation, d’une société ou bien sur le web,qu’elles soient structurées ou non, peuvent être source de nouvelles opportunités, d’amé-lioration de services, d’augmentation de profits si elles sont exploitées et analysées. [2]

    L’évolution des technologies qui pousse les industries et entreprises à la transformationdigitale, a par conséquent permis une large amélioration des moyens de traitement desdonnées, de telle sorte que leur nature importe peu. Ainsi, qu’elles soient numériques outextuelles, il est maintenant plus aisé de les analyser.Cela se base notamment sur la statistique, les méthodes probabilistes, l’ingénierie dedonnées, la science des données (data science), la fouille de données (data mining), lesapprentissages automatiques ( machine learning) etc ...

    Par ailleurs, selon certains chercheurs, le fait d’étudier les données exprime une grandeinnovation. Comme ces dernières reflètent le comportement des utilisateurs, elles sontd’une grande influence sur les prises de décision dans la stratégie de l’entreprise, ainsi quesur le contrôle des mesures de risques. [3]

    Dans cette optique d’innovation, l’entreprise W3A s’est penché sur l’utilité que pourraientavoir les données massives, en particulier les informations tirées des textes de presse enligne, aussi bien pour les entreprises que pour les citoyens.AZOT s’est alors développé pour les exploiter afin d’améliorer le quotidien. C’est un outilde consultation et de gestion d’informations performant et innovant. Il fait un traitementautomatique des textes pour les structurer en vue d’avoir une synthèse de ce qui se passe.

    L’objet de ce stage est de contribuer à la construction d’AZOTpour que ce dernier récapituleautomatiquement les informations mises à sa disposition, celle-ci étant ensuite accessibleaux utilisateurs.Ce rapport relate le travail effectué au cours des six mois passés au sein de W3A. Il estdivisé en sept (7) parties. A la suite de cette introduction se place la section qui comportela présentation de l’entreprise d’accueil. S’ensuivra dans la section 3 une explication descontextes du stage. Nous rapportons dans les sections 4 et 5 les réalisations ainsi que lesrésultats obtenus. Dans la section 6, nous détaillons tous les moyens mis en oeuvre pourl’exécution des tâches. La section 7, quant à elle, est un approfondissement du point clédu stage. Avant de conclure nous présentons dans la section 8 une étude comparative entreAZOT et un autre concept du même type qui existe déjà en ce moment.

    1

  • 2

    L’entreprise d’accueil : W3A

    2.1 Présentation généraleW3A est une startup créée en Mai 2015 par deux entrepreneurs Johan PRESENT et KenTSISANDAINA.Suite à leurs expériences respectives ainsi qu’à leur vision identique sur l’impact que devraavoir la technologie sur le quotidien de tout un chacun, ils ont décidé de collaborer et demettre en pratique une idée qu’ils avaient envie de développer.

    C’est ainsi que le projet AZOT, initialement nommé IT PREDICTIVE, est né. C’est leseul projet sur lequel l’entreprise travaille depuis 2015. Il bénéficie de l’accompagnementde l’incubateur de la Technopole de La Réunion. Ce projet a par ailleurs eu la mentionspéciale lors du concours de création d’entreprises innovantes de la Téchnopole, en 2014.

    2.2 Présentation d’AZOTPour faciliter le quotidien des gens, W3A leur propose un outil qui récapitule, regroupe etsynthétise pour eux les informations qu’ils ont besoin de savoir et qui leur seront utiles, àtravers son projet AZOT. Cette synthèse équivaut à créer et regrouper des évènements àpartir de ces informations.

    AZOT consiste à fournir un outil de collecte, de normalisation et d’analyse prédictive dedonnées massives (événements divers, information généraliste et spécialisée, trafic routier,météo, données macro et micro-économiques...) en temps réel.[4]Il ne prend pas la place des journaux en ligne, mais il facilite leur consultation en plus desoutirer à partir des informations parcourues leur probable impact sur l’organisation et lagestion personnelle ou professionnelle des lecteurs

    AZOT rattache les informations à des catégories, appelées évènement, auxquelles ellespourraient appartenir. Le fait d’avoir ces catégories permet d’accéder directement auxsources des informations qui intéressent les utilisateurs, ce qui garantit un gain de tempset sollicite leur curiosité.

    Comme AZOT relève les dates et lieux des évènement, le fait de connaître ce qui se passe,s’est passé ou se passera favorise une meilleure organisation.

    2

  • Il vise donc à mettre en évidence l’importance que pourront prendre les informationsdisponible sur le web et en particulier dans les articles de journaux en ligne.

    Figure 2.1: Présentation d’AZOT

    Le nom du projet et de l’outil, initialement "IT PREDICTIVE" a été changé en "AZOT",par les fondateurs pour marquer que l’idée leur est venue grâce à leurs expériences à LaRéunion. "Zot" voulant dire "vous/votre" en Créole Réunionnais, AZOT signifie "à vous","le vôtre", pour refléter la mission principale du projet qui est la simplification de la viedes utilisateurs en entrant dans le digital.

    Le meilleur endroit pour puiser les données est le web, où les informations présentéessous plusieurs formes pullulent. AZOT se donne alors pour objectif de traiter dans unpremier temps ces données pour qu’elles soient plus exploitables, puis les analyser en vuede déterminer l’influence qu’elles peuvent avoir.

    3

  • 2.3 L’équipe de projetAfin de mener à bien le projet, l’entreprise a constitué une équipe dont la composition estla suivante :

    - Ken TSISANDAINA, porteur du projet AZOT, co-fondateur : mon tuteur de stage, ilmène et gère le projet, il est aussi le support technique (développement, administrationsystème etc ...)- Johan PRESENT, co-fondateur d’AZOT : s’occupe de l’administration de l’infrastruc-ture, du développement front-end et back-end- Maxime RIMBAULT, Graphiste/Designer : s’occupe du design des interfaces en pre-nant en compte tous les écrans nécessaires- Jean-François MAGNIER, Développeur WEB : s’occupe du développement front-end- Nicolas LEBRETON, développeur : s’occupe du développement front-end et aussi unrenfort au développement en back-end.- Antsa RAHARIMANANTSOA, stagiaire-développeur : dont le rôle est de développerle programme moteur d’AZOT (en back-end)

    2.4 Méthodologie de travailChez W3A, le mot d’ordre est l’agilité.La méthode Agile consiste à travailler de manière interactive et collaborative en vued’obtenir un produit fonctionnel mais susceptible de changer. En d’autres termes si denouvelles fonctionnalités s’avèrent être mieux adaptées que celles déjà implémentées, celane pose aucun problème tant pour le produit que pour l’équipe.

    Autour d’AZOT, les membres de ses équipes se voient régulièrement pour une phase demise au point, où tout le monde évoque leurs idées et suggestions par rapport à la situationdu projet. Ensuite, de cette phase découlent plusieurs pistes à explorer pour chacun. Arrivéjusqu’à l’implémentation et tests des approches, une concertation de l’équipe déterminelaquelle il faudrait appliquer. Si aucun résultat n’est satisfaisant, une nouvelle piste seraproposée et testée.

    Cette méthode donne un dynamisme dans l’exécution des tâches, et ouvre beaucoup depossibilités d’amélioration et d’optimisation.

    4

  • 3

    Contexte du stage

    Cette section du rapport de stage explique les paramètres qui ont influencé la réalisationdu projet, qui est le coeur du travail.

    3.1 Problématique identifiée : données disponiblesmais épar-pillées

    Nous avons tous été confronté à des situations qui n’auraient pas dû avoir lieu si nousavons été informés dans les temps.Ceci peut être comparé à l’histoire d’une société de transport non informée de la présenced’un barrage, pour des raisons non prévisibles. De ce fait, les véhicules ayant empruntécette route seraient obligés d’attendre, de faire un détour, voire de reporter la livraison.Dans tous les cas, il y aura un impact négatif sur les chiffres d’affaires de la société.

    Cela illustre le fait que nous pouvons parfois faire face à certaines contraintes (concernantla météo, le trafic routier, la vie sociale en générale) qui peuvent altérer notre emploi dutemps, ou notre gestion aussi bien personnelle que professionnelle.

    C’est autour de cette problématique que les fondateurs du projet AZOT se sont renducompte que malgré le fait que l’information ait bien été délivrée par la presse, les gens nesont pas toujours informés au moment voulu.

    De plus, ils ont dû affronté un problème lié auxmanques de données lors d’une interventionchez un groupe de télécommunication à l’île de La Réunion. En effet, dans le systèmedécisionnel du groupe en question, des données manquaient pour compléter les tableauxde bord. Or, elles existaient et ont été disponibles, mais non générées de façon directe parl’entreprise, et complexes à extraire de par leur nature et leur taille.

    Pour essayer de pallier à ce problème, ils ont imaginé un outil qui fouille, récapitule etfait une synthèse des informations utiles disponibles sur le web, en commençant par lesjournaux en ligne.Cet outil doit par ailleurs et par dessus tout être interactif vis à vis des utilisateurs.

    Ainsi il pourrait les alerter, via leur agenda, des évènements qui peuvent les intéresser,relatifs à leurs activités.

    5

  • Donc, pour reprendre l’exemple, avec AZOT, la société de transport pourra anticiper lesévènements routiers qui pourraient perturber son planning de livraison, et le réorganiseren conséquence.

    Cette problématique qui affecte le quotidien de la majorité des citoyens étant identifiée,l’environnement technologique actuel permet la concrétisation de la solution suggéréepar W3A, principalement grâce à l’ascension des concepts du Big Data et du TraitementAutomatique des Langues.

    3.2 L’émergence du Big DataLa réalisation de l’idée conçue par W3A peut être bien étudiée grâce à l’émergence etmême la montée en puissance du Big Data.

    Le "Big data" (données massives), terme utilisé pour la première fois en 1997 par deuxchercheurs de la NASA [5], est devenu très en vogue depuis la dernière décennie du 21èmesiècle. Ce qui est vraiment innovant et intéressant dans ce concept, ce n’est pas seulementle stockage d’un volume considérable de données, mais surtout la possibilité de les traiterquels que soient leurs types et sources différents. [6]

    Ainsi, le Big Data peut être défini par la manipulation et analyse des données volumineusesgrâce aux moyens informatiques.Ce phénomène permettra donc :- de collecter les données- de les traiter- d’anticiper, prévoir les actions à exécuter suite aux résultats du traitementA propos de données, la tendance est de penser aux nombres quantifiables : âge, poids,taille etc ... de par leur manipulation par calcul facile. Mais les textes sont aussi des sourcesd’information exploitables et riches. Il suffit d’appliquer les bons moyens pour en tirer desinformations réutilisables et manipulables.

    C’est cette piste que l’équipe de projet AZOT suit et veut exploiter. Les presses en lignequi sont maintenant en masse constitueront les principales source de données.

    3.3 Le Traitement Automatique du Langage Naturel (TALN)Le TALN est un concept incontournable pour l’analyse approfondie des textes commeattendue dans le cadre du projet AZOT.C’est un procédé important dans plusieurs domaines : scientifique, économique, social etmême culturel. Il a suivi une ascension rapide du fait que les diverses théories ont pu êtredéployées suite à l’entrée dans l’ère du numérique.Des spécialistes en informatique et relation homme-machine travaillent avec les académi-ciens et spécialistes en linguistiques pour poursuivre les recherches dans ce domaine.

    Le TALN englobe plusieurs disciplines, dont le but est d’appliquer des programmes ettechniques informatiques pour analyser le langage humain.Selon Caroline Barrière [7] lors du séminaire du Centre de Recherche Informatique deMontréal (C.R.I.M) en 2012, le TALN s’effectue par :

    6

  • - la connaissance de la langue et des problématiques reliées et- la connaissance de méthodes de résolution de problèmes utiles en Intelligence Artificielle

    Le domaine est très vaste, car chaque aspect du langage peut être sujet à une étude :- la syntaxe : dans le TALN, l’étude syntaxique est la plus répandue, elle se base surla structure et la composition du langage. Le traitement ici consiste à l’extraction desphrases, des catégories grammaticales des mots (nom, verbe, adjectif ... ), de leur racines,des morphologies.- la sémantique : cette discipline du TALN se penche sur le sens des mots. Son objectifest de comprendre un texte pour pouvoir produire par exemple le résumé, ou une réponseà une question.- le traitement de signal : cet aspect du TALN recouvre tout ce qui est reconnaissance destextes : lecture automatique, analyse acoustique, la phonétique, synthèse vocale etc ...- l’extraction d’information : le traitement englobe la recherche d’information (RI), lafouille de texte, l’analyse des sentiments, la classification et catégorisation de documentsetc.

    Le TALN est un sujet qui ne cesse de prendre de l’ampleur, aussi bien au niveau de sonévolution technique que son utilisation :- En effet, les années 50 marquent ses débuts, avec l’expérience de Georgetown en 1954sur la traduction automatique (Anglais - Russe)- Ensuite dans les années 60 sont apparues les analyseurs syntaxiques et sémantiques, maisles approches sont encore limitées [8],- Les premières applications autour da la sémantique ont apparu, comme la Sémantiqueprocédurale de Woods [9]- Depuis les années 80 jusqu’à maintenant , plusieurs outils et recherches continuent à fairesurface. Ce phénomène s’explique à la fois par la multiplication des données disponiblesen ligne et l’évolution imposante du digital.

    3.4 Objectif fixé par l’entrepriseLes trois facteurs cités précédemment, à savoir la problématique de données éparpilléesainsi que la montée en puissance du Big Data et du Traitement Automatique des Languesont incité les fondateurs de W3A à mettre en place la solution qu’ils proposent à traversAZOT.

    Plus explicitement, cet outil fera la synthèse des faits relatés dans les articles de journauxen des évènements datés et localisés, à la fois pour faciliter l’accès aux informations maissurtout pour valoriser le fait que celles-ci sont disponibles et manipulables.

    L’objectif est alors de réussir à instaurer un système qui construit ces évènements, demanière automatique vu le nombre considérable d’articles de journaux existants.

    7

  • Figure 3.1: Fonctionnement d’AZOT

    Le travail que j’ai effectué durant les six mois de stage s’est focalisé sur la recherche ainsique l’implémentation de l’approche à adopter pour établir ces évènements et les rendreaccessibles.

    8

  • 4

    Contributions du mémoire : mise en placedu système d’extraction automatiqued’évènements

    Cette troisième partie dévoilera en détails les réalisations contribuant à résoudre la pro-blématique et ainsi à répondre au besoin de l’entreprise : la construction d’AZOT.

    4.1 Conception du projetSelon la vision de ses fondateurs, celui-ci doit être capable d’identifier automatiquementles faits relatés dans les journaux et les regrouper. Se basant sur la méthode Agile, leprojet a été mené de façon à toujours présenter un produit fonctionnel et susceptible auxchangements.

    Compte-tenu de la finalité du projet, nous avons tracé les points qui doivent être traitéspar le système pour que ce dernier produise des groupes d’articles différents, caractériséspar leur titres, dates et lieux à partir d’une collection initiale de texte..Afin de débuter le travail, nous avons modélisé les données, de façon très simple etreprésentative, pour permettre à chaquemembre de l’équipe d’avoir une vision de l’objectifet des étapes.

    9

  • Figure 4.1: Structure des données sur AZOT

    ...

    L’équipe a décidé d’appliquer la méthode de classification automatique de documents pourarriver à identifier les groupes d’évènements voulus.

    Pour ce faire, nous avons procédé étape par étape :1- Premièrement, il est utile de récupérer les articles en ligne et les structurer pour constituerla base de données2- Ensuite, il faut transformer les données textuelles en données numériques pour pouvoirappliquer les algorithmes mathématiques de classification3- Suite à cela, la classification automatique prend son cours et à partir de là nous pouvonsétablir les groupes et les nommer.

    Figure 4.2: Etape du projet

    Ces trois points représentent les trois phases du développement du projet. L”entreprise ainsisté sur le fait de tester l’approche et discuter du résultat si cela convient aux besoins.

    10

  • 4.2 Extraction et structuration des contenus des articles avecnewspaper

    Cela consiste à collecter les articles à partir du web en premier lieu, puis séparer les titres,les contenus, les dates et les lieux, pour faciliter ensuite leur requêtes et manipulations.En effet, nous avons fait en sorte qu’AZOT puisse relever automatiquement ces élémentset les stocker.

    Dans cette phase, nous avons alors fait ce qui est appelé communément du "web scraping".

    Rappelons que le web scraping est un terme d’origine anglaise qui signifie littéralement"grattage duweb". C’est une technique qui consiste à lire une pageweb et détecter les diverséléments qui constituent son contenu, permettant ainsi de situer et classer les informationsqui y sont disponibles.

    4.2.1 L’outil de web scraping newspaperPour aller loin dans le scraping que nous avons souhaité faire, nous nous sommes basé surl’outil libre newspaper, développé par Lucas Ou-Yang [10], que nous avons personnalisépour l’adapter à nos besoins.

    Newspaper est un scraper [11], qui vise à transformer les informations non-structuréesprésentes dans les articles en ligne en données structurées facilement exploitables.

    Pour une presse en ligne donnée, il est capable :- d’extraire tous les articles mis à disposition,- de séparer les contenus par type (titre, texte etc ...)

    Figure 4.3: Représentation du WEB scraping

    11

  • catégorie titres textes datespolitique Le préfet au ministère PRÉFECTURE. Dominique... 21/05/2017sport Tour d’Italie : Tom Dumoulin ... Le Néerlandais... 21/05/2017

    Table 4.1: Résultat du web scraping en tableau

    Newspaper utilise lxml pour relever avec précision les éléments des pages qu’il explore.Nous expliquerons demanière détaillée le fonctionnement de cette librairie ultérieurement.Ensuite la fiabilité de chaque paragraphe est mesurée par la détection des mots qui y sontprésents : si lesmots polluants sont majoritaires, le paragraphe ne fait pas partie du contenuprincipal.

    Les mots polluants sont ceux qui sont présents fréquemment dans les publicités, an-nonces, offres etc .. du type "abonnez-vous", "newsletter" ...

    Nous avons adopté cet outil car il a été développé spécifiquement pour les journaux, cequi correspond à nos besoins.

    De plus :- il peut facilement être personnalisé du fait qu’il a été codé en Python ;- il effectue le type de "scraping" que nous recherchons. En effet, AZOT doit être capablede récupérer plusieurs articles de manière automatique, sans forcément avoir un lienspécifique. Cela est possible avec newspaper : il suffit de mettre en paramètre le lien d’unjournal en ligne (exemple : www.clicanoo.re) et il parcourt tous les articles qui y sont misà disposition.- La communauté est active, ce qui permet une bonne collaboration et contributions.- La logique d’extraction des informations est plus convaincante grâce à l’utilisation dela librairie lxml de Python, combinée avec la méthode de calcul de pertinence de chaqueparagraphe, augmentant ainsi la chance d’avoir le texte en entier sans les "mots polluants".

    4.2.2 Cas d’utilisation de newspaper pour AZOTComme tout scraper, newspaper présente toutefois ses limites, et c’est d’ailleurs là quemes contributions ont été utiles afin d’adapter l’outil à nos besoins.

    En effet, rappelons d’abord que la réussite du scraping dépend de l’adaptation du pro-gramme avec les sites à explorer. Nous ne pouvons pas garantir qu’un site garde toujoursla même structure, aussi il n’est pas possible d’avoir un programme complètement stan-dard.

    De plus, le nombre de pages visitées et à traiter doit être limité, pour ne pas encombrer lesite cible et aussi pour ne pas surcharger le serveur où le programme s’exécute.

    Commenewspaper a été développé et testé enAnglais, les sites de référence auxquels LucasOu-Yang s’est basé sont des sites en Anglais comme CNN, BBC, ou bien Slate.com.Or, dans le cadre de notre projet, nous souhaitons travailler avec les sites des presseslocales comme zinfos974, clicanoo.re. En conséquence, il a fallu reconfigurer l’outil pourun meilleur traitement de la langue française.

    12

  • Nous avons donc personnaliser newspaper pour l’adapter à nos besoins. Sans modifier lecoeur du système qui fait déjà ce que nous attendons de lui, nous avons toutefois reprisune bonne partie du programme permettant l’extraction, notamment :

    - le re-paramétrage du programme pour intégrer la langue française- le format des dates,- les filtres des articles pour avoir les plus pertinents (éliminations des annonces parexemple)Nous avons pu avoir un nombre d’articles structurés important qui nous a permis decontinuer le travail.

    Source nombre moyen d’articles extrait par jourclicanoo 40zinfos974 100le quotidien 35

    Table 4.2: Nombre moyen d’articles extraits par jour par source

    4.3 Traitement des données textuelles avant leur manipula-tion

    Comme précisé dans la section 4.1, avant de procéder à la classification de documentsproprement dite, les textes doivent être formatés pour être adéquats aux algorithmes.Cette étape est appelée "Pré-traitement" et est donc fondamentale pour la suite du travail.Nous utiliserons fréquemment le terme "document" dans la suite du rapport, pour faireréférence aux articles de journaux qui font l’objet du projet.

    Durant cette phase de réalisation, nous avons travaillé avec la librairie Natural LanguageToolkit (NLTK) de Python et nous avons relevé trois points fondamentaux qui ont permisde bons résultats lors de la classification :- l’étude syntaxique basée sur la détection des mots- la suppression des "mots vides"- la représentation de document avec TF-IDF

    4.3.1 La détection des mots ou tokenizationCette pratique est commune à tout traitement de textes.En effet, il s’agit de hacher un texte en séparant chaque mot, nommé dans ce contexte"token". L’intérêt est de pouvoir le représenter comme étant élément d’un document.

    La "tokenization" peut être généralisée, c’est-à-dire que nous pouvons considérer que lesséparateurs standards comme l’espace, le trait d’union (-), l’apostrophe (’), le point (.)suffisent à distinguer les mots.Cependant, dans la pratique, nous avons constaté que ce processus dépend du langagepour être pertinent. Dans la lange anglaise par exemple, il a été identifié que l’usage des

    13

  • apostrophes ainsi que des traits d’union sont assez fréquents (avec les prénoms du typeO’Neill, ou les abréviations aren’t, isn’t ...).

    La question de la bonne technique pour la tokenization se pose alors.Dans notre étude, NLTK offre la possibilité de préciser la langue, afin que les contraintesqui y sont intégrées soient prises en compte.

    4.3.2 La suppression des mots vides ou stopwordsDans le domaine du TALN, les mots vides sont ceux fréquents dans un texte mais qui nepermettent pas de le distinguer par rapport à d’autres. Chaque langue a ses propres "motsvides", leur listes étant disponibles sur le web.

    Pour le Français, celle-ci est composée principalement des déterminants (le, la, des, un...), des adverbes de toute sorte (très, beaucoup, visiblement, ...)

    Durant le stage, nous l’avons enrichie au fur et à mesure pour garantir un bon résultat.Nous avons cependant tâcher de ne pas désintégrer complètement nos textes, afin de garderles informations principales qui y sont contenues.

    4.3.3 La Représentation de documents avec TF-IDFArrivé à ce stade, l’étape de notre travail consiste à vectoriser la collection de documentsafin de faciliter leur manipulation pour la suite. Pour ce faire nous avons choisi le modèlede "sac-de-mots" pour la représentation.

    Le principe du sac-de-mots est de distinguer les documents par les mots qu’ils contiennenten procédant par :- la tokenization de chacun- le comptage de l’occurrence des tokens ensuite.

    C’est une technique très utilisée en classification de documents, de par sa logique simplemais pertinente. Cependant, elle présente des limites notamment au niveau de l’extractionde sens car :- elle ne prend pas en compte la séquence des mots, ce qui change leur sens s’ils sontinitialement liés- les mots sont vraiment distincts par leur orthographe, ainsi un terme au singulier seracomplètement différent de sa version au pluriel.

    Néanmoins, comme nous travaillons avec un large corpus, nous n’avons pas insisté surl’extraction de sens pour l’instant.

    Dans notre cas, nous avons représenté les mots par leur poids dans le document déterminéà partir du concept du TF-IDF.Le TF-IDF ou Term Frequency /Inverse Document Frequency est une méthode de pondé-ration des mots qui calcule leur importance dans un document relativement à l’ensemblede documents à étudier, appelé corpus. Sa force réside dans le fait que les mots peu répéti-tifs mais importants ne sont pas évincés par les mots usuels fréquents grâce à l’évaluationde leur apparition dans chaque document (Document frequency). Cela donne plus depertinence quant à la représentation des documents.

    14

  • Deux paramètres sont relevés pour le calcul du TF-IDF d’un terme :- sa fréquence dans le document- l’inverse de la fréquence de documents qui le contient, pour le terme "inverse documentfrequency"

    Le mot i du document j est alors représenté par son tf-idf calculé comme suit :

    t f idfi, j = t fi, j ∗ idfjavec

    t fi, j = log(term f requency) + 1et

    idf j = log( njdfi, j ) + 1n j étant le nombre total de document dans le corpus, dfi, j le nombre de document quicontient le mot i.

    Il est à noter que dans le calcul du idf , nous avons ajouté le "+1" pour ne pas rejeter lecas où le mot apparaît dans tous les documents (car dans ce cas, le rapport entre n j et dfi, jsera égal à 1, ce qui rendra la valeur log nulle et par conséquent la valeur du t f idf de i).

    En ayant procédé ainsi, nous avons en résultat une matrice comportant les t f idf . Pours’assurer de la conformité du résultat escompté, il faut normaliser les valeurs.

    La normalisation est le processus de réajustement des valeurs dans un échantillon pouravoir une norme unitaire, rendant leur comparaison valable.

    Nous avons calculé la norme euclidienne pour chaque vecteur.Pour un vecteur v, sa norme euclidienne est donnée par la formule :

    vnorm =v| |v | |2 =

    v√v12+v22+···+vn2

    Le résultat final est une matrice dont chaque ligne fait référence au vecteur qui représenteun document. Les éléments sont les t f idf normalisés des mots :

    t f idfi, j t f idfi+1, j . . . t f idfm, j...

    .... . .

    ...t f idfi,n t f idfi+1,n . . . t f idfm,n...

    4.4 Classification automatique des articlesA partir des documents représentés dans une matrice que nous avons vue précédemment,nous pouvons à présent appliquer les algorithmes mathématiques pour la classification.

    Plusieurs approches existent pour cette action, mais nous avons concentré nos efforts surle Clustering avec K-means.

    15

  • 4.4.1 Quelques définitions utiles1- Classification de documents : c’est une branche du traitement automatique de langagenaturel qui a pour but, comme son nom l’indique, de regrouper les documents relativementaux informations contenues dans les textes.2- Le clustering : Le clustering est un mot Anglais dont la racine, cluster signifie littéra-lement groupe. C’est une approche de classification qui consiste à rapprocher les élémentssimilaires. Et par lamême occasion éloigner ceux qui sont différents. A la fin nous obtenonsdes groupes distincts les uns des autres.

    Figure 4.4: Exemple de clustering [1]

    4.4.2 Application de la méthode K-means pour faire émerger les évène-ments

    a- Principe du K-means

    L’algorithme de K-means permet de partitionner des données.Soit le jeu de données N = x1, x2, ..., xn. Le but de K-means est de le diviser en k groupesdisjoints C1,C2, ...,Ck(k < n), k devant être précisé au préalable, appelés cluster .Afin de procéder au partitionnement, K-means tend à déterminer le paramètre µ j quipermet de minimiser la distance entre les points à l’intérieur de chaque cluster :

    ∀n ∈ N∗∑ni=1 minµj,xi∈Ci (| |xi − µ j | |2)où xi représente chaque point du cluster Ci, et µ j leur moyenne respective, appeléecommunément centroïde.

    Nous pouvons décrire ce que l’algorithme de K-means fait en trois étapes :1- En donnant en paramètre le nombre de clusters souhaité, la première consiste à calculerles centroïdes initiaux.2- Les éléments de l’échantillon vont alors s’organiser de manière à se rapprocher descentroïdes dont les valeurs approximent les leurs.

    - Par la suite, dans chaque cluster, la moyenne des points est calculée et devient lesnouveaux centroïdes.

    16

  • - Puis la différence entre ancien et nouveau centroïde est évaluée. Ensuite tout leprocessus reprend jusqu’à atteindre un seuil.

    - Cela signifie que la boucle se réitère jusqu’à ce que la différence est nulle, c’est-à-direque les valeurs des centroïdes sont fixées.

    b- Cas particulier de la méthode de K-means pour AZOT

    Dans le cas de ce projet, nous avons adopté la méthode K-means pour rapprocher lesinformations qui parlent dumême sujet parmi les articles que nous avons pris en échantillondurant les tests du programme.

    Le problème s’est cependant posé quant à la détermination du nombre de clusters quenous allons donné, la classification devant être automatique et non-supervisée. En effetnous n’avons pas de référence au départ, vu que nous ne pouvons pas savoir toutes lescatégories possibles.

    Nous avons alors décidé d’itérer la classification avec K-means, afin que les groupes finauxobtenus soient plus fiables.

    Le principe a été le suivant :1- Le nombre de clusters peut être choisi de façon aléatoire. Pour AZOT, nous l’avonsparamétré à environ 10% du nombre total d’articles.2- Au lancement du programme, nous l’avons initialisé à 5%.3- Ensuite, le K-means se répète, mais cette fois pour chaque cluster. Dans ce cas, lenombre de partitionnement consiste au 5% du nombre d’articles contenus dans chaquecluster.4- Le nombre d’itération étant obligatoire en paramètre du script, elle ne doit cependantpas dépasser les 3 fois, pour éviter que chaque article devienne un cluster.

    17

  • Figure 4.5: Algorithme pour le K-means itéré

    En données de sortie, nous avons alors plusieurs groupes contenant les articles qui parlentdu même sujet, qui se sont formé automatiquement. Nous avons nos évènements.

    Figure 4.6: Schéma illustratif du K-means itéré

    18

  • c- Distinction des évènements

    Afin de les identifier les uns aux autres, pour chaque cluster, nous avons relevé automati-quement les mot-clés, ainsi que les dates. Pour le titre des catégories, nous nous sommesbasé sur le mot avec le plus grand score parmi les mot-clés.

    1- Nous avons ainsi ré-évaluer le TF-IDF des mots mais cette fois par rapport aux clusters.Le n j dans la formule du idf devient n′j , le nombre d’articles dans un cluster,

    t f idfi, j = t fi, j ∗ idfjavec

    t fi, j = log(term f requency) + 1et

    idf j = log(n′j

    dfi, j) + 1

    2- Les scores desmots sont propres aux clusters auxquels ils appartiennent. Les nmeilleursseront désignés comme les mot-clés.

    3- Nous avons procédé au "tagging" des mot-clés pour déterminer le "nom" le plus élevé,qui sera celui de l’évènement.Cela fait partie du TALN syntaxique. Il consiste à identifier la nature grammaticale desmots : adjectif, verbe, nom, déterminant, etc ...Pour un nombre restreint de mots, il est très efficace et fiable. Ce qui nous a permis dedéterminer la nature de chaque mot-clés.

    Pour le titre des évènements, dans un premier temps, il est donné par le mot de type "nom"qui a le meilleur score. Cette méthode est susceptible de changer et de s’améliorer.

    4- En ce qui concerne les dates, nous avons formaté les dates de publication pour chaquearticles, et ceux qui ont été publiés à la même date appartiennent au même évènement.

    19

  • 5

    Observation des résultats obtenus

    Suite aux méthodes appliquées précédemment, nous avons pris un échantillon d’articlespour le test afin d’observer les résultats.Cette partie est consacrée à la présentation de ce qui a été obtenu à la fin du travail.

    1- Lors du collecte d’articles, nous avons choisi les trois sources d’information en lignesuivantes :

    - http ://www.zinfos974.com/- https ://www.clicanoo.re/- http ://www.lequotidien.re/

    Le script de web scraping a été lancé plusieurs fois par jour, et pour chaque source. Enmoyenne, nous avons obtenu les résultats déjà annoncé dans la section 4.2.1 : environ 150articles par jour.

    2- Au bout d’une semaine environ nous avons eu 546 articles. Nous avons procédé à leurclassification avec notre algorithme de K-means itéré.

    3- AZOT a trouvé 42 clusters :

    Figure 5.1: Répartition des articles par cluster

    20

  • 4- Faisant suite au parcours des données stockées et restructurées dans la base après leclustering, nous avons constaté que les articles dans chaque cluster parlent à 75% de lamême chose.

    5- Cette évaluation est faite de manière visuelle, en prenant un échantillon des clusters eten comparant un à un les titres des articles.

    Figure 5.2: Représentation de la fiabilité du K-means itéré

    21

  • 6

    L’environnement de travail

    Compte tenu du travail effectué, il va s’en dire que des outils appropriés ont été néces-saires. Aussi, avant l’accomplissement des tâches, la bibliographie et la prise en mainétaient fondamentales.

    Dans cette partie, nous apportons les réponses à la question "Avec quels moyens le projeta-t-il été réalisé?"De ce fait, nous parlerons :

    1. du langage de programmation utilisé ainsi que des outils tierces qui lui sont inhérents2. du système de gestion de base de données

    6.1 Le langage Python dans la science des donnéesC’est un langage interprété, facile d’utilisation et dont les fonctionnalités sont très étenduesgrâce à la richesse des librairies et modules pouvant être importés.

    Il est simple d’utilisation mais très puissant avec des fonctionnalités avancées pour le trai-tement des langues. Plusieurs entreprises ainsi que des domaines de recherche partout dansle monde utilisent ce langage. De par sa simplicité d’usage, il permet plus de productivitéet garantit la maintenance ainsi que la qualité des produits.La liste des grandes réalisations avec Python sont citées sur leur site : http://Python.org/about/success/, où nous pouvons compter des centaines de solutions pour plu-sieurs domaines.

    Python est doté d’une large gamme de librairies, y compris pour le traitement graphique,numérique et même des modules de gestion de la connectivité.Trois d’entre elles en particulier ont été exploitées durant les six mois :- lxml- NLTK (Natural Language ToolKit)- sickit-learn

    6.1.1 Le module lxml de PythonAvec Python, il existe la librairie lxml qui décortique les pages XML/HTML, ce qui permetde situer facilement les différentes parties les constituant.

    22

    http://Python.org/about/success/http://Python.org/about/success/

  • lxml est une librairie permettant au langage Python d’analyser des pages en XML ouHTML. Son utilisation est simple et le résultat est rapide, ce qui explique sa forte notoriétéen matière d’extraction de données.Son fonctionnement se base sur l’API ElementTree [12]. Comme son nom l’indique, lebut est de représenter les pages par une arbre qui montre les dépendances et les liaisonsdes différentes parties.

    Par exemple, avec l’extrait en XHTML suivant, nous illustrerons comment lxml le restruc-ture :

    - Fragment de code :

    Pour un tutoriel complet sur lxml, veuillez suivre le lien tuto.

    - lxml le représente comme suit :

    Figure 6.1: Représentation schématique avec lxml

    Avec cette méthode, nous pouvons extraire par tag les éléments que nous voulons dans unepage html. C’est d’ailleurs la base de ce qui a été fait pour extraire les éléments principauxdes articles de journaux que nous souhaitions traiter.

    6.1.2 La librairie NLTKC’est une infrastructure capable de faire du TALN avec Python. Elle fournit plusieursclasses et fonctions, pouvant être appelées facilement, qui permettent de relever les in-formations d’un texte. Cela inclut la tokenization, le tagging, l’analyse de sentiments,l’analyse grammaticale et structurelle, etc...

    NLTK a été créé en 2001 lors d’un cours de Linguistique informatisée (Computationallinguistics) dans le Département Informatique et Science de l’information de l’Univer-sité de Pennsylvanie. Il a été par la suite amélioré et répandu avec l’aide de plusieurscontributeurs.

    23

  • Il a été réalisé avec Python car :- l’exploration des codes est simplifiée du fait qu’il est un langage interprété- le fait qu’il est orienté objet permet une réutilisation et formatage des données- il est un langage dynamique, ce qui accélère l’obtention des résultats (pas de contraintessur le typage des données, exécution immédiate des actions)

    Il a quatre (4) principales forces qui sont :- sa simplicité : c’est une plateforme peu chargée permettant aux utilisateurs d’avoir accèsau TALN sans s’encombrer de la complexité de cette discipline.- son uniformité : la structure des classes et fonctions sont cohérentes, et leur noms simples ;ce qui facilite leur accès- son extensibilité : d’autres modules et librairies peuvent être utilisés avec NLTK- sa modularité : il est possible d’utiliser certaines fonctionnalités sans connaître toute lastructure du NLTK.Il est actuellement un outil puissant pour le TALN, plusieurs recherches sont d’ailleursbasées là-dessus.

    6.1.3 La librairie sickit-learnIl a été lancé en 2007, d’abord sous forme de Google Summer of Code. Puis en 2010plusieurs contributeurs dont des chercheurs à l’INRIA ont dirigé le projet, et une premièreversion est sortie. Depuis, d’autres versions sont sorties progressivement améliorant aufur et à mesure l’outil.

    Sickit-learn est un moyen complet de faire un Machine learning avec Python.

    Il comporte plusieurs méthodes mathématiques pour :- la classification automatique- le régression- la réduction de dimensions- le clustering- la sélection de modèle- les pré-traitements incluant la normalisation

    Il est simple et efficace pour l’analyse et fouille de données, avec une possibilité dereprésentation graphique basée sur les librairies matplotlib et scipy.De par son format Open Source, il est accessible à tout le monde

    6.2 Le système de gestion de base de donnéesMongoDB est un système de gestion de base de données orientée documents qui nenécessite pas de schéma prédéfini des données. Il a été développé depuis 2007, et en 2010la version stable pour une entreprise est sortie.Il permet de manipuler des objets structurés au format BSON (JSON binaire), sans schémaprédéterminé. En d’autres termes, des clés peuvent être ajoutées à tout moment, sansreconfigurer la base.

    La base créée sur Mongodb comporte les "collections", qui sont équivalentes aux tablespour un système relationnel. En effet, elles permettent de distinguer les divers types

    24

  • de documents qui sont stockés. Les objets contenus dans une collection ont les mêmestructures mais diffèrent par leur identifiant, tandis que chaque collection peuvent avoirdes structures différentes.

    MongoDB est livré avec des liaisons pour les principaux langages de programmation,parmi eux Python que nous utilisons dans notre cas. Cela permet de manipuler les donnéesdepuis le code.Des applications clientes ont d’ailleurs été développées pour sa gestion. La plus notableest Robomongo.

    Selon le classement des systèmes de gestion de bases de données les plus populaires pardb-engines.com, MongoDB occupe la cinquième place, tous types confondus, et lapremière pour les systèmes de gestion de bases de données orienté document en Mai2017.

    25

    db-engines.com

  • 7

    La méthode de classification automatique

    Dans cette section du rapport, nous apportons une étude approfondie sur le point cléexploité au cours du stage, qui est l’approche par la classification automatique.

    7.1 DéfinitionLa classification automatique est la catégorisation d’objets par application d’algorithmesmathématiques. Elle fait appel à un Machine learning pour attribuer à chaque objet laclasse à laquelle il peut appartenir.Dans le domaine du TALN, les objets sont des documents.La classification y est très diversifiée : elle peut se faire par genre, par thème, ou encorepar opinion.Sa réalisation est par le biais des algorithmes spécifiques implémentés dans les systèmesde traitement de l’information. Par conséquent, l’étape préalable est le pré-traitement quiest la représentation numérique des documents pour être manipulables par les algorithmesmathématiques.

    Ces derniers reposent sur deux types d’approches. Nous distinguons la méthode non-paramétrique et la méthode probabiliste.

    - La méthode non-paramétrique considère uniquement le fait que les individus prochesl’un de l’autre ont des chances d’appartenir à la même classe- Pour la méthode probabiliste, elle repose sur la distribution des éléments à classifier.Autrement dit, selon la manière dont ils sont répartis, aussi appelée "loi de probabilité",il faut déterminer d’abord ses paramètres et évaluer ensuite à quelle classe chacun desindividus est plus probable d’appartenir.

    Il y a deux principaux modes pour la classification : supervisé, ou non-supervisé.- En mode supervisé, des éléments pré-définis seront utilisés pour classer un document :cela peut être un index, ou encore un dictionnaire de mots correspondant à une classeparticulière et servant à pré-étiqueter les documents.- En mode non-supervisé, c’est sur la phase d’apprentissage que reposera l’entraînementdu classifieur, et ses performances ultérieures.

    26

  • 7.2 La classification automatique par le clusteringLe clustering fait référence à une catégorisation des données qui consiste à façonner desclasses auxquelles chaque entité doit appartenir selon qu’elle en soit proche.

    Dans cette partie, nous découvrirons deux principales méthodes de clustering appliquéesaux documents, qui ont été étudiées durant l’étude de faisabilité du projet AZOT.

    7.2.1 La méthode K-meansLes détails lui concernant sont déjà explicités dans la section 4.4.2 de ce rapport, étantdonné qu’elle a été utilisée pour la réalisation du stage.

    Elle a fait ses preuves dans plusieurs domaines d’application. Son efficacité s’accroîtproportionnellement à la taille d’échantillon à étudier.

    Malgré cela, elle présente certaines limites, notamment :- au niveau de la détermination du nombre de clusters : si nous ne connaissons pas àl’avance le nombre de clusters que nous voulons avoir, le choix de ce nombre est trèsrelatif. Ainsi, selon le résultat escompté, c’est aux utilisateurs de trouver un moyen de ledéfinir.- au niveau du calcul de la distance, il n’est pas optimal du fait que dans un espace à trèsgrandes dimensions, les distances euclidiennes seront gonflées, ce qui multipliera le tempsd’exécution de la recherche de la valeur minimale.- cependant, ce risque peut être atténué en ajoutant dans le pré-traitement un algorithmede réduction de dimensionnalité comme la méthode ACP (analyse en composantes prin-cipales).

    7.2.2 La méthode Mean shiftC’est une variante du clustering présentée en 1975 par Fukunaga et Hostetler.[17]

    Le Mean shift est un algorithme itératif qui a pour objectif de faire converger un point versle maximum local le plus proche :En choisissant un point de départ P donné :- la première étape est de chercher l’ensemble E des points qui sont dans le voisinage de P,- ensuite, P sera déplacé vers l’isobarycentre de E- ce processus est répété autant de fois jusqu’à une convergence

    Les déplacements successifs vers l’isobarycentre font converger le point P vers une zonede forte densité.Par itération, les points de convergence seront identifiés, et par conséquent, les partitions.

    Comme l’algorithme de Mean shift se base sur la détection d’isobarycentre, la région àexplorer, appelée bandwidth, doit être passée en paramètre au lancement du programme.Il détermine par lui-même ensuite le nombre de clusters, qui correspond au nombre depoints de convergence.

    27

  • 7.2.3 Comparaison entre K-means et Mean shift- K-means est réputé pour être un algorithme de clustering simple, rapide et efficace.

    - La force duMean shift est basée sur le fait qu’il ne nécessite pas l’initialisation du nombrede clusters voulus. De plus, il n’exige pas une forme spécifique des clusters, ce qui n’estpas le cas du K-means. Pour ce dernier, elle est forcément ellipsoïde ou sphérique.

    Malgré cela, le choix du bandwidth reste très critique car il a beaucoup d’impacts surl’exécution et le résultat.En effet, le temps d’exécution de l’algorithme s’accroît au fur et à mesure que l’étenduedu bandwidth initialisé est réduite.Or avec un bandwidth large, le résultat du clustering est altéré.

    - De par l’expérience vue durant le stage, lors du test de l’algorithme de Mean shift, nousn’avons jamais pu identifier la meilleure façon d’initialiser notre bandwidth. De ce fait, àplusieurs reprises, nous avons fait face à la sous-classification de nos données : elles onttoutes été mises dans le même groupe.

    - En plus, avec un jeu de données significatif (plusieurs centaines d’articles), l’environne-ment de test ne l’a pas supporté et nous avons été confrontés à des situations de plantagedes serveurs et des machines.

    - Contrairement à cela, le fait d’avoir itéré le K-means nous a permis d’obtenir un résultatconcluant avec un temps d’exécution rapide.

    - Cela a augmenté la productivité car nous avons pu analyser et améliorer rapidementl’algorithme.

    7.3 Les sortes de représentation de documentsLa représentation de documents fait partie de la phase de pré-traitement lors de la classifi-cation automatique dans le contexte du TALN . Cela dit, elle est importante car c’est d’elleque dépend la fiabilité des résultats de la classification. Il a été prouvé que les termes dudocuments constituent la meilleure unité de représentation.[13]

    De ce fait, il y a plusieursmanières de le faire, chacune ayant ses avantages et inconvénients ;ci-après quelques exemples :

    1- Sac de mots (bag of word - BOW) :C’est la plus utilisée, unemanière basique consistant à former des vecteurs à partir desmotsdu document en utilisant leur fréquence. Ce procédé est aussi appelé Modèle vectoriel.

    Cependant, le fait que les documents sont assez longs peuvent engendrer une représentationvectorielle tout aussi volumineuse. De plus, comme le traitement se limite à relever lesmots, leur cohérence et relation sémantique sont inconsidérées.Néanmoins, afin d’améliorer la performance, il existe des méthodes pour mesurer les poidsdes termes.[14]

    2- La représentation par ontologie [15], préserve la relation sémantique entre les motsdans un document.

    28

  • L’automatisation de cela est toutefois une très grande tâche, à cause du manque de basede connaissances structurée.

    3- Représentation par la probabilité [16]Cela consiste à utiliser la distribution déterminant la catégorie probable du documentcomme vecteurs le représentant.

    29

  • 8

    Étude comparative avec Google Actualités

    AZOT n’est pas le premier outil qui permet de gérer la consultation et intégration desinformations. Google a en effet sorti Google actualités (Google news) il y a quinze ans decela, en 2002.

    Cependant, les deux plateformes ne font pas exactement lamême chose. Nous expliciteronsdans cette avant-dernière partie du rapport les similarités ainsi que les différences entreleur services respectifs.

    8.1 Présentation de Google ActualitésGoogle Actualités ou Google News est un service en ligne gratuit de Google qui présentede façon automatisée des articles de journaux en provenance de diverses sources sur leWeb.Il fonctionne de la même manière qu’un moteur de recherche, mais le résultat est unique-ment des articles de presse.

    Ce service a été créé en Avril 2002, et est disponible dans 22 pays.

    8.2 Fonctionnalités

    8.2.1 Fonctionnement général1- Collecte d’informations : Google Actualités sélectionne des sources d’informationdans les pays où le service est proposé. Chacune des sources sélectionnées est scrutéeplusieurs fois par jour pour que les nouveaux articles soient indexés. Leur contenu estanalysé à l’aide d’algorithmes pour déterminer le sujet. [http://news.google.fr/intl/fr_fr/about_google_news.html]Par exemple, les sources collectées par le service selon les langues sont de 500 en Françaiset 4 500 en Anglais.

    2- Tri des articles :Après cela les articles sont triés par pertinence de façon à les afficheren première page selon leur popularité.L’utilisateur est redirigé vers la source des articles lors des consultations.[18]

    30

    [http://news.google.fr/intl/fr_fr/about_google_news.html][http://news.google.fr/intl/fr_fr/about_google_news.html]

  • 8.2.2 Présentation des articles sur Google ActualitésSur la page principale, les articles sont regroupés parmi les rubriques suivantes : À la une,International, France, Entreprises, Science/Tech, Sports, Culture et Santé.Une mise à jour de la page est effectuée toutes les 15 minutes (option paramétrable).

    Il est possible de personnaliser sa page en ajoutant ses propres rubriques : "Actualitéspersonnalisées" comprenant les actualités relatives à des mot-clés, mais aussi des localités,le tout, à l’aide d’un compte Google.

    Il est possible d’atteindre les informations qui datent de plusieurs années en arrière grâceaux archives de Google Actualités ainsi que l’avancé de la technologie Googles.

    8.3 Comparaison avec AZOTGoogle Actualités simplifie la recherche d’informations pour l’utilisateur en faisant unpré-tri pour lui. Sur ce point, AZOT lui ressemble.

    Cependant :- AZOT ne se contente pas d’afficher les résultats selon leur catégorie, mais vise à lessituer dans le temps et dans l’espace afin de faciliter l’organisation de l’utilisateur.- Il prévoit de synchroniser ces évènements avec des applications de gestion d’emploi dutemps sur mobile.- AZOT est un site qui offre beaucoup de manières de consulter les informations : parcatégorie, recherche par mot-clés, visualisation globale de tous les évènements,... GoogleActualités , en tant que moteur de recherche, aide simplement à donner rapidement desréponses concrètes aux requêtes des utilisateurs.

    31

  • 9

    Conclusion

    Le traitement des textes est un phénomène qui a pris beaucoup d’importances depuis lamontée en puissance du Big Data et ses méthodes innovantes. Couplé avec le Machinelearning, il est devenu de plus en plus accessible. Et comme son application aide lesgrandes entreprises dans leur stratégie et développement, il est aussi devenu important.

    C’est grâce à cela queW3A a décidé demettre en oeuvre leur idée de créer des évènements,par l’exploration et synthèse des sites de journaux en lignes pour trier et faire une synthèsedes informations qui influenceront l’organisation et la gestion d’une entreprise.Cette expérience a permis d’exploiter de long en large les techniques pour la classificationautomatique de documents. Au cours des six mois de stage pendant lesquels les troisgrandes phases du projet ont été élaborées, testées, évaluées et peaufinées, l’outil AZOTest alors capable de retrouver par lui-même les catégories d’évènements dans un ensembled’articles de journaux récoltés. De plus, il est doté d’une fonctionnalité lui permettant deprédire à quel groupe tout nouvel article pourrait appartenir.

    Travailler dans le cadre du projet AZOT m’a été bénéfique car plusieurs compétencestant sur le plan technique que personnel ont été requises pour le mener à bien : la gestiondu temps, le choix des outils et des méthodes à appliquer, la communication et le travailcollaboratif et intensif. Les bases acquises en cours ont permis de découvrir plus facilementles axes de recherche. Ajouté à cela, le MOOC suivi a accéléré la prise en main du langagePython et la familiarisation avec le Big Data.

    De surcroît, la méthodologie de travail chez W3A a été adéquate et motivante, car ellefavorise les échanges, ce qui éloignent les longs blocages techniques et motive la produc-tivité.

    Par rapport aux objectifs initiaux du stage, nous pouvons dire que le plus gros du travail a étéeffectué. Néanmoins, il faudrait explorer d’autres moyens pour nommer les évènements.Nous avons notamment commencé à faire les expériences avec un outil d’indexationcomme ElasticSearch ou Apache Solr. AZOT doit aussi, dans le futur, être capable defouiller dans les textes pour relever les dates exactes de déroulement des faits, et ne plusse contenter des dates de publication des articles. Par ailleurs, l’ambition de W3A estde fournir un outil puissant, aussi faudra-t-il un test utilisateur pour relever les éventuelspoints à améliorer/corriger, et tout aussi important il est nécessaire de faire l’étude de miseen place de l’infrastructure quand il sera utilisé par le grand public.

    32

  • Bibliographie

    [1] Nicoguaro. iris data. https://commons.wikimedia.org/w/index.php?curid=46257808.

    [2] Thomas H Davenport and Jill Dyché. Big data in big companies. 2013.[3] Thierry Warin, Nathalie de Marcellis-Warin, Antoine Troadec, William Sanger, Ber-

    trand Nembot, et al. Un état des lieux sur les données massives. Technical report,CIRANO, 2014.

    [4] It predictive, fourniture de données sur mesure par w3a. Entreprise-reunion.re, 2015.[5] Michael Cox and David Ellsworth. Application-controlled demand paging for out-

    of-core visualization. In Proceedings of the 8th conference on Visualization’97,pages 235–ff. IEEE Computer Society Press, 1997.

    [6] JanuszWielki. Implementation of the big data concept in organizations-possibilities,impediments and challenges. In Computer Science and Information Systems (FedC-SIS), 2013 Federated Conference on, pages 985–989. IEEE, 2013.

    [7] Caroline Barrière. Le taln... c’est quoi au juste? Decembre 2012.[8] Noam Chomsky. Syntactic structures. Walter de Gruyter, 2002.[9] Kenneth W Church and Robert L Mercer. Introduction to the special issue on

    computational linguistics using large corpora. Computational linguistics, 19(1) :1–24, 1993.

    [10] Lucas Ou-Yang. newspaper. https://github.com/codelucas/newspaper,2017.

    [11] Aurélien Rouby and Thibaut Tournier. Scraping & crawling. 2013.[12] effbot.org. Elementtree overview. http://effbot.org/zone/element-index.

    htm.[13] F. Song, S. Liu, and J. Yang. A comparative study on text representation schemes in

    text categorization. Journal of Pattern Analysis Application, 8 :199–209, 2005.[14] Altinçay H. and Erenel Z. Analytical evaluation of term weighting schemes for text

    categorization. Journal of Pattern Recognition Letters, 31 :1310–1323, 2010.[15] HothoA. andMaedcheA.and Staab S. Ontologybased text clustering. In Proceedings

    of International Joint Conference on Artificial Intelligence, 41 :30–37, 2001.[16] Isa D., Lee L. H., Kallimani V. P., and Rajkumar R. Text document preprocessing

    with the bayes formula for classification using the support vector machine. IEEETransactions on Knowledge and Data Engineering, 20 :23–31, 2008.

    [17] Fukunaga Keinosuke and Larry D. Hostetler. The estimation of the gradient of adensity function, with applications in pattern recognition. IEEE Transactions onInformation Theory, 21 :32–40, January 1975.

    33

    https://commons.wikimedia.org/w/index.php?curid=46257808https://commons.wikimedia.org/w/index.php?curid=46257808https://github.com/codelucas/newspaperhttp://effbot.org/zone/element-index.htmhttp://effbot.org/zone/element-index.htm

  • [18] Franck Rebillard. Du traitement de l’information à son retraitement. Réseaux,(3) :29–68, 2006.

    [19] John W. Shipman. Python xml processing with lxml, August 2013.[20] F. Pedregosa, G. Varoquaux, A. Gramfort, V. Michel, B. Thirion, O. Grisel, M. Blon-

    del, P. Prettenhofer, R. Weiss, V. Dubourg, J. Vanderplas, A. Passos, D. Cournapeau,M. Brucher, M. Perrot, and E. Duchesnay. Scikit-learn : Machine learning in Python.Journal of Machine Learning Research, 12 :2825–2830, 2011.

    [21] Lars Buitinck, Gilles Louppe, Mathieu Blondel, Fabian Pedregosa, Andreas Mueller,OlivierGrisel,VladNiculae, Peter Prettenhofer,AlexandreGramfort, JaquesGrobler,Robert Layton, Jake VanderPlas, Arnaud Joly, Brian Holt, and Gaël Varoquaux. APIdesign for machine learning software : experiences from the scikit-learn project. InECML PKDDWorkshop : Languages for Data Mining andMachine Learning, pages108–122, 2013.

    [22] Steven Bird, Ewan Klein, and Edward Loper. Natural Language Processing withPython. O’Reilly Media, 2009.

    34

  • ANNEXES

    35

  • Fiche sur le MOOC suivi

    Afin de renforcer les compétences techniques requises pour le stage, j’ai suivi un mooc re-latif à mon sujet. Il s’agit du cours intitulé "Fondamentaux pour le Big Data", disponiblesur [https://www.fun-mooc.fr/].

    Il a duré six (6) semaines, du 30 Janvier au 13 Mars 2017.

    Il a proposé cinq grands points à explorer :1- La programmation avec Python : notamment :- la découverte de l’environnement- les modules et leur import- comment écrire un programme en utilisant tous les éléments de structures, conditions,boucles, tableaux ...- comment écrire un programme orienté objet avec Python- utilisation de la librairie matplotlib pour produire les graphes- prise en main de la librairie numpy pour manipuler les tableaux et ses valeurs

    2- L’analyse de données et algèbre linéaire : Rappel sur l’espace vectoriel, les applicationslinéaires, les matrices et leur calcul, la géométrie.

    3- Les probabilités : probabilités discrètes et aléatoires, calcul des espérances, covariances,les lois de probabilités

    4- La statistique : moyenne, estimateur, intervalle de confiance, etc ...

    5- Le classifieur Perceptron

    Ce cours a été bien adapté à mes attentes surtout pour la partie prise en main du langagePython et les rappels sur l’algèbre linéaire.

    - En effet, c’est au cours du stage que j’ai découvert l’univers du langage Python. Aussi,le fait d’avoir suivi ce mooc et essentiellement la première partie m’a grandement aidé.- Pour l’Algèbre linéaire, et spécifiquement la matrice, il m’a été nécessaire de réviser lesnotions car la classification automatique de documents manipule les matrices.- Pour les autres parties du cours, je les ai suivies par curiosité, car elles n’ont pas étéappliquées durant le travail, mais elle m’ont permis de comprendre certaines notions.

    36

    [https://www.fun-mooc.fr/]

  • Planning du projet

    Leprojet a été fait depuis la conception durant le stage. L’étape de bibliographie a cependantété très utile pour avoir une vision objective et critique par rapport auxméthodes à appliquerpour le mener.

    L’organisation a été la suivante :- la familiarisation avec l’environnement de travail :- la bibliographie : autour du langage Python, le système de gestion de base de donnéesMongoDB,l’apprentissage non-supervisé, des algorithmes de classification, du traitementde langage naturel- la conception du projet- la prise en main des méthodes pour la classification automatique- le développement et tests de fonctionnalités

    Figure 9.1: Diagramme de GANTT du projet

    37

  • Code pour l’itération du K-means

    Figure 9.2: Code pour le K-means itéré avec Python

    38

  • Présentation des évènements sur AZOT

    Figure 9.3: La page "journal" d’AZOT

    39

  • Glossaire

    back-end : représente une grande partie du développement d’un projet web. Sans elle, lesite web reste une coquille vide.

    CSS : Cascading Style Sheets

    - digital : La nouvelle expression qui désigne l’utilisation, l’évolution et l’impact destechnologies sur les utilisateurs directement.

    front-end : les éléments de site visible à l’écran et avec lesquels les utilisateurs inter-agissent. Ces éléments sont composés de HTML, CSS et de Javascript contrôlés par leurnavigateur web.

    - HTML :HyperText Markup Language

    - NASA : National Aeronautics and Space Administration

    - NLTK : Natural Language ToolKit

    - startup : jeune entreprise innovante, en construction et/ou en phase de développementet test d’une idée.

    - TF-IDF : Term Frequency/Inverse Document Frequency

    - XML : L’Extensible Markup Language ( langage de balisage extensible en Français)

    - URL : Uniform Resource Locator

    40

    IntroductionL'entreprise d'accueil: W3APrésentation généralePrésentation d'AZOTL'équipe de projetMéthodologie de travail

    Contexte du stageProblématique identifiée: données disponibles mais éparpilléesL'émergence du Big DataLe Traitement Automatique du Langage Naturel (TALN)Objectif fixé par l'entreprise

    Contributions du mémoire: mise en place du système d'extraction automatique d'évènementsConception du projetExtraction et structuration des contenus des articles avec newspaperL'outil de web scraping newspaperCas d'utilisation de newspaper pour AZOT

    Traitement des données textuelles avant leur manipulationLa détection des mots ou tokenizationLa suppression des mots vides ou stopwordsLa Représentation de documents avec TF-IDF

    Classification automatique des articlesQuelques définitions utilesApplication de la méthode K-means pour faire émerger les évènements

    Observation des résultats obtenusL'environnement de travailLe langage Python dans la science des donnéesLe module lxml de PythonLa librairie NLTKLa librairie sickit-learn

    Le système de gestion de base de données

    La méthode de classification automatiqueDéfinitionLa classification automatique par le clusteringLa méthode K-meansLa méthode Mean shiftComparaison entre K-means et Mean shift

    Les sortes de représentation de documents

    Étude comparative avec Google ActualitésPrésentation de Google ActualitésFonctionnalitésFonctionnement généralPrésentation des articles sur Google Actualités

    Comparaison avec AZOT

    ConclusionBibliographie