Manipulation des données textuelles utilisation des outils WEKA/JAVA pour le projet AFD



Documents pareils
MEMOIRE. Présenté par. Pour obtenir DIPLOME. Intitulé : B. Beldjilalii. B. Atmani. Encadreur : F. Barigou. S. Nait Bahloul. M.

Apprentissage Automatique

Laboratoire 4 Développement d un système intelligent

Master d Informatique M1 Université Paris 7 - Denis Diderot Travail de Recherche Encadré Surf Bayesien

Apprentissage incrémental par sélection de données dans un flux pour une application de sécurité routière

Recherche d Information(RI): Fondements et illustration avec Apache Lucene. par Majirus

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Recherche d information en langue arabe : influence des paramètres linguistiques et de pondération de LSA

Travaux pratiques avec RapidMiner

INF6304 Interfaces Intelligentes

Janvier Entretien de l ordinateur

Une méthode de classification supervisée sans paramètre pour l apprentissage sur les grandes bases de données

Projet SINF2275 «Data mining and decision making» Projet classification et credit scoring

TP Bases de données réparties

Deuxième Licence en Informatique Data Warehousing et Data Mining La Classification - 1

LA NOTATION STATISTIQUE DES EMPRUNTEURS OU «SCORING»

5. Apprentissage pour le filtrage collaboratif

Une ergonomie intuitive

Documentation Suivi S.E.O

ESPACE COLLABORATIF SHAREPOINT


Installer Joomla Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring

Manipulation de données avec SAS Enterprise Guide et modélisation prédictive avec SAS Enterprise Miner

TRANSPORT ET LOGISTIQUE :

Introduction à la présentation graphique avec xmgrace

Sélection de Caractéristiques pour le Filtrage de Spams

4. Les traces que je laisse avec mon ordinateur. Expression Ce que je dis. Audience Qui je connais

DUPLICATION DES DONNEES. Jeudi 19 avril 2012

Le Data Mining au service du Scoring ou notation statistique des emprunteurs!

Bases de données documentaires et distribuées Cours NFE04

JADT /06/2010 Rome Utilisation de la visualisation en nuage arboré pour l'analyse littéraire

Techniques du Data Mining pour la prédiction de faillite des entreprises et la gestion du risque de crédit

Déroulement d un projet en DATA MINING, préparation et analyse des données. Walid AYADI

Une comparaison de méthodes de discrimination des masses de véhicules automobiles

Big Data et Graphes : Quelques pistes de recherche

MapReduce. Nicolas Dugué M2 MIAGE Systèmes d information répartis

Introduction au Data-Mining

Didacticiel Études de cas. Description succincte de Pentaho Data Integration Community Edition (Kettle).

Magister INFORMATIQUE. Présenté par. Soutenu en Février 2011 devant la commission du jury composée de :

SOMMAIRE AIDE À LA CRÉATION D UN INDEX SOUS WORD. Service général des publications Université Lumière Lyon 2 Janvier 2007

Générer du code à partir d une description de haut niveau

Arbres binaires de décision

WebSSO, synchronisation et contrôle des accès via LDAP

e-recrutement : recherche de mots-clés pertinents dans le titre des annonces d emploi

Identification de nouveaux membres dans des familles d'interleukines

Quick Start Installation de MDweb version 2.3

INTRODUCTION AU DATA MINING

Analyses croisées de sites Web pour détecter les sites de contrefaçon. Prof. Dr. Olivier Biberstein

Quelques conseils de sécurité informatique

Pronom de reprise : confusion entre nous et se

Formation Word/Excel. Présentateur: Christian Desrochers Baccalauréat en informatique Clé Informatique, 15 février 2007

Améliorer les performances du site par l'utilisation de techniques de Web Mining

Configuration de plusieurs serveurs en Load Balancing

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Apprentissage statistique dans les graphes et les réseaux sociaux

Panorama des solutions analytiques existantes

BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM)

TUTORIEL Pearltrees 26/02/2015

Évaluation et optimisation de requêtes

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Présentation de Firefox

Se débarrasser des s indésirables

Programmation sous QT

ESSEC. Cours «Management bancaire» Séance 3 Le risque de crédit Le scoring

Big Data et Graphes : Quelques pistes de recherche

Base de connaissances

LES TOUT PREMIERS PAS

Transmission d informations sur le réseau électrique

TRAITEMENT AUTOMATIQUE DES LANGUES. Licence d'informatique 2ème Année Semestre 1. Département d'informatique Université de Caen Basse-Normandie

Utiliser un tableau de données

Gestion collaborative de documents

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, Paris

Un logiciel pour aller plus loin dans la gestion de vos espaces. Mémo technique

Chess Arbiter Pro (version Dames) Notice d utilisation

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

1 Modélisation d être mauvais payeur

Introduction à HTML5, CSS3 et au responsive web design

