fouille de données et média sociaux -...
TRANSCRIPT
Preprocessing de textes Données Evaluation
Fouille de Données et Média Sociaux
Vincent GuigueUPMC - LIP6
Vincent Guigue Textes & Python 1/17
Preprocessing de textes Données Evaluation
Organisation de l’UE
Outils pour la fouille de données, application sur des média sociaux
◦ Partie 1 (Vincent Guigue)Sem. 1 2 3 4Cours Intro Dataiku Texte avancé recoTME BOW + classif Dataiku word2vec, lda facto. mat.Sem. 5 6 7Cours J. Loncelle (Klesia)TME à définir
◦ Partie 2 (Sylvain Lamprier)- Classification dans les graphes- Diffusion dans les réseaux- Architectures Big Data (Talend)
Vincent Guigue Textes & Python 2/17
Preprocessing de textes Données Evaluation
Evaluation de l’UE
◦ 25% Rapport 1 (50/50 : travail en TP/rapport)◦ 25% Rapport 2◦ 50% Examen
Vincent Guigue Textes & Python 3/17
Preprocessing de textes Données Evaluation
Manipulation des données textuellesutilisation de Python
Vincent GuigueUPMC - LIP6
Vincent Guigue Textes & Python 4/17
Preprocessing de textes Données Evaluation
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 Textes & Python 5/17
Preprocessing de textes Données Evaluation
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 desdonnées de grande dimensionOn cherche des heuristiques pour supprimer les motsinutiles.
Vincent Guigue Textes & Python 5/17
Preprocessing de textes Données Evaluation
Sacs de mots
Ne sachant pas prendre efficacement en compte la structure desphrases... On l’élimine totalement !Un document devient alors un comptage des différents mots qui lecomposent :
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 à direcomposé essentiellement de 0.
Vincent Guigue Textes & Python 6/17
Preprocessing de textes Données Evaluation
Sur un exemple (crédit Sergio Jimenez)
Vincent Guigue Textes & Python 7/17
Preprocessing de textes Données Evaluation
Elimination du bruit : mots similaires
Etant donnée la représentation en sac de mots, il est pénalisant decompter les occurrences de président et présidents dans deux casesséparées... Nous allons donc traiter les mots du textes pour lesramener à 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 approximatifcf outils fournis dans le projet
Vincent Guigue Textes & Python 8/17
Preprocessing de textes Données Evaluation
Traitements discriminants : réduction de ladimensionnalité
Les algorithmes de machine learning sont mis en difficulté sur lesproblèmes de grandes dimensions... Nous cherchons donc à réduirela 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 Textes & Python 9/17
Preprocessing de textes Données Evaluation
Traitements discriminants
Le codage tf-idf permet de faire apparaître les mots saillants,caractéristiques d’un document.Soit le document dj tiré de l’ensemble D, ni ,j désigne le nombred’occurrences du mot ti dans dj :
tfi,j =ni ,j∑k nk,j
, idfi = log|D|
|{d : ti ∈ d}|
tfi,j : fréquence de ti dans le document j .idfi : pourcentage des documents où ti apparaît (log de l’inverse).
On remplace le codage ni ,j par le codage tf − idf(i , j) = tfi,j × idfihttp://fr.wikipedia.org/wiki/TF-IDF
Vincent Guigue Textes & Python 10/17
Preprocessing de textes Données Evaluation
Traitements discriminants : sélection de va-riables
Il est possible d’utiliser des critères discriminants (donnant un scoreà chaque mot) pour choisir un sous-ensemble du dictionnaire surlequel travailler.Parmi les classiques :
◦ Saillance : Stf−idf (i) =∑
j tf−idf(i ,j)|{tf−idf(i ,j)6=0}|
◦ Odds ratio : Sodds(i) =pi/(1−pi )qi/(1−qi ) =
pi (1−qi )qi (1−pi ) . (souvent utilisé
en log). Où pi est la probabilité d’observer le mot ti dans laclasse 1 et qi est la probabilité d’observer ti dans la classe 2.
Vincent Guigue Textes & Python 11/17
Preprocessing de textes Données Evaluation
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 → MitterrandDonnées de test, sans les étiquettes :
<100:1> Quand je dis chers amis, ...<100:2> D’abord merci de cet ......
Vincent Guigue Textes & Python 12/17
Preprocessing de textes Données Evaluation
Deuxième base de données (Pour s’entrainer)
Crédit : Sergio Jimenez
Vincent Guigue Textes & Python 13/17
Preprocessing de textes Données Evaluation
Deuxième base de données (Pour s’entrainer)
Crédit : Sergio Jimenez
Vincent Guigue Textes & Python 14/17
Preprocessing de textes Données Evaluation
Deuxième base de données (Pour s’entrainer)
Crédit : Sergio JimenezVincent Guigue Textes & Python 15/17
Preprocessing de textes Données Evaluation
Comment évaluer les performances ?
◦ Métriques d’évaluation- Taux de reconnaissance Ncorrect
Ntot
- Précision (dans la classe c) Nccorrect
Ncpredits
- Rappel (dans la classe c) (=couverture) Nccorrect
Nctot
- F1 (1+β2)precision·rappelβ2precision+rappel
- ROC (faux pos VS vrai pos) / AUC◦ Procédures
- Apprentissage/test
- Validation croisée- Leave-one-out
Vincent Guigue Textes & Python 16/17
Preprocessing de textes Données Evaluation
Analyse qualitative
Regarder les poids des mots du classifieur :
annoying 37.2593another -8.458any 3.391anyone -1.4651anything -15.5326anyway 29.2124apparently 12.5416...attention -1.2901audience 1.7331audiences -3.7323away -14.9303awful 30.8509
Vincent Guigue Textes & Python 17/17