« RapidMiner Studio » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
 
(38 versions intermédiaires par 4 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{tutoriel
|fait_partie_du_cours=Analytique et exploration de données
|fait_partie_du_module=Outils text mining
|statut=à finaliser
|cat tutoriels=Outils text mining
|difficulté=intermédiaire
}}


= Introduction =
= Introduction =


'''Rapidminer''' est à la fois un logiciel open source gratuit, et un produit commercial, destiné au mining (de texte, d'images ou autres) en général.
RapidMiner est un outil utilisé pour le mining, le traitement de données et le machine learning. Cela permet d’importer des bases de données et les moduler à travers ses nombreuses fonctions pour extraire le type de données souhaité. Par exemple, on peut sélectionner des attributs spécifiques, trouver et filtrer les données “inutiles” et créer ainsi des modèles prédictifs. Le logiciel est compatible avec beaucoup de databases, comme Excel et MySQL, et ses opérations sont décrites en XML en permettant une grande flexibilité.


RapidMiner propose des fonctionnalités de "data mining" et de "machine learning" dont : chargement de données et transformation (ETL), pré-traitement et visualisation, modélisation, évaluation et déploiement de données. Les processus de "data mining" peuvent être construits à partir d'opérateurs "intégrables les uns aux autres", décrits dans des fichiers XML et créé dans l'interface graphique (GUI) de RapidMiner. Le logiciel a été écrit en Java. Il intègre également des schèmes d'apprentissage et des évaluateurs d'attributs de l'environnement de "machine learning" Weka ainsi que des schèmes de modélisation statistique du R-Project. (traduit de la [http://en.wikipedia.org/wiki/RapidMiner page Wikipedia] de RapidMiner) 


= Installation =
= Installation =
Ligne 33 : Ligne 39 :
* De nombreuses sources de données : Excel, Access, Oracle, IBM DB2, Microsoft SQL, Sybase, Ingres, MySQL, Postgres, SPSS, dBase, Text files, et d'autres encore ...
* De nombreuses sources de données : Excel, Access, Oracle, IBM DB2, Microsoft SQL, Sybase, Ingres, MySQL, Postgres, SPSS, dBase, Text files, et d'autres encore ...
* RapidMiner vous permet de travailler avec différents types et tailles de sources de données
* RapidMiner vous permet de travailler avec différents types et tailles de sources de données
= Type de données =
Avec RapidMiner, il est possible d’importer tout type de données que ce soit des données enregistrées sur des fichiers ou des données hébergées sur des bases de données externes sql et nosql. D’après le site de RapidMiner, il est notamment possible d’intégrer des entiers (integer), des réels (real), des données numériques, du binomial, du polynomial, des données nominales, ainsi que des dates. De cette manière, on peut intégrer des données opérationnelles ou transactionnelles (données de coûts par exemple), des données non opérationnelles (données prévisionnelles par exemple) et des métadonnées (données concernant les données elles-mêmes).
= Nature des traitements possibles =
RapidMiner offre une vaste gamme d'outils pour le traitement de données que ce soit pour le prétraitement ou pour le traitement. Ces outils, ou opérateurs, permettent d’effectuer un grand nombre d’actions qui vont de l'importation et l’exportation des bases de données, au filtrage et la réorganisation des données. Le rayon des possibilités que cet outil offre est tellement vaste qu’il est impossible de les résumer dans cet article, cependant on se limitera à en décrire ceux qui apparaissent être les principaux. Pour ce faire il y a deux concepts clés à retenir, les concepts de data blending et de data cleansing.
Le data blending (littéralement “fusion de données”) est, comme le nom le suggère, l’action de prendre des données de différentes bases de données et de les fondre ensemble. RapidMiner (à la version actuelle) offre 82 opérateurs liés à cette pratique, voici les plus basiques:
*'''Union''': cet opérateur permet de mettre ensemble deux bases de données. Le résultat est une base de données unifiée avec les données de la première plus les données de la deuxième. Si une base de donnée a des attributs qui ne sont pas dans l’autre, certaines données seront manquantes, donc il est préférable de l’utiliser avec des bases de données ayant les mêmes attributs.
*'''Join''': cet opérateur permet de mettre ensemble deux bases de données sur la base d'attributs clés que les deux ont en commun. Par exemple, si on a une base de données avec une liste de produits et une base de données avec les produits vendus et que les deux ont l'attributs commun "ID produit", alors les deux bases de données peuvent être mises ensemble en prenant "ID produit" comme point de référence. Le résultat est une base de données unifiée où les données sont mises en commun en minimisant la possibilité d’avoir des données manquantes comme dans le cas de “union”.
Le data cleansing (nettoyage de données) est une pratique, surtout utilisée en phase de prétraitement, qui permet de se libérer des données “inutiles” comme les données manquantes, des données étranges qui peuvent être causés par des erreurs de measurements, ou bien qui sont triviaux pour le type d’analyse qu’on est en train d’effectuer, RapidMiner offre 28 opérateurs pour le data cleansing, voici certains exemples:
*'''Replace Missing Values''': comme on peut le comprendre depuis le nom, cela permet de remplacer les données manquantes avec des données fictives qui n’ont pas d’influence relevante dans les résultats.
*'''Normalize''': ceci permet d’uniformiser différentes données numériques en les mettant sur la même échelle, cela permet par exemple de trouver plus facilement des valeurs étranges avec l’aide de l’opérateur Detect Outlier (Distances)
Autre que le data blending et le data cleansing, on a aussi d'autres modes de traitement de données: par exemple, on a la possibilité de créer des modèles (en totalité on a à disposition 167 types de modèles). Parmi ceux-là on a des modèles prédictifs (63 au total), dont un est expliqué dans le tutoriel: le '''Decision Tree'''. En plus on a aussi des modèles de segmentation (14), d’associations (6), de corrélations (8), de similarité (4) etc.
Parmi les autres modes de traitement de données, on a aussi la possibilité de créer des '''Macros''' qui sont un concept similaire aux variables dans la programmation et qui permettent d’effectuer des opérations complexes, comme décider combien de données visualiser et selon quel critère. Il est possible aussi de générer des tables en Excel ou autres formats et sauvegarder les bases de données traitées sur son ordinateur et beaucoup d’autres fonctionnalités encore.
Enfin RapidMiner permet de visualiser ces données à travers une vaste gamme de graphiques.
= Visualisations offertes =
En important une base de données, il est directement possible d’observer ces données sous forme de tableau simplement en cliquant sur “results” dans la barre principale et “data” dans la barre latérale. Si l’on prend par exemple, le tutoriel proposé par RapidMiner, il est possible d’obtenir plus d’informations concernant les passagers du Titanic.
[[Fichier:Visu 0.png|centré|vignette|809x809px]]
En cliquant sur l'onglet “statistics” dans la barre latérale, on obtient des statistiques plus précises sur chaque colonne du tableau de l’onglet “data”. Par exemple, si l’on s’intéresse à l’âge des passagers, on peut voir que la moyenne d’âge est d’environ 30 ans, que la personne la plus jeune avait moins d’un an et que la plus âgée avait 80 ans.
[[Fichier:Visu 3.png|centré|vignette|988x988px]]En cliquant sur “open visualizations”, l’onglet “visualizations” dans la barre latérale s’ouvre. On peut choisir plusieurs types de visualisations. Les deux grandes catégories sont les graphiques (“charts”) et les cartes (“maps”). Dans la première, on retrouve 36 types de graphiques différents. Ils permettent de regarder les données de manière différente, en fonction de ce qu’on cherche à mettre en avant.[[Fichier:Visu 1.png|vignette|centré|690x690px]]
On peut par exemple utiliser le diagramme circulaire ou la pyramide pour montrer des pourcentages de différentes catégories de la base de données. Si l’on prend l’exemple du tutoriel, on pourrait par exemple voir le pourcentage de passagers ayant survécu ou non, tout comme le pourcentage de femmes ou d’hommes parmi les passagers. Egalement, on peut utiliser un diagramme en boîte. Avec celui-ci, on peut obtenir la valeur minimum et la valeur maximum d’une base de données, mais aussi la médiane et le 1er et 3ème quartile. Si l’on prend l’exemple du Titanic, on peut choisir le type de données à observer (âge par ex.) et si l’on souhaite diviser cette observation en différents groupes. Ainsi, on peut par exemple observer l’âge des passagers du Titanic en fonction de leur sexe:
[[Fichier:Dia boite.png|vignette|centré|700x700px]] 
On remarque alors que la femme la plus agée avait 76 ans, tandis que l’homme le plus âgé avait 80 ans. De plus, on peut voir que 50% des hommes avaient entre 30 et presque 1 an. Les autres 50% avaient entre 30 et 80 ans.
Pour ce qui est de la catégorie des cartes, on retrouve 3 types de cartes différentes. Les utiliser Pour l’exemple issu du tutoriel de RapidMiner, si l’on avait accès aux nationalités des passagers, on aurait notamment pu visualiser sur les cartes, le nombre de passagers par pays.
[[Fichier:Visu 2.png|centré|vignette|700x700px]]
= Points forts et limites =
RapidMiner est certainement un outil qui offre une vaste gamme de possibilités et qui est flexible. Il possède une interface qui permet de visualiser le processus de traitement de données à travers un système de drag and drop où les opérateurs sont trascinés sur l’écran et mis en lien, cela donne ainsi au logiciel une interface intuitive et plaisante à utiliser. La quantité d’opérateurs à disposition permet aussi d’effectuer des traitements complexes sur les bases de données et d’extraire les informations qu'on nécessite de façon rapide et sans besoin de connaissances de programmation. Il y a également la possibilité de visualiser les données à travers nombreux modèles et graphiques rendant tout l’ensemble intéressant. Le fait d’avoir à disposition une version gratuite de RapidMiner pour l’éducation en permettant d’explorer toutes les fonctionnalités sans limitations, est aussi un point positif.
Cependant, malgré la présence d’un tutoriel qui nous aide à effectuer les premiers pas avec RapidMiner en nous familiarisant à certaines opérations de base, l’outil est très difficile à maîtriser, surtout pour ceux qui s’approchent pour la première fois du domaine de l’analyse et de l’extraction de données, aussi les instructions offertes par le site du logiciel ne sont pas toujour faciles à comprendre. Dans ce cas, la grande disponibilité d’opérations possibles se heurte à un temps d’apprentissage très long et une complexité qui peut effrayer les débutants et cela malgré la possibilité de visualiser les opérations. Un autre limite concerne l’accessibilité au niveau du prix. En effet, si l’on n’a pas droit à la version pour l’éducation qui est gratuite pendant un an et qui est quand-même limitée dans le nombre de données analysables, il faut acheter le produit pour profiter de tout son potentiel. Pour ce qui concerne le prix il y a aussi un manque de transparence, car cela n’est pas directement accessible sur le site web du producteur, mais en regardant les nombreux commentaires sur internet on nous laisse entendre que cela coûte cher. Pour terminer, RapidMiner est un outil qui n’est pas encore développé en français et même si on trouve rares documents en français sur internet, la langue peut être une barrière pour comprendre comment tout fonctionne.


= Examples d'utilisation =
= Examples d'utilisation =
Ligne 43 : Ligne 98 :
== Basic text mining ==
== Basic text mining ==


As described before, RapidMiner can be used as a text mining software. I will describe here an example of text mining process, where we will :
Comme décrit précédemment, nous allons tout d'abord voir de quelle façon RapidMiner mine du texte. Nous allons utiliser des processus de minage de texte servant à :
# Load and extract words from (the text files in) two directories
# Charger et extraire les mots de fichiers textes, de deux répertoires différents
# Ignore some words that are not wanted (stoplist)
# Ignorer certains mots non pertinents (stop list)
# Generate the results
# Générer des résultats
# View results
# Visualiser ces résultats


=== Launch RapidMiner Studio and load data ===
La question à laquelle nous tenterons de répondre est : "Quels mots sont les plus représentés dans un corpus de textes relatifs au domaine de la littérature, et dans un corpus de textes du domaine de la photographie ?"


[[File:RapidMiner_Studio_Tutorial1_B.PNG|100px|thumb|left|Fig.1 : Text Mining Extension]]
=== Lancement de RapidMiner et chargement des données ===
[[File:RapidMiner_Studio_Tutorial1_C.PNG|300px|thumb|right|Fig.2 : The workspace]]


As you launched RapidMiner Studio (v. 6.1.1000) you will need to install the Text Mining extension. RapidMiner works with extensions that plug into the core system.
[[File:RapidMiner_Studio_Tutorial1_B.png|100px|thumb|left|Fig.1 : Text Mining Extension]]
The Text Mining extension can be found in RapidMiner Marketplace, which can be accessed from Help > Updates and Extensions (Marketplace) as shows the figure 1.
[[File:RapidMiner_Studio_Tutorial1_C.png|300px|thumb|right|Fig.2 : The workspace]]


After restarting the software, we can start working with it. First of all '''create a New Process'''. You will see now the main window of RapidMiner Studio, and I will briefly describe the main zones of the working space :
Lorsque vous lancez RapidMiner Studio (v. 6.1.1000) vous avez besoin d'installer l'extension de "Text Mining". En effet, RapidMiner travaille avec des extensions qui viennent se greffer au système central.
* In '''blue''' we have the main toolbar
Vous pouvez trouver l'extension de "Text Mining" sur le Marketplace (Aide > Mises à jour et Extensions (Marketplace))(fig. 1).
* In '''orange''' we can see all the operators that we can use in our processes
Après avoir relancé le logiciel nous pouvons commencer à travailler. Créer un "Nouveau Processus", et vous devriez apercevoir l'affichage principal de RapidMiner Studio. Je vous présente ci-dessous les principales zones de l'espace de travail, que vous pouvez voir dans la Fig.2.
* In '''green''' we have the repositories
* In '''purple''' we have the main process windows, where we will be able to see process results and progression
* In '''black''' we have parameters of each element of or process and help


From here, we will first of all find our operator '''Process Documents from Files''' [http://edutechwiki.unige.ch/mediawiki/images/f/f0/RapidMiner_Studio_Tutorial1_D.PNG (screenshot here)] and we will drag it into the '''Process''' zone, in the center. At this point we have our operator in our process, and we need to set his '''parameters'''. Clic on our operator in the main process area, and see which parameters you can set on the right side. First parameter is '''text directories''' which we will set right away.
* La zone '''blue''' représente la barre d'outils principale.
* La zone '''orange''' nous montre les opérateurs que nous pouvons utiliser dans nos processus.
* La zone '''green''' nous montre nos répertoires (de données, locaux ou distants).
* La zone '''purple''' contient notre processus sous forme visuelle (les "blocs" processus et leur liens)
* La zone '''black''' contiendra les paramètres et l'aide du "bloc" processus selectionné


[[File:RapidMiner_Studio_Tutorial1_E.PNG|300px|thumb|left|Fig.3 : Text Directories]]
Pour commencer, nous pouvons utiliser un opérateur '''Process Documents from Files''' [http://edutechwiki.unige.ch/mediawiki/images/f/f0/RapidMiner_Studio_Tutorial1_D.PNG (screenshot ici)] - processus de traitement de documents à partir de fichiers - que nous allons glisser dans notre zone du processus. Il faut ensuite régler les paramètres de notre processus, c'est à dire les répertoires distincts dans lesquels il va chercher les fichiers.


Note : On the right side of your toolbar you can see a four-element menu that allows you to switch between '''Design''' and '''Results''' (also with F8 and F9 keys) that will be very useful. If your results aren't what you were expecting, or you made a mistake when designing your process, you can easily return from the results to the design area.
[[File:RapidMiner_Studio_Tutorial1_E.png|300px|thumb|left|Fig.3 : Text Directories]]


* In my case, i have a directory on my Desktop which name is "data"
Note : Sur le coté droit de votre barre d'outils principale, vous pouvez voir quatre éléments qui vous permettent de basculer entre différentes étapes du processus global qu'est votre projet. Basculer entre le '''Design''' et les '''Results''' peut être très pratique lorsque vous n'avez pas les résultats attendus et que vous devez retourner modifier votre processus dans la page '''Design'''.
* In /data/, I have /litterature/text1.txt and /photographie/text2.txt
* I will set up my text directories like suggested in the Fig. 3 and give both a different name to be able to show results depending on text directory


In next section we will talk about operators, and we will come back to '''Process Documents from Files parameters''' to choose which vector we want RapidMiner to create.
* Dans mon cas, j'avais un répertoire sur le bureau nommé "data"
* Dans /data/ il existe deux répertoires /litterature/ et /photographie/ dans lesquels se trouvent mes fichiers textes.
* Je n'ai qu'un fichier texte dans chaque répertoire mais je pourrais en avoir autant que voulu.
* Il faut donner un nom différent aux deux sources de fichiers pour pouvoir distinguer celles-ci dans les résultats


=== Tokenize & define StopWords ===
Dans la partie suivante nous allons parler d'opérateurs et nous allons revenir aux paramètres du processus '''Process Documents from Files''' pour choisir quel type de vecteur nous souhaitons créer.


Now that we have our Process Documents from Files operator in our '''Main Process area''' and our text directories set up correctly, we need to connect our operator '''Process Documents from Files''' on the left (from inp to wor) and on the right (from exa to res, and wor to res). This will allow the data to be processed.
=== Tokenize & définir les StopWords ===


[[File:RapidMiner_Studio_Tutorial1_F.PNG|300px|thumb|right|Fig. 5 : Tokenize and Stopwords operators]]
Maintenant que nous avons notre processus '''Process Documents from Files ''' (PDFF) au centre de notre espace de travail, et que celui-ci est relié en '''input''' et en '''output''' aux extrémités de cet espace, nous pouvons entrer dans ce processus et définir tous les sous-processus qui seront exécutés en son sein. Le '''input''' et le '''output''' se mettent en place en reliant à gauche inp (input) & wor (words) et à droite exa (exampleSet) & res (results). Ceci permettra aux données d'aller de la source à la destination.


We will now define what steps (or processes) should be executed during our '''Process Documents from Files''' operator. So by double-clicking on it, we can see it's inside. We will now add a '''Tokenize''' operator that can be found in operators area (in Tokenization) on the left. Tokenize will separate words making them independent values. One of RapidMiner big values is that graphic user interface, that allows you to build processes quite naturally. We will also be able to add '''Filter Stopwords (french)''' - because my text files are in french - into our main '''Process Documents from Files''' operator, also by dragging it. You should see something like in Fig. 5 above.
[[File:RapidMiner_Studio_Tutorial1_F.png|300px|thumb|right|Fig. 5 : Tokenize and Stopwords operators]]


=== View result ===
Maintenant que nous sommes à l'intérieur de notre notre processus PDFF (en double cliquant dessus), nous pouvons définir deux opérations primordiales (Fig.5) :
# Tokenize : afin de couper les fichiers textes en input, et d'extraire leur contenu sous forme de mot à mot
# Filter StopWords : afin de ne garder que les mots "pertinents" (c'est à dire exclure les : LE; LA; LES; UN; ALORS, etc.). J'ai utilisé Filter StopWordsFrench puisque mes mots étaient en français.


If your main operator is connected (input - output) and that inside of it, your Tokenize operator and your Stopwords operator are also connected to each other, and to input and output as suggests the figure above, you should be ready to launch the process which should generate your results.
Une des forces de RapidMiner est cette interface graphique qui, je dois l'avouer, devient quelque peut intuitive après les premières utilisations. Les input et les output ne sont pas rentrés en paramètre mais représentés sous la formes de lignes liant les différents opérateurs.


Before clicking on the [http://edutechwiki.unige.ch/en/File:RapidMiner_Studio_Tutorial1_G.PNG launch button], i want to make you notice that we didn't change the '''Vector Creation''' parameter of our '''Process Documents from Files'''. That parameter allows you to set the type of visualization you want the software to create from the data given.
=== Voir les résultats ===


If you launch the process leaving the default value (TF-IDF), RapidMiner will present you the results in different ways. First you have two tabs, '''WordList''' and '''ExampleSet'''.
Si votre opérateur principal est connecté en entrée et sortie, et que dans lui-même, les opérateurs Tokenize et StopWords sont connectés comme le suggère la figure au dessus, vous devriez être prêts à lancer le processus générant vos résultats.
Avant de cliquer [http://edutechwiki.unige.ch/en/File:RapidMiner_Studio_Tutorial1_G.PNG bouton de lancement] j'aimerais préciser que j'ai laissé le paramètre de type de vecteur par défaut. Ce paramètre vous permet de régler le type de vecteur devant être créé à l'issue du processus.


==== WordList View ====
Si vous lancez le processus en laissant cette valeur (TF-IDF), RapidMiner vous présentera vos résultats de deux façons différentes : les onglets '''WordList''' et '''ExampleSet'''.


[[File:RapidMiner_Studio_Tutorial1_H.PNG|300px|thumb|right|Fig. 6 : WordList View]]
Note : Le TF-IDF "est une méthode de pondération souvent utilisée en recherche d'information et en particulier dans la fouille de textes. Cette mesure statistique permet d'évaluer l'importance d'un terme contenu dans un document, relativement à une collection ou un corpus". [http://fr.wikipedia.org/wiki/TF-IDF Wikipedia]
In the WordList view tab (Fig. 6) we have an occurrences analysis.
* First column presents the words found in documents
* Second column presents the attributes of words (which in my case are equal to the words themself)
* Third column shows '''Total Occurences''' (how many times we can find the word in all documents)
* Fourth column shows '''Document Occurences''' (in how many documents we can find the word)
* Fifth and sixth column shows '''Text Directory Occurences''' (how many times we can find the word in each text directory)


==== ExampleSet View ====
==== Vue WordList ====


[[File:RapidMiner_Studio_Tutorial1_I.PNG|300px|thumb|right|Fig. 7 : ExampleSet View]]
[[File:RapidMiner_Studio_Tutorial1_H.png|300px|thumb|right|Fig. 6 : Vue WordList]]
Dans la vue WordList (Fig. 6) nous avons notre analyse d'occurrences sous la forme d'un tableau.
* La première colonne nous montre tous les mots trouvés dans les documents (saufs StopWords)
* La seconde colonne nous les attributs de chaque mot (dans mon cas je n'en ai pas spécifié, c'est égal au mot lui même)
* La troisième colonne nous montre le nombre total d'occurrences (combien de fois le mot a été trouvé au total)
* La quatrième colonne nous montre le nombre total de documents dans lesquels on peut trouver le mot
* Les colonnes suivantes nous montre combien de fois le mot a été trouvé dans chaque répertoire


[[File:RapidMiner_Studio_Tutorial1_J.PNG|150px|thumb|left|Fig. 8 : Charts view types]]
Ceci nous montre déjà les termes les plus occurrents, dans l'un et l'autre corpus, et permet déjà de vérifier si un mot commun à forte occurence dans les deux corpus existe.


In the ExampleSet view tab (Fig. 7) we have a left menu with five tabs. I will try to present them :
==== Vue ExampleSet ====
* First tab is an '''Overview''' of the process. We can find there each '''text directory''', each '''document processed''' and some other informations.
* Second tab is '''Statistics''', and allows you to see statistics about the data given.
* Third and fourth tabs are '''Charts''' and '''Advanced Charts''' and allows the user to visualize some default charts, or build advanced and customized charts that feed in the data and analysis results of our text mining process.
* Fifth tab allows the user to save annotations into the process.


Note : Fig. 8 shows you some of the charts view types that RapidMiner proposes.
[[File:RapidMiner_Studio_Tutorial1_I.png|300px|thumb|right|Fig. 7 : ExampleSet View]]


=== Export results ===
[[File:RapidMiner_Studio_Tutorial1_J.png|150px|thumb|left|Fig. 8 : Charts view types]]


When it comes to export results in RapidMiner Studio, each extension and RapidMiner Studio function will allow to do different sort of things.
Dans la vue ExampleSet (Fig. 7) nous avons un menu à gauche avec cinq onglets :
For example, after a text mining process, data will be available in different forms :
* WordList view will allow you to export the spreadsheet in image (png, svg, jpg, eps, pdf), to print it, or you can even copy/paste the spreadsheet data into Microsoft Excel or Google Drive Spreadsheets.
* ExampleSet view also allows the user to copy/paste the data from the software, to print it or to export it as an image.


Note : The export as an image function seems to allow you to export all software main area (in the center) but not to export individually an image.
* Le premier onglet est une '''Vue d'ensemble''' du processus. Nous pouvons y trouver chaque '''répertoire ou corpus''', chaque document traité et quelques autres informations.
* Le second nous montre des '''Statistiques''' relatives aux données traitées.
* Le troisième et quatrième onglet nous permettent de générer des '''charts''' ou graphiques afin de visualiser les résultats
* Le cinquième onglet permet à l'utiliseur d'ajouter des notes à son processus.


== Tweets mining and analysis ==
Note : La Fig.8 montre quelques possibilités de "charts" proposées par RapidMiner.
 
=== Exporter les résultats ===
 
Lorsque l'on souhaite exporter ses résultats directement depuis RapidMiner, chaque extension de RapidMiner dictera les possibilités de sorties.
Dans notre cas, après avoir miné du texte, les données seront disponibles de façon différente selon la vue dans laquelle l'utilisateur se trouve. Oui l'exportation de données n'est au final qu'une capture de la vue selectionnée.
 
* La vue WordList nous permettra d'exporter le tableau en image (png, svg, jpg, eps, pdf), de l'imprimer ou même de copier son contenu dans un document Excel, Classeur ou Google Drive.
* La vue ExampleSet permet également de copier/coller des données depuis le logiciel, de l'importer et de l'exporter en tant qu'images aux formats ci-dessus
 
== Miner des "Tweets" et les analyser ==


=== Introduction ===
=== Introduction ===


RapidMiner Studio allows you to extract, transform and analyse data from A to Z with it's core functionalities and free plugins. Unfortunately, some Cloud extensions and functionalities are premium, and pricey. I will explain here how you can extract and analyse tweets only using the free version of RapidMiner Studio and a third-party service for the tweet extraction.
RapidMiner Studio est capable à lui seul d'aller puiser dans Twitter et d'autres réseaux sociaux pour y puiser du contenu. Cependant cette fonctionnalité est non seulement reservée à la version payante du logiciel, mais elle nécessite en plus l'achats de crédits et l'activation des extensions Cloud, elles aussi payantes. J'ai donc choisi d'utiliser un service tiers pour l'extraction de tweets depuis Twitter.
 
=== Extraction des Tweets ===
 
[[File:TweetsExtractionWithRapidminer-Figure1.png|thumbnail|right|Fig. 8 - Connexion entre Zapier, Twitter et GoogleDrive]]
[[File:TweetsExtractionWithRapidminer-Figure2.png|thumbnail|right|Fig. 9 - Paramètres de recherche des tweets]]
 
Afin de construire notre corpus de texte, il nous faut obtenir sous n'importe quelle forme les tweets nous intéressant. Parmi tous les services tiers, beaucoup ne sont pas maintenus à jour ou n'existent plus et il est parfois difficile de trouver un service fonctionnant encore et qui sois gratuit. J'ai trouvé et décidé d'utiliser [https://zapier.com Zapier] qui connecte les web-apps que vous utilisez afin de déplacer vos données ou créer des automatismes.


=== Tweets extraction ===
Pour notre tâche, j'ai connecté Twitter - en me connectant à mon compte Twitter personnel - à Google Drive - également en me connectant. J'ai ensuite spécifié un hashtag (#edtech) et demandé à Zapier de sauvegarder chacun des tweets contenant cette valeur dans un fichier texte individuel, dans un dossier sur mon compte Google Drive.
Après quelques heures, des centaines de tweets avaient déjà été enregistrés, après quelquesjours c'était près de quatre mille tweets qui étaient là. Les screenshots proviennent d'une analyse sur quelques centaines de tweets.


[[File:TweetsExtractionWithRapidminer-Figure1.png|thumbnail|right|Zapier's GoogleDrive and Twitter connection]]
Une fois que vous avez un nombre suffisant de tweets, vous pouvez télécharger votre dossier contenant tous vos tweets. Il faudra les placer quelque part sur votre ordinateur, afin de pouvoir les importer dans RapidMiner.
[[File:TweetsExtractionWithRapidminer-Figure2.png|thumbnail|right|Twitter search parameters on Zapier]]


First of all you need to get your data that you want to input in RapidMiner. In our case, we need the tweets that we want to process. As said before, some third-party services allow you to extract tweets automatically from Twitter : I will present [https://zapier.com Zapier], which "''connects the web apps you use to easily move your data and automate tedious tasks''". A zap is a connexion between two services, that you can set up to automate tasks.
=== Transformation de données ===


For our task, I connected Twitter and Google Drive, and specified that I want Zapier to look for an hashtag (#edtech) and to save each tweet containing that value in a new text file, in a Google Drive folder.
Maintenant que l'on a notre corpus dans un répertoire, nous pouvons procéder et paramétrer ce répertoire en tant qu'input dans notre processus. J'ai créé trois processus différents, chacun d'eux composés des classiques Tokenize et FilterTokens pour ne garder que le contenu pertinent. La figure ci-dessous explicite ces processus.
Once you have the relevant amount of tweets, you can save your Google Drive folder in a local place in your computer, that you will specify to RapidMiner. I got nearly 8'000 tweets in a few days. You have now your data ready to start using it with RapidMiner.


=== Data transformation ===
[[File:TweetsProcessingWithRapidminer-Figure3.png|thumbnail|right|Fig. 10 - Trois processus dans RapidMiner]]


After having all our tweets in a directory on the computer, we can proceed with RapidMiner. We need to make a process that will take our directory as input, and that will output data that can be analysed and visualised. The figure bellow show all my three processes that I will explained bellow.
Tout d'abord, concentrons nous sur le processus de couleur orange : '''Tweets processing'''
* Le bloc "Process Documents from Files" composé du Tokenize et StopWords comme vu précédemment
** Tokenize ne garde que les mots commençant par le symbole # (les hashtags)
* ... et un convertisseur qui converti des mots en données visualisables (en exampleSet).


[[File:TweetsProcessingWithRapidminer-Figure3.png|thumbnail|left|RapidMiner process, containing the three sub-processes]]
Si l'on regarde le processus "URL Processing" :
* il fonctionne exactement de la même façon
** à l'exception qu'il ne garde que les liens, et donc les tokens commençant par http://
* ... et un convertisseur comme au dessus.


Let's first focus on the orange process, the '''Tweets processing''' :
Finalement, le processus "Write excel process" est une solution alternative trouvée pour la visualisation des données.
* First, the "module" Process documents from files, named '''Process tweets''', allow us, like in the previous tutorial, to specify a directory where text files are. We need to specify, inside this "module", which actions will be triggered.
Mais j'y reviendrais un peu plus tard.
** As we want to take out from all tweets the hashtags only, we need to tell RapidMiner to '''Tokenize''' first all words (by cutting them where white spaces are).
** Then we need it to '''filter the Tokens''' created to keep only the hashtags. That is done with regular expressions, that select only words starting by # symbol, and followed by letters or numbers.
* When the Process Tweets "module" is finished, it outputs a WordList that can be converted to a ExampleSet by the '''Tweets->Data''' "module". That will allow us to treat this words as data and to use it later.


If we look closer the '''URL processing''', it's made just as the Tweets processing.
=== Analyse des données ===
* We have a Process documents from files "module", named '''Process URL's''' that will put all files in the directory in a loop, and will execute for each of them two operations :
** '''Tokenize''', explained before.
** '''Filter tokens''', that will this time keep only links tweeted. We use a regular expression to keep only "words" starting by "http://".
* Finally we convert this WordList in an ExampleSet again to be able to connect it to the Result output point.


=== Data analysis ===
Comme dit précédemment c'est une analyse quantitative sur les occurrences que nous exécutons là. Nous n'avons également constitué qu'un seul corpus.


[[File:TweetsAnalysisWithRapidminer-Figure1.png|thumbnail|right|Figure 1 - Hashtags (sorted by "in documents" count, and alphabetically)]]
[[File:TweetsAnalysisWithRapidminer-Figure1.png|thumbnail|right|Figure 11 - Hashtags (triés par "in documents" et par ordre alphabétique)]]


Once the process showed before is complete and valid, you can test it to see if data outputed is what you were waiting for. My process gets me three ExampleSets, as i had three ouput points connected. I will present now two of these ExampleSets and talk then about the third one, the Read Excel process.  
Une fois le processus est correctement créé, vous pouvez l’exécuter et voir ci celui-ci vous donne les résultats attendus ou s'il y a eut un problème dans la conception. Si tout va bien, vous devriez avoir (si vous avez réalisé exactement les mêmes processus) trois ExampleSets, résultats des trois points de sortie - output.


[[File:TweetsAnalysisWithRapidminer-Figure2.svg|thumbnail|right|Figure 2 - Most represented hashtags in a graph (equivalent hashtags and #edchat filtered)]]
[[File:TweetsAnalysisWithRapidminer-Figure2.svg|thumbnail|right|Figure 12 - Hashtags les plus représentés (#edtech, #edchat et équivalents filtrés)]]


'''My first process''' had as objective to show which hashtags were represented most, combined with #edtech hashtag. The "Tweets->DATA" ExampleSet show us that. You can see it in a data view (table) which can be sorted and in other ways like charts.
'''Mon premier processus''' avait l'objectif de montrer quels hashtags étaient le plus représentés (sous forme de tableau et graphique)
* Figure 1 shows the data view, we can there see all hashtags and the number of documents (tweets) in which they were.
* Figure 2 shows a graphic with most represented hashtags.


'''My last process''', read Excel, is the easiest way I found to filter tokens depending on the "In documents" value. As some hashtags like #EdTech, #edTech, #Edtech were some of the most used hashtags, as I didn't used a case sensitive action to remove capital letters, and because de graph wasn't "viewable" due to the huge amount of different hashtags, I needed to filter my final data. I looked how to do it, and tried different ways, but didn't manage to do it. What I did is that I exported the data resulting from my "Tweets->Data" process, in a Microsoft Excel file. I then deleted all unwanted lines (equivalent hashtags and hashtags less represented) to keep only the most used hashtags. I created a process in RapidMiner that reads that file and outputs it's data : I then have filtered data, that can be showed.
'''Mon second processus''' a extrait les liens de tout le corpus de tweets et a classé ces liens selon le nombre d'occurrences. J'ai donc également cherché à savoir quels avaient été les liens les plus tweetés en compagnie de #edtecg.
* The figure 2 graphic is the result of the Read Excel process. It only contains the most used hashtags, and filters the "equivalents" hashtags. It is important to say also that the most used hashtag (#edchat) has also been removed to better view of the others hashtags.


Finally, '''my second process''' extracts links from the tweets, to see which kind of content could be behind the most tweeted links.
'''Mon dernier processus''', Write Excel, est la seule façon que j'ai trouvé dans RapidMiner pour filtrer des résultats. Un exemple, après avoir récupéré les hashtags les plus représentés j'aurais aimé pouvoir ignorer certains résultats (équivalents de #edtech et de #edchat p.ex.) ainsi que ne garder que les 100 hashtags les plus tweetés (afin de garder un graphique compréhensible) mais je n'ai trouvé aucune façon de le faire avec RapidMiner Studio.
Ce processus importe dans RapidMiner un tableau excel, que j'ai créé à la main en supprimant les hashtags cités ci dessus. C'est grâce à ce processus que j'ai pu obtenir un graphique "visualisable". (Fig. 12)


=== URL analysis ===
=== Analyse de liens ===


[[File:TweetsAnalysisWithRapidminer-Figure3.png|thumbnail|right|URL data sorted by "In documents"]]
[[File:TweetsAnalysisWithRapidminer-Figure3.png|thumbnail|right|URL triées par occurrences]]


As I said before I used RapidMiner to process my tweets and extract only the links. As I could not find a functionality in RapidMiner that allows me to ping an URL and to get it's real URL (all links in twitter are shortened with an URL Shortener) to be able, for example, to check which domains are more represented, I did it manually.
Une fois les liens les plus tweetés obtenus j'ai cherché le moyen de ouvrir automatiquement une connexion à chacun des liens afin de récupérer le lien réel. En effet tous ces liens ont été raccourcis par le service de raccourcissement de URL de Twitter. Je voulais lancer ce processus afin de savoir quels étaient les sites (domaines) les plus souvent tweetés.


I kept only the five more tweeted URL's and checked them. Here they are :
N'ayant pas trouvé d'outil ou de fonctionnalité dans RapidMiner pour cela j'ai choisi de simplement analyser de façon manuelle les cinq premiers liens. Non pas afin de tirer des conclusions sur les noms de domaines les plus présents, mais plutôt pour avoir une idée du type de contenu se trouvant derrière chacun de ces liens populaires.y.


* [https://twitter.com/K12Launch/status/514981047667527680/photo/1 Humour picture] about generational technology gap (Twitter.com, in 35 tweets)
Voici les cinq liens les plus populaires ainsi que la nature de la publication
* [http://www.brilliant-insane.com/2014/12/9-traits-good-digital-citizens.html?utm_source=twitter.com&utm_medium=social&utm_campaign=buffer&utm_content=buffer8643a 9 traits of good digital citizens] (Brilliant-Insane.com, in 35 tweets)
* [https://twitter.com/markbarnes19/status/543762746496806912/photo/1 Infography] about digital citizenship (Twitter.com, 35 tweets)
* [http://www.insightsed.com/ Insightsed] which was unavailable (ressource limit is reached, in 29 tweets) on 17.12.2014 @ 15:30 UTC+1
* [http://www.edtechmagazine.com/k12/article/2014/09/5-strategies-reach-risk-students-technology 5 Strategies to Reach At-Risk Students with Technology] (EdtechMagazine.com, in 23 tweets)


=== Results and comments ===
* [https://twitter.com/K12Launch/status/514981047667527680/photo/1 Photo humoristique] à propos du fossé technologique générationnel (Twitter.com, 35 tweets)
* [http://www.brilliant-insane.com/2014/12/9-traits-good-digital-citizens.html?utm_source=twitter.com&utm_medium=social&utm_campaign=buffer&utm_content=buffer8643a 9 traits d'un bon citoyen digital] (Brilliant-Insane.com, 35 tweets)
* [https://twitter.com/markbarnes19/status/543762746496806912/photo/1 Infographie] à propos de la citoyenneté digitale (Twitter.com, 35 tweets)
* [http://www.insightsed.com/ Insightsed] qui était indisponible - ressource limit is reached on 25.01.2015 @ 17:34 UTC+1 (29 tweets)
* [http://www.edtechmagazine.com/k12/article/2014/09/5-strategies-reach-risk-students-technology 5 Strategies to Reach At-Risk Students with Technology] (EdtechMagazine.com, 23 tweets)


==== Process tweets results ====
=== Résultats et commentaires ===


* First, I was able to see that capital letters are taken in consideration in tweets. We choosed #edtech hashtag, but others were used like #EdTech, #Edtech or #edTech.
==== Résultats de l'analyse des Tweets ====
* Secondly, '''the most used hashtag was clearly #edchat in nearly 700 tweets'''. Second was #education (132) and #ipaded (117) was third.


==== Process URL results ====
* Tout d'abord nous avons vu que les lettres majuscules sont prises en compte dans les hashtags ce qui a créé une multitude de hashtags équivalents. Nous avons choisi #edtech mais avons obtenu des #EdTech, #Edtech or #edTech.
* Ensuite nous avons vu que le hashtag le plus représenté, de loin, était #edchat. On a observé que ces deux hashtags étaient souvent utilisés ensemble.
* Finalement, les autres '''hashtags les plus utilisés''' dans près de 700 tweets ont été : #education (132), #ipaded (117).


* We can see that in the top 5 links, two of them target to status on Twitter with images. One is an infography about digital citizenship, and the other one is a funny picture.
==== Résultats du traitement des URL ====
* We can see that the three other links are website articles about subjects between education and technology, what our hashtag is used for.


==== Comments ====
* Nous avons pu voir que les liens tweetés amènent au plus souvent à des articles de blogs dont le contenu principal est une image ou une infographie, ou à ces images elles-mêmes. Nous avons pu voir qu'outre des images et infographies, les liens pointent dans les autres cas vers des articles traitant à la fois le thème de l'éducation et de la technologie.


This process has the main objective of showing how we work with data in RapidMiner. Of course I only explored a very small amount of it's functionalities and strengths. I think that the process that processes tweets could be much better : it could analyse hashtags that are together in a tweet, could analyse how many hashtags are used, on average, in every tweet. I could also cross the hashtags represented in #edtech tweets with the ones represented in #edchat tweets for example.
==== Commentaires ====


As said before, the process treating links could be more automatised : it could resolve "real domains" automatically, and we would be able then to count or mesure which articles or even domain names (websites) are more represented.
Cette analyse avait pour principal objectif de voir comment il était possible de réaliser une analyse d'occurrences avec RapidMiner. Bien sûr, je n'ai exploré qu'une petite partie des possibilités que le logiciel offre en terme de text-mining. Mes processus auraient cependant pu être améliorés :
* L'analyse de hashtags pourrait nous présenter quels hashtags ont été utilisés ensembles, combien de hashtags avaient été utilisés dans chaque tweet (et en moyenne). Cette analyse aurait également s'intéresser à la présence de marques et de plateformes (iOS) etc. pour y voir des tendances.
* L'analyse des liens aurait pu, comme dit précédemment, dévoiler le site réel derrière chacun de ces liens.


Finally, it was sometimes pleasant to work with RapidMiner, sometimes not. It's own structure is kind of easy to understand and use once you understand it, and the visual input-output points, the inclusive documentation that gives you information about the data that can enter and exit a "module" help a lot when you're beginning. Rapidminer also allow to do use full version of the software, for a limited time, which is very positive.
Finalement, il a été agréable d'utiliser RapidMiner bien que sa nouvelle formule payante rend frustrante l'utilisation de la version gratuite. De plus les fonctionnalités présentes ou pas ne sont pas explicitées, et l'aide respective à chaque processus n'est pas toujours présente (en anglais). Cependant RapidMiner a une approche très visuelle d'un processus de mining et après l'avoir utilisé pendant quelques heures, son utilisation devient aisée. Le plus compliqué étant toujours de fouiller parmi les modules disponibles et comprendre ce qu'ils permettent de faire ou pas.


Unfortunately some actions are not easy to find (as the Zoom out action, that only can be accessed clicking on a graph with the mouse and dragging the mouse upper-left), and it's kind of difficult to navigate in the build-in "modules" and find the one you need for an operation.
Pour conclure, le logiciel profiterait beaucoup d'une refonte graphique ou de la modification de certains comportements tel la fonction de zoom arrière. En effet, pour dézoomer d'un graphique, il est nécessaire à l'utilisateur de cliquer avec le bouton gauche sur un endroit du graphique et de glisser la souris vers le haut-gauche. Aucune autre méthode classique ne permettait de réaliser cette opération. Une petite illustration des défauts ergonomiques que présente, à mon avis, parfois le logiciel.


= Links =
= Liens =


=== Official ===
=== Officiels ===


* [https://rapidminer.com/ RapidMiner] Home page. It includes interactive video tutorials.
* Site officiel de [https://rapidminer.com/ RapidMiner]. On y trouve des tutoriels vidéo.
* [http://rapid-i.com/wiki/index.php RapidMiner Wiki]
* Le [http://rapid-i.com/wiki/index.php Wiki RapidMiner]
** (use search or [http://rapid-i.com/wiki/index.php?title=Special:AllPages "All pages"] since the main page as of March 2012 doesn't include navigation links)
** (utiliser la recherche ou [http://rapid-i.com/wiki/index.php?title=Special:AllPages "All pages"] car la page d'accueil n'incluait à ce jour pas de liens de navigation.)
* [http://sourceforge.net/projects/rapidminer/support Links to support groups for RapidMiner -- Data Mining, ETL, OLAP, BI]. See also this [http://sourceforge.net/apps/mediawiki/rapidminer/index.php?title=Special_Interest_Groups wiki entry]
* [http://sourceforge.net/projects/rapidminer/support Groupes de support pour RapidMiner (eng) -- Data Mining, ETL, OLAP, BI]. Voir aussi cette [http://sourceforge.net/apps/mediawiki/rapidminer/index.php?title=Special_Interest_Groups entrée wiki]


=== Get RapidMiner ===
=== Obtenir RapidMiner ===


* [http://sourceforge.net/projects/rapidminer/ Download at Source Forge]
* [http://sourceforge.net/projects/rapidminer/ Télécharger chez Source Forge]
* [http://rapid-i.com/content/view/181/190/lang,en/ Download at Official Homepage]
* [http://rapid-i.com/content/view/181/190/lang,en/ Télécharger sur le site officiel]


=== Documentation / Tutorials ===
=== Documentation / Tutoriels (en anglais) ===


* [https://rapidminer.com/resources/ RapidMiner - Official Ressources]
* [https://rapidminer.com/resources/ RapidMiner - Official Ressources]
Ligne 236 : Ligne 306 :
* [http://kmandcomputing.blogspot.com/2008/06/opinion-mining-with-rapidminer-quick.html Opinion Mining with RapidMiner - A Quick Experiment]
* [http://kmandcomputing.blogspot.com/2008/06/opinion-mining-with-rapidminer-quick.html Opinion Mining with RapidMiner - A Quick Experiment]


[[Category:Analytics]]
[[en:RapidMiner Studio]]

Dernière version du 24 mars 2022 à 20:47

Analytique et exploration de données
Module: Outils text mining
à finaliser intermédiaire
2022/03/24
Catégorie: Outils text mining


Introduction

RapidMiner est un outil utilisé pour le mining, le traitement de données et le machine learning. Cela permet d’importer des bases de données et les moduler à travers ses nombreuses fonctions pour extraire le type de données souhaité. Par exemple, on peut sélectionner des attributs spécifiques, trouver et filtrer les données “inutiles” et créer ainsi des modèles prédictifs. Le logiciel est compatible avec beaucoup de databases, comme Excel et MySQL, et ses opérations sont décrites en XML en permettant une grande flexibilité.


Installation

  • L'installation de RapidMiner Studio est très facile sur Windows (testé avec Windows 7 x64, Windows 8 x64 et Windows 10 technical preview x64), à partir de l'exécutable téléchargé sur la page de votre compte RapidMiner (l'inscription est obligatoire).
  • L'installation de RapidMiner Studio sur Mac OS X s'est révélé être compliquée, du fait de ses dépendances en Java. Le système intègre Java 1.8 (OS X 10.10.1) et RapidMiner demande la version 1.7 ne détectant que la version 1.6.

Note : RapidMiner Studio est désormais un logiciel commercial, l'utilisation de celui-ci (et de ses fonctions de base) est désormais limité à 14 jours après avoir fait la demande de license.

Un jeu d'outils complet

Tout d'abord, il me semble important de dire que RapidMiner Studio - et RapidMiner Server qui le complète - est un jeu d'outils complet, plus qu'un logiciel spécifique. Le site web de RapidMiner nous dit que RapidMiner vous laisse parcourir et exécuter avec facilité parmi plus de 1500 opérations.

Dû fait de cette complexité, je n'explorerais et décrirais que certaines des fonctionnalités de RapidMiner Studio. Je m'intéresserais donc tout d'abord au "mining" de texte classique, à partir de documents locaux; j'explorerais ensuite comment il est possible avec cet outil, d'importer, de transformer et d'analyser des tweets (tweets mining).

Les principales forces de RapidMiner selon ses éditeurs sont :

  • Un environnement visuel - "code-free" - que l'on peut utiliser sans maitriser de langage de programmation
  • Sa disponibilité sur les principaux systèmes d'exploitation et plateformes
  • Sa principale fonction est le "design" de processus d'analyses
  • Analyses prédictives
  • Chargement de données
  • Transformation de données
  • Modélisation de données
  • Visualisation de données
  • Extension par API
  • De nombreuses sources de données : Excel, Access, Oracle, IBM DB2, Microsoft SQL, Sybase, Ingres, MySQL, Postgres, SPSS, dBase, Text files, et d'autres encore ...
  • RapidMiner vous permet de travailler avec différents types et tailles de sources de données

Type de données

Avec RapidMiner, il est possible d’importer tout type de données que ce soit des données enregistrées sur des fichiers ou des données hébergées sur des bases de données externes sql et nosql. D’après le site de RapidMiner, il est notamment possible d’intégrer des entiers (integer), des réels (real), des données numériques, du binomial, du polynomial, des données nominales, ainsi que des dates. De cette manière, on peut intégrer des données opérationnelles ou transactionnelles (données de coûts par exemple), des données non opérationnelles (données prévisionnelles par exemple) et des métadonnées (données concernant les données elles-mêmes).

Nature des traitements possibles

RapidMiner offre une vaste gamme d'outils pour le traitement de données que ce soit pour le prétraitement ou pour le traitement. Ces outils, ou opérateurs, permettent d’effectuer un grand nombre d’actions qui vont de l'importation et l’exportation des bases de données, au filtrage et la réorganisation des données. Le rayon des possibilités que cet outil offre est tellement vaste qu’il est impossible de les résumer dans cet article, cependant on se limitera à en décrire ceux qui apparaissent être les principaux. Pour ce faire il y a deux concepts clés à retenir, les concepts de data blending et de data cleansing.

Le data blending (littéralement “fusion de données”) est, comme le nom le suggère, l’action de prendre des données de différentes bases de données et de les fondre ensemble. RapidMiner (à la version actuelle) offre 82 opérateurs liés à cette pratique, voici les plus basiques:

  • Union: cet opérateur permet de mettre ensemble deux bases de données. Le résultat est une base de données unifiée avec les données de la première plus les données de la deuxième. Si une base de donnée a des attributs qui ne sont pas dans l’autre, certaines données seront manquantes, donc il est préférable de l’utiliser avec des bases de données ayant les mêmes attributs.
  • Join: cet opérateur permet de mettre ensemble deux bases de données sur la base d'attributs clés que les deux ont en commun. Par exemple, si on a une base de données avec une liste de produits et une base de données avec les produits vendus et que les deux ont l'attributs commun "ID produit", alors les deux bases de données peuvent être mises ensemble en prenant "ID produit" comme point de référence. Le résultat est une base de données unifiée où les données sont mises en commun en minimisant la possibilité d’avoir des données manquantes comme dans le cas de “union”.

Le data cleansing (nettoyage de données) est une pratique, surtout utilisée en phase de prétraitement, qui permet de se libérer des données “inutiles” comme les données manquantes, des données étranges qui peuvent être causés par des erreurs de measurements, ou bien qui sont triviaux pour le type d’analyse qu’on est en train d’effectuer, RapidMiner offre 28 opérateurs pour le data cleansing, voici certains exemples:

  • Replace Missing Values: comme on peut le comprendre depuis le nom, cela permet de remplacer les données manquantes avec des données fictives qui n’ont pas d’influence relevante dans les résultats.
  • Normalize: ceci permet d’uniformiser différentes données numériques en les mettant sur la même échelle, cela permet par exemple de trouver plus facilement des valeurs étranges avec l’aide de l’opérateur Detect Outlier (Distances)

Autre que le data blending et le data cleansing, on a aussi d'autres modes de traitement de données: par exemple, on a la possibilité de créer des modèles (en totalité on a à disposition 167 types de modèles). Parmi ceux-là on a des modèles prédictifs (63 au total), dont un est expliqué dans le tutoriel: le Decision Tree. En plus on a aussi des modèles de segmentation (14), d’associations (6), de corrélations (8), de similarité (4) etc.

Parmi les autres modes de traitement de données, on a aussi la possibilité de créer des Macros qui sont un concept similaire aux variables dans la programmation et qui permettent d’effectuer des opérations complexes, comme décider combien de données visualiser et selon quel critère. Il est possible aussi de générer des tables en Excel ou autres formats et sauvegarder les bases de données traitées sur son ordinateur et beaucoup d’autres fonctionnalités encore.

Enfin RapidMiner permet de visualiser ces données à travers une vaste gamme de graphiques.

Visualisations offertes

En important une base de données, il est directement possible d’observer ces données sous forme de tableau simplement en cliquant sur “results” dans la barre principale et “data” dans la barre latérale. Si l’on prend par exemple, le tutoriel proposé par RapidMiner, il est possible d’obtenir plus d’informations concernant les passagers du Titanic.

Visu 0.png

En cliquant sur l'onglet “statistics” dans la barre latérale, on obtient des statistiques plus précises sur chaque colonne du tableau de l’onglet “data”. Par exemple, si l’on s’intéresse à l’âge des passagers, on peut voir que la moyenne d’âge est d’environ 30 ans, que la personne la plus jeune avait moins d’un an et que la plus âgée avait 80 ans.

Visu 3.png

En cliquant sur “open visualizations”, l’onglet “visualizations” dans la barre latérale s’ouvre. On peut choisir plusieurs types de visualisations. Les deux grandes catégories sont les graphiques (“charts”) et les cartes (“maps”). Dans la première, on retrouve 36 types de graphiques différents. Ils permettent de regarder les données de manière différente, en fonction de ce qu’on cherche à mettre en avant.

Visu 1.png

On peut par exemple utiliser le diagramme circulaire ou la pyramide pour montrer des pourcentages de différentes catégories de la base de données. Si l’on prend l’exemple du tutoriel, on pourrait par exemple voir le pourcentage de passagers ayant survécu ou non, tout comme le pourcentage de femmes ou d’hommes parmi les passagers. Egalement, on peut utiliser un diagramme en boîte. Avec celui-ci, on peut obtenir la valeur minimum et la valeur maximum d’une base de données, mais aussi la médiane et le 1er et 3ème quartile. Si l’on prend l’exemple du Titanic, on peut choisir le type de données à observer (âge par ex.) et si l’on souhaite diviser cette observation en différents groupes. Ainsi, on peut par exemple observer l’âge des passagers du Titanic en fonction de leur sexe:

Dia boite.png

On remarque alors que la femme la plus agée avait 76 ans, tandis que l’homme le plus âgé avait 80 ans. De plus, on peut voir que 50% des hommes avaient entre 30 et presque 1 an. Les autres 50% avaient entre 30 et 80 ans.

Pour ce qui est de la catégorie des cartes, on retrouve 3 types de cartes différentes. Les utiliser Pour l’exemple issu du tutoriel de RapidMiner, si l’on avait accès aux nationalités des passagers, on aurait notamment pu visualiser sur les cartes, le nombre de passagers par pays.

Visu 2.png

Points forts et limites

RapidMiner est certainement un outil qui offre une vaste gamme de possibilités et qui est flexible. Il possède une interface qui permet de visualiser le processus de traitement de données à travers un système de drag and drop où les opérateurs sont trascinés sur l’écran et mis en lien, cela donne ainsi au logiciel une interface intuitive et plaisante à utiliser. La quantité d’opérateurs à disposition permet aussi d’effectuer des traitements complexes sur les bases de données et d’extraire les informations qu'on nécessite de façon rapide et sans besoin de connaissances de programmation. Il y a également la possibilité de visualiser les données à travers nombreux modèles et graphiques rendant tout l’ensemble intéressant. Le fait d’avoir à disposition une version gratuite de RapidMiner pour l’éducation en permettant d’explorer toutes les fonctionnalités sans limitations, est aussi un point positif.

Cependant, malgré la présence d’un tutoriel qui nous aide à effectuer les premiers pas avec RapidMiner en nous familiarisant à certaines opérations de base, l’outil est très difficile à maîtriser, surtout pour ceux qui s’approchent pour la première fois du domaine de l’analyse et de l’extraction de données, aussi les instructions offertes par le site du logiciel ne sont pas toujour faciles à comprendre. Dans ce cas, la grande disponibilité d’opérations possibles se heurte à un temps d’apprentissage très long et une complexité qui peut effrayer les débutants et cela malgré la possibilité de visualiser les opérations. Un autre limite concerne l’accessibilité au niveau du prix. En effet, si l’on n’a pas droit à la version pour l’éducation qui est gratuite pendant un an et qui est quand-même limitée dans le nombre de données analysables, il faut acheter le produit pour profiter de tout son potentiel. Pour ce qui concerne le prix il y a aussi un manque de transparence, car cela n’est pas directement accessible sur le site web du producteur, mais en regardant les nombreux commentaires sur internet on nous laisse entendre que cela coûte cher. Pour terminer, RapidMiner est un outil qui n’est pas encore développé en français et même si on trouve rares documents en français sur internet, la langue peut être une barrière pour comprendre comment tout fonctionne.

Examples d'utilisation

Si les éditeurs de RapidMiner nous disent qu'il est possible de faire à peu près tout ce que l'on souhaite avec RapidMiner, une fois pris en main le logiciel n'est pas suffisamment intuitif et ergonomique pour trouver son chemin.

  • J'ai donc choisi tout d'abord d'explorer une fonction de base du logiciel, c'est à dire le text mining.
  • Dans un deuxième exemple, j'expliquerais comment utiliser concrètement les processus de text-mining pour miner et analyser des tweets sur Twitter.

Basic text mining

Comme décrit précédemment, nous allons tout d'abord voir de quelle façon RapidMiner mine du texte. Nous allons utiliser des processus de minage de texte servant à :

  1. Charger et extraire les mots de fichiers textes, de deux répertoires différents
  2. Ignorer certains mots non pertinents (stop list)
  3. Générer des résultats
  4. Visualiser ces résultats

La question à laquelle nous tenterons de répondre est : "Quels mots sont les plus représentés dans un corpus de textes relatifs au domaine de la littérature, et dans un corpus de textes du domaine de la photographie ?"

Lancement de RapidMiner et chargement des données

Fig.1 : Text Mining Extension
Fig.2 : The workspace

Lorsque vous lancez RapidMiner Studio (v. 6.1.1000) vous avez besoin d'installer l'extension de "Text Mining". En effet, RapidMiner travaille avec des extensions qui viennent se greffer au système central. Vous pouvez trouver l'extension de "Text Mining" sur le Marketplace (Aide > Mises à jour et Extensions (Marketplace))(fig. 1). Après avoir relancé le logiciel nous pouvons commencer à travailler. Créer un "Nouveau Processus", et vous devriez apercevoir l'affichage principal de RapidMiner Studio. Je vous présente ci-dessous les principales zones de l'espace de travail, que vous pouvez voir dans la Fig.2.

  • La zone blue représente la barre d'outils principale.
  • La zone orange nous montre les opérateurs que nous pouvons utiliser dans nos processus.
  • La zone green nous montre nos répertoires (de données, locaux ou distants).
  • La zone purple contient notre processus sous forme visuelle (les "blocs" processus et leur liens)
  • La zone black contiendra les paramètres et l'aide du "bloc" processus selectionné

Pour commencer, nous pouvons utiliser un opérateur Process Documents from Files (screenshot ici) - processus de traitement de documents à partir de fichiers - que nous allons glisser dans notre zone du processus. Il faut ensuite régler les paramètres de notre processus, c'est à dire les répertoires distincts dans lesquels il va chercher les fichiers.

Fig.3 : Text Directories

Note : Sur le coté droit de votre barre d'outils principale, vous pouvez voir quatre éléments qui vous permettent de basculer entre différentes étapes du processus global qu'est votre projet. Basculer entre le Design et les Results peut être très pratique lorsque vous n'avez pas les résultats attendus et que vous devez retourner modifier votre processus dans la page Design.

  • Dans mon cas, j'avais un répertoire sur le bureau nommé "data"
  • Dans /data/ il existe deux répertoires /litterature/ et /photographie/ dans lesquels se trouvent mes fichiers textes.
  • Je n'ai qu'un fichier texte dans chaque répertoire mais je pourrais en avoir autant que voulu.
  • Il faut donner un nom différent aux deux sources de fichiers pour pouvoir distinguer celles-ci dans les résultats

Dans la partie suivante nous allons parler d'opérateurs et nous allons revenir aux paramètres du processus Process Documents from Files pour choisir quel type de vecteur nous souhaitons créer.

Tokenize & définir les StopWords

Maintenant que nous avons notre processus Process Documents from Files (PDFF) au centre de notre espace de travail, et que celui-ci est relié en input et en output aux extrémités de cet espace, nous pouvons entrer dans ce processus et définir tous les sous-processus qui seront exécutés en son sein. Le input et le output se mettent en place en reliant à gauche inp (input) & wor (words) et à droite exa (exampleSet) & res (results). Ceci permettra aux données d'aller de la source à la destination.

Fig. 5 : Tokenize and Stopwords operators

Maintenant que nous sommes à l'intérieur de notre notre processus PDFF (en double cliquant dessus), nous pouvons définir deux opérations primordiales (Fig.5) :

  1. Tokenize : afin de couper les fichiers textes en input, et d'extraire leur contenu sous forme de mot à mot
  2. Filter StopWords : afin de ne garder que les mots "pertinents" (c'est à dire exclure les : LE; LA; LES; UN; ALORS, etc.). J'ai utilisé Filter StopWordsFrench puisque mes mots étaient en français.

Une des forces de RapidMiner est cette interface graphique qui, je dois l'avouer, devient quelque peut intuitive après les premières utilisations. Les input et les output ne sont pas rentrés en paramètre mais représentés sous la formes de lignes liant les différents opérateurs.

Voir les résultats

Si votre opérateur principal est connecté en entrée et sortie, et que dans lui-même, les opérateurs Tokenize et StopWords sont connectés comme le suggère la figure au dessus, vous devriez être prêts à lancer le processus générant vos résultats. Avant de cliquer bouton de lancement j'aimerais préciser que j'ai laissé le paramètre de type de vecteur par défaut. Ce paramètre vous permet de régler le type de vecteur devant être créé à l'issue du processus.

Si vous lancez le processus en laissant cette valeur (TF-IDF), RapidMiner vous présentera vos résultats de deux façons différentes : les onglets WordList et ExampleSet.

Note : Le TF-IDF "est une méthode de pondération souvent utilisée en recherche d'information et en particulier dans la fouille de textes. Cette mesure statistique permet d'évaluer l'importance d'un terme contenu dans un document, relativement à une collection ou un corpus". Wikipedia

Vue WordList

Fig. 6 : Vue WordList

Dans la vue WordList (Fig. 6) nous avons notre analyse d'occurrences sous la forme d'un tableau.

  • La première colonne nous montre tous les mots trouvés dans les documents (saufs StopWords)
  • La seconde colonne nous les attributs de chaque mot (dans mon cas je n'en ai pas spécifié, c'est égal au mot lui même)
  • La troisième colonne nous montre le nombre total d'occurrences (combien de fois le mot a été trouvé au total)
  • La quatrième colonne nous montre le nombre total de documents dans lesquels on peut trouver le mot
  • Les colonnes suivantes nous montre combien de fois le mot a été trouvé dans chaque répertoire

Ceci nous montre déjà les termes les plus occurrents, dans l'un et l'autre corpus, et permet déjà de vérifier si un mot commun à forte occurence dans les deux corpus existe.

Vue ExampleSet

Fig. 7 : ExampleSet View
Fig. 8 : Charts view types

Dans la vue ExampleSet (Fig. 7) nous avons un menu à gauche avec cinq onglets :

  • Le premier onglet est une Vue d'ensemble du processus. Nous pouvons y trouver chaque répertoire ou corpus, chaque document traité et quelques autres informations.
  • Le second nous montre des Statistiques relatives aux données traitées.
  • Le troisième et quatrième onglet nous permettent de générer des charts ou graphiques afin de visualiser les résultats
  • Le cinquième onglet permet à l'utiliseur d'ajouter des notes à son processus.

Note : La Fig.8 montre quelques possibilités de "charts" proposées par RapidMiner.

Exporter les résultats

Lorsque l'on souhaite exporter ses résultats directement depuis RapidMiner, chaque extension de RapidMiner dictera les possibilités de sorties. Dans notre cas, après avoir miné du texte, les données seront disponibles de façon différente selon la vue dans laquelle l'utilisateur se trouve. Oui l'exportation de données n'est au final qu'une capture de la vue selectionnée.

  • La vue WordList nous permettra d'exporter le tableau en image (png, svg, jpg, eps, pdf), de l'imprimer ou même de copier son contenu dans un document Excel, Classeur ou Google Drive.
  • La vue ExampleSet permet également de copier/coller des données depuis le logiciel, de l'importer et de l'exporter en tant qu'images aux formats ci-dessus

Miner des "Tweets" et les analyser

Introduction

RapidMiner Studio est capable à lui seul d'aller puiser dans Twitter et d'autres réseaux sociaux pour y puiser du contenu. Cependant cette fonctionnalité est non seulement reservée à la version payante du logiciel, mais elle nécessite en plus l'achats de crédits et l'activation des extensions Cloud, elles aussi payantes. J'ai donc choisi d'utiliser un service tiers pour l'extraction de tweets depuis Twitter.

Extraction des Tweets

Fig. 8 - Connexion entre Zapier, Twitter et GoogleDrive
Fig. 9 - Paramètres de recherche des tweets

Afin de construire notre corpus de texte, il nous faut obtenir sous n'importe quelle forme les tweets nous intéressant. Parmi tous les services tiers, beaucoup ne sont pas maintenus à jour ou n'existent plus et il est parfois difficile de trouver un service fonctionnant encore et qui sois gratuit. J'ai trouvé et décidé d'utiliser Zapier qui connecte les web-apps que vous utilisez afin de déplacer vos données ou créer des automatismes.

Pour notre tâche, j'ai connecté Twitter - en me connectant à mon compte Twitter personnel - à Google Drive - également en me connectant. J'ai ensuite spécifié un hashtag (#edtech) et demandé à Zapier de sauvegarder chacun des tweets contenant cette valeur dans un fichier texte individuel, dans un dossier sur mon compte Google Drive. Après quelques heures, des centaines de tweets avaient déjà été enregistrés, après quelquesjours c'était près de quatre mille tweets qui étaient là. Les screenshots proviennent d'une analyse sur quelques centaines de tweets.

Une fois que vous avez un nombre suffisant de tweets, vous pouvez télécharger votre dossier contenant tous vos tweets. Il faudra les placer quelque part sur votre ordinateur, afin de pouvoir les importer dans RapidMiner.

Transformation de données

Maintenant que l'on a notre corpus dans un répertoire, nous pouvons procéder et paramétrer ce répertoire en tant qu'input dans notre processus. J'ai créé trois processus différents, chacun d'eux composés des classiques Tokenize et FilterTokens pour ne garder que le contenu pertinent. La figure ci-dessous explicite ces processus.

Fig. 10 - Trois processus dans RapidMiner

Tout d'abord, concentrons nous sur le processus de couleur orange : Tweets processing

  • Le bloc "Process Documents from Files" composé du Tokenize et StopWords comme vu précédemment
    • Tokenize ne garde que les mots commençant par le symbole # (les hashtags)
  • ... et un convertisseur qui converti des mots en données visualisables (en exampleSet).

Si l'on regarde le processus "URL Processing" :

  • il fonctionne exactement de la même façon
    • à l'exception qu'il ne garde que les liens, et donc les tokens commençant par http://
  • ... et un convertisseur comme au dessus.

Finalement, le processus "Write excel process" est une solution alternative trouvée pour la visualisation des données. Mais j'y reviendrais un peu plus tard.

Analyse des données

Comme dit précédemment c'est une analyse quantitative sur les occurrences que nous exécutons là. Nous n'avons également constitué qu'un seul corpus.

Figure 11 - Hashtags (triés par "in documents" et par ordre alphabétique)

Une fois le processus est correctement créé, vous pouvez l’exécuter et voir ci celui-ci vous donne les résultats attendus ou s'il y a eut un problème dans la conception. Si tout va bien, vous devriez avoir (si vous avez réalisé exactement les mêmes processus) trois ExampleSets, résultats des trois points de sortie - output.

Figure 12 - Hashtags les plus représentés (#edtech, #edchat et équivalents filtrés)

Mon premier processus avait l'objectif de montrer quels hashtags étaient le plus représentés (sous forme de tableau et graphique)

Mon second processus a extrait les liens de tout le corpus de tweets et a classé ces liens selon le nombre d'occurrences. J'ai donc également cherché à savoir quels avaient été les liens les plus tweetés en compagnie de #edtecg.

Mon dernier processus, Write Excel, est la seule façon que j'ai trouvé dans RapidMiner pour filtrer des résultats. Un exemple, après avoir récupéré les hashtags les plus représentés j'aurais aimé pouvoir ignorer certains résultats (équivalents de #edtech et de #edchat p.ex.) ainsi que ne garder que les 100 hashtags les plus tweetés (afin de garder un graphique compréhensible) mais je n'ai trouvé aucune façon de le faire avec RapidMiner Studio. Ce processus importe dans RapidMiner un tableau excel, que j'ai créé à la main en supprimant les hashtags cités ci dessus. C'est grâce à ce processus que j'ai pu obtenir un graphique "visualisable". (Fig. 12)

Analyse de liens

URL triées par occurrences

Une fois les liens les plus tweetés obtenus j'ai cherché le moyen de ouvrir automatiquement une connexion à chacun des liens afin de récupérer le lien réel. En effet tous ces liens ont été raccourcis par le service de raccourcissement de URL de Twitter. Je voulais lancer ce processus afin de savoir quels étaient les sites (domaines) les plus souvent tweetés.

N'ayant pas trouvé d'outil ou de fonctionnalité dans RapidMiner pour cela j'ai choisi de simplement analyser de façon manuelle les cinq premiers liens. Non pas afin de tirer des conclusions sur les noms de domaines les plus présents, mais plutôt pour avoir une idée du type de contenu se trouvant derrière chacun de ces liens populaires.y.

Voici les cinq liens les plus populaires ainsi que la nature de la publication

Résultats et commentaires

Résultats de l'analyse des Tweets

  • Tout d'abord nous avons vu que les lettres majuscules sont prises en compte dans les hashtags ce qui a créé une multitude de hashtags équivalents. Nous avons choisi #edtech mais avons obtenu des #EdTech, #Edtech or #edTech.
  • Ensuite nous avons vu que le hashtag le plus représenté, de loin, était #edchat. On a observé que ces deux hashtags étaient souvent utilisés ensemble.
  • Finalement, les autres hashtags les plus utilisés dans près de 700 tweets ont été : #education (132), #ipaded (117).

Résultats du traitement des URL

  • Nous avons pu voir que les liens tweetés amènent au plus souvent à des articles de blogs dont le contenu principal est une image ou une infographie, ou à ces images elles-mêmes. Nous avons pu voir qu'outre des images et infographies, les liens pointent dans les autres cas vers des articles traitant à la fois le thème de l'éducation et de la technologie.

Commentaires

Cette analyse avait pour principal objectif de voir comment il était possible de réaliser une analyse d'occurrences avec RapidMiner. Bien sûr, je n'ai exploré qu'une petite partie des possibilités que le logiciel offre en terme de text-mining. Mes processus auraient cependant pu être améliorés :

  • L'analyse de hashtags pourrait nous présenter quels hashtags ont été utilisés ensembles, combien de hashtags avaient été utilisés dans chaque tweet (et en moyenne). Cette analyse aurait également s'intéresser à la présence de marques et de plateformes (iOS) etc. pour y voir des tendances.
  • L'analyse des liens aurait pu, comme dit précédemment, dévoiler le site réel derrière chacun de ces liens.

Finalement, il a été agréable d'utiliser RapidMiner bien que sa nouvelle formule payante rend frustrante l'utilisation de la version gratuite. De plus les fonctionnalités présentes ou pas ne sont pas explicitées, et l'aide respective à chaque processus n'est pas toujours présente (en anglais). Cependant RapidMiner a une approche très visuelle d'un processus de mining et après l'avoir utilisé pendant quelques heures, son utilisation devient aisée. Le plus compliqué étant toujours de fouiller parmi les modules disponibles et comprendre ce qu'ils permettent de faire ou pas.

Pour conclure, le logiciel profiterait beaucoup d'une refonte graphique ou de la modification de certains comportements tel la fonction de zoom arrière. En effet, pour dézoomer d'un graphique, il est nécessaire à l'utilisateur de cliquer avec le bouton gauche sur un endroit du graphique et de glisser la souris vers le haut-gauche. Aucune autre méthode classique ne permettait de réaliser cette opération. Une petite illustration des défauts ergonomiques que présente, à mon avis, parfois le logiciel.

Liens

Officiels

Obtenir RapidMiner

Documentation / Tutoriels (en anglais)