MANUEL D INSTALLATION D UN PROXY

EXTRACTION DE CONNAISSANCES À PARTIR DE DONNÉES TEXTUELLES VUE D ENSEMBLE

Spécificités, Applications et Outils

Visual Paradigm Contraintes inter-associations

Mise à jour Apsynet DataCenter

LES REPRESENTATIONS DES NOMBRES

Réalisation de cartes vectorielles avec Word

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

PRESENTATION. Parcours de formation à distance A destination des personnels en contrats aidés

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

The Grid 2: Manuel d utilisation

Eclipse atelier Java

Formation Actuaire Data Scientist. Programme au 24 octobre 2014

La classification automatique de données quantitatives

Enjeux mathématiques et Statistiques du Big Data

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Transcription:

Manipulation des données textuelles utilisation des outils WEKA/JAVA pour le projet AFD Vincent Guigue UPMC - LIP6 Vincent Guigue Preprocessing & JAVA 1/24

Traitements pour la classification de textes Les données textuelles sont difficiles à gérer : 1 Les corpus sont volumineux, le vocabulaire est grand : - il faut des algorithmes rapides, - les données ne sont pas toujours stockables en mémoire. 2 La structure des phrases est difficile à gérer. 3 Les mots peuvent prendre plusieurs formes (pluriels...) 4 Les algorithmes de machine learning ont du mal sur des données de grande dimension Vincent Guigue Preprocessing & JAVA 2/24

Traitements pour la classification de textes Les données textuelles sont difficiles à gérer : 1 Les corpus sont volumineux, le vocabulaire est grand : - il faut des algorithmes rapides, - les données ne sont pas toujours stockables en mémoire. Perceptron, SVM (en version rapide), Naive Bayes... Boosting, Bagging 2 La structure des phrases est difficile à gérer. On supprime la structure... 3 Les mots peuvent prendre plusieurs formes (pluriels...) Plusieurs approches possibles... (cf plus loin) 4 Les algorithmes de machine learning ont du mal sur des données de grande dimension On cherche des heuristiques pour supprimer les mots inutiles. Vincent Guigue Preprocessing & JAVA 2/24

Sacs de mots Ne sachant pas prendre efficacement en compte la structure des phrases... On l élimine totalement! Un document devient alors un comptage des différents mots qui le composent : Représentation bag of words Soit V le vocabulaire et d un document : d N V NB : d est (presque toujours) un vecteur sparse, c est à dire composé essentiellement de 0. Vincent Guigue Preprocessing & JAVA 3/24

Sur un exemple (crédit Sergio Jimenez) Vincent Guigue Preprocessing & JAVA 4/24

Elimination du bruit : mots similaires Etant donnée la représentation en sac de mots, il est pénalisant de compter les occurrences de président et présidents dans deux cases séparées... Nous allons donc traiter les mots du textes pour les ramener à leurs radicaux : mangeait, mangera, mangeoire,... manger Lemmatisation : approche basée sur un dictionnaire efficace / il faut un dictionnaire... Exemple d outil : treetagger (gratuit, récupérable sur internet) Stemmatisation : approche statistique de suppression des suffixes rapide, facile à utiliser / parfois approximatif cf outils fournis dans le projet Vincent Guigue Preprocessing & JAVA 5/24

Traitements discriminants : réduction de la dimensionnalité Les algorithmes de machine learning sont mis en difficulté sur les problèmes de grandes dimensions... Nous cherchons donc à réduire la dimension des données : Heuristiques : Elimination des mots peu fréquents Elimination des mots courts (articles...) Elimination de tous les éléments inutiles a priori (chiffres...) Vincent Guigue Preprocessing & JAVA 6/24

Traitements discriminants Le codage tf-idf permet de faire apparaître les mots saillants, caractéristiques d un document. Soit le document d j tiré de l ensemble D, n i,j désigne le nombre d occurrences du mot t i dans d j : tf i,j = n i,j D k n, idf i = log k,j {d : t i d} tf i,j : fréquence de t i dans le document j. idf i : pourcentage des documents où t i apparaît (log de l inverse). On remplace le codage n i,j par le codage tf idf(i, j) = tf i,j idf i http://fr.wikipedia.org/wiki/tf-idf Vincent Guigue Preprocessing & JAVA 7/24

Traitements discriminants : sélection de variables Il est possible d utiliser des critères discriminants (donnant un score à chaque mot) pour choisir un sous-ensemble du dictionnaire sur lequel travailler. Parmi les classiques : Saillance : S tf idf (i) = j tf idf(i,j) {tf idf(i,j) 0} Odds ratio : S odds (i) = p i /(1 p i ) q i /(1 q i ) = p i (1 q i ) q i (1 p i ). (souvent utilisé en log). Où p i est la probabilité d observer le mot t i dans la classe 1 et q i est la probabilité d observer t i dans la classe 2. Vincent Guigue Preprocessing & JAVA 8/24

Présentation des données Données d apprentissage : <100:1:C> Quand je dis chers amis,... <100:2:C> D abord merci de cet...... <100:14:M> Et ce sentiment... Le format est le suivant : <ID-Discours :ID-phrase :Etiquette>, C Chirac, M Mitterrand Données de test, sans les étiquettes : <100:1> Quand je dis chers amis,... <100:2> D abord merci de cet...... Vincent Guigue Preprocessing & JAVA 9/24

Preprocessing de textes Données Outils Limites... Deuxième base de données (Pour s entrainer) Crédit : Sergio Jimenez Vincent Guigue Preprocessing & JAVA 10/24

Deuxième base de données (Pour s entrainer) Crédit : Sergio Jimenez Vincent Guigue Preprocessing & JAVA 11/24

Preprocessing de textes Données Outils Limites... Deuxième base de données (Pour s entrainer) Crédit : Sergio Jimenez Vincent Guigue Preprocessing & JAVA 12/24

Octave vs Weka Octave ne sait pas gérer une chaine de caractère Octave ne sait pas faire une boucle for Octave ne sait pas gérer des grosses masses de données Octave Octave est parfait pour comprendre comment fonctionne un algorithme et le tester, Octave est parfait pour tracer les courbes de résultats et faire des statistiques... Mais Octave ne peut pas traiter convenablement le problème qui nous intéresse maintenant. Weka propose des algorithmes plus efficaces et des pré-traitements pour le texte... Tout ne sera pas parfait mais c est une meilleure base de travail. Vincent Guigue Preprocessing & JAVA 13/24

Preprocessing de textes Données Outils Limites... Weka (téléchargement) Télécharger la version linux : http://www.cs.waikato.ac. nz/ml/weka/index_downloading.html Lancer le programme : java -Xmx1000M -jar weka.jar Lancer l explorer : Vincent Guigue Preprocessing & JAVA 14/24

Vincent Et hop Guigue : Preprocessing & JAVA 15/24 Weka chargement des données Weka accepte les.arff... Si vous avez un.arff : - Charger le fichier avec le bouton open (!) (par exemple essayez avec iris.arff) - Passer dans l onglet classify Choisir un modèle (régression logistique par exemple) Choisir un mode d évaluation

Weka chargement des données (2) Si vous avez un répertoire contenant des documents textes, weka sait faire l importation : Open puis choisir le répertoire Message d erreur choisir un importateur Choisir TextDirectoryLoader Et hop! Vincent Guigue Preprocessing & JAVA 16/24

Weka chargement des données (3) Si vous n avez rien de tout cela... Il faut créer un.arff Vincent Guigue Preprocessing & JAVA 17/24

Weka chargement des données (4) Vous devez maitriser un minimum d expression régulière ET/OU perl pour créer rapidement ce type de fichier file=corpusu.txt fileout=corpusupp.arff head -n5000 data/corpus.tache1.learn > $file #iconv -f latin1 -t utf8 data/corpus.tache1.learn > $file sed s/"//g;s/<.*c> /C "/g;s/<.*m>/m "/g;s/$/"/g $file > $fileout sed -i.bak 1i\ @relation president\ \ @attribute document_class {M,C}\ @attribute document_content string\ \ @data\ \ $fileout @relation president @attribute document_class {M,C} @attribute document_content string @data C "Quand je dis chers amis, il ne s agit C "D abord merci de cet exceptionnel accu Vincent Guigue Preprocessing & JAVA 18/24

Passer aux sacs de mots Pour passer au sacs de mots, il faut utiliser un filtre Weka : Il faut bien comprendre les options car vous devrez jouer avec! Vincent Guigue Preprocessing & JAVA 19/24

Preprocessing de textes Données Outils Limites... Sacs de mots... Vincent Guigue Preprocessing & JAVA 20/24

Experiences comparatives Vincent Guigue Preprocessing & JAVA 21/24

Type de résultats à obtenir : Vincent Guigue Preprocessing & JAVA 22/24

Analyse qualitative Regarder les poids des mots du classifieur : annoying 37.2593 another -8.458 any 3.391 anyone -1.4651 anything -15.5326 anyway 29.2124 apparently 12.5416... attention -1.2901 audience 1.7331 audiences -3.7323 away -14.9303 awful 30.8509 Vincent Guigue Preprocessing & JAVA 23/24

Compatibilité du dictionnaire! Dès que l on a des ensembles d apprentissage et de test séparés, il faut synchroniser le dictionnaire : Ce n est pas prévu dans l interface! Il faut passer au code JAVA. Heureusement, la librairie est bien faite et bien documentée Exemple en ligne. Vincent Guigue Preprocessing & JAVA 24/